Back in 2012, Codethink produced one of the very first modern cluster-in-a-box Arm servers, the Baserock Slab; 8 quad-core SoCs in a 1U case.
At that time, there was lots of talk about Arm's low power consumption advantage as the unique selling point, but at Codethink our target was to design a fast multi-SoC machine.
One of the key drivers for us was developing and integrating custom Linux-based system software for clients targeting Arm SoCs. We had identified cross-compilation as one of the key pain points in many projects, particularly since many upstream components didn't support cross-compilation, and we could not be sure that cross-compilation outputs would always be functionally identical to native outputs.
So we were aiming primarily for high-performance Arm-based software build machines, and that meant we needed fast CPU, as many cores as possible, lots of memory, plenty of fast SSD and fast networking.
This was a very specific niche, obviously. In practice high-performance x86 machines delivered cross-compiled builds faster than our original design, and faster than the other Arm servers we migrated to as the years passed by. We were one of the first organisations to acquire an HP Moonshot server in 2014.
The Moonshot was a huge beast with 45 x 8 core SoCs, but even so it couldn't really compete with equivalent x86 servers on performance.
Since then, Arm servers have improved dramatically for our workloads. We've seen significant gains in overall performance for Arm-native build usecases. Looking at current builds for the freedesktop-sdk project, for example, a full x86_64 build can take over 1100 minutes whereas the Arm build completes in under 700 minutes.
So for this workload, a 32-core Arm Server takes 40% less time than a 32-core Intel machine!
- 1x Ampere eMAG 8180 32-core , 128GiB RAM
- 670 minutes
- log output
- Intel(R) Xeon(R) CPU E5-2660 (32 cores), 141GiB RAM
- 1117 minutes
- log output
Specs for the actual machines are here.
The aarch64 server is generously sponsored by @equinixmetal as part of the Works On Arm intiative with support from Arm.
The x86_64 server is generously sponsored by OSU Open Source Lab.
Related blog posts:
- Using STPA with software-intensive systems
- Codethink achieves ISO 26262 ASIL D Tool Certification
- RISC-V: running GNOME OS on SiFive hardware for the first time
- Automated Linux kernel testing
- Higher quality of FOSS: How we are helping GNOME to improve their test pipeline
- RISC-V: A Small Hardware Project
- Why aligning with open source mainline is the way to go
- Build Meetup 2021: The BuildTeam Community Event
- A new approach to software safety
- Does the "Hypocrite Commits" incident prove that Linux is unsafe?
- ABI Stability in freedesktop-sdk
- Why your organisation needs to embrace working in the open-source ecosystem
- RISC-V User space access Oops
- Tracking Players at the Edge: An Overview
- What is Remote Asset API?
- Running a devroom at FOSDEM: Safety and Open Source
- Meet the codethings: Understanding BuildGrid and BuildBox with Beth White
- Streamlining Terraform configuration with Jsonnet
- Bloodlight: Designing a Heart Rate Sensor with STM32, LEDs and Photodiode
- Making the tech industry more inclusive for women
- Bloodlight Case Design: Lessons Learned
- Safety is a system property, not a software property
- RISC-V: Codethink's first research about the open instruction set
- Meet the Codethings: Safety-critical systems and the benefits of STPA with Shaun Mooney
- Why Project Managers are essential in an effective software consultancy
- FOSDEM 2021: Devroom for Safety and Open Source
- Meet the Codethings: Ben Dooks talks about Linux kernel and RISC-V
- Here we go 2021: 4 open source events for software engineers and project leaders
- Xmas Greetings from Codethink
- Call for Papers: FOSDEM 2021 Dev Room Safety and Open Source Software
- Building the abseil-hello Bazel project for a different architecture using a dynamically generated toolchain
- Advent of Code: programming puzzle challenges
- Improving performance on Interrogizer with the stm32
- Introducing Interrogizer: providing affordable troubleshooting
- Improving software security through input validation
- More time on top: My latest work improving Topplot
- Cycling around the world
- Orchestrating applications by (ab)using Ansible's Network XML Parser
- My experience of the MIT STAMP workshop 2020
- Red Hat announces new Flatpak Runtime for RHEL
- How to keep your staff healthy in lockdown
- Bloodlight: A Medical PPG Testbed
- Bringing Lorry into the 2020s
- How to use Tracecompass to analyse kernel traces from LTTng
- Fixing Rust's test suite on RISC-V
- The challenges behind electric vehicle infrastructure
- Investigating kernel user-space access
- Consuming BuildStream projects in Bazel: the bazelize plugin
- Improving RISC-V Linux support in Rust
- Creating a Build toolkit using the Remote Execution API
- Trusting software in a pandemic
- The Case For Open Source Software In The Medical Industry
- My experiences moving to remote working
- Impact of COVID-19 on the Medical Devices Industry
- COVID-19 (Coronavirus) and Codethink
- Codethink develops Open Source drivers for Microsoft Azure Sphere MediaTek MT3620
- Codethink partners with Wirepas
- Testing Bazel's Remote Execution API
- Passing the age of retirement: our work with Fortran and its compilers
- Sharing technical knowledge at Codethink
- Using the REAPI for Distributed Builds
- An Introduction to Remote Execution and Distributed Builds
- Gluing hardware and software: Board Support Packages (BSPs)
- Engineering's jack of all trades: an intro to FPGAs
- Bust out your pendrives: Debian 10 is out!
- Why you should attend local open source meet-ups
- Acceptance, strife, and progress in the LGBTIQ+ and open source communities
- Codethink helps York Instruments to deliver world-beating medical brain-scanner
- Codethink open sources part of staff onboarding - 'How To Git Going In FOSS'
- Getting into open source
- How to put GitOps to work for your software delivery
- Open Source Safety Requirements Analysis for Autonomous Vehicles based on STPA
- Codethink engineers develop custom debug solution for customer project
- Codethink contributes to CIP Super Long Term Kernel maintenance
- Codethink creates custom USB 3 switch to support customer's CI/CD pipeline requirements
- Codethink unlocks data analysis potential for British Cycling
- MIT Doctor delivers Manchester masterclass on innovative safety methodology
- Balance for Better: Women in Technology Codethink Interviews
- Introducing BuildGrid
- Full archive