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!
aarch64:
- 1x Ampere eMAG 8180 32-core , 128GiB RAM
- 670 minutes
- log output
x86_64:
- 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:
- More about Baserock: No Secret Sauce, Just Open Source >>
- Build Engineering: Introducing BuildStream >>
Other Content
- Using Git LFS and fast-import together
- Testing in a Box: Streamlining Embedded Systems Testing
- SDV Europe: What Codethink has planned
- How do Hardware Security Modules impact the automotive sector? The final blog in a three part discussion
- How do Hardware Security Modules impact the automotive sector? Part two of a three part discussion
- How do Hardware Security Modules impact the automotive sector? Part one of a three part discussion
- Automated Kernel Testing on RISC-V Hardware
- Automated end-to-end testing for Android Automotive on Hardware
- GUADEC 2023
- Embedded Open Source Summit 2023
- RISC-V: exploring a bug in stack unwinding
- Adding RISC-V Vector Cryptography Extension support to QEMU
- Introducing Our New Open-Source Tool: Quality Assurance Daemon
- Long Term Maintainability
- FOSDEM 2023
- Think before you Pip
- BuildStream 2.0 is here, just in time for the holidays!
- A Valuable & Comprehensive Firmware Code Review by Codethink
- GNOME OS & Atomic Upgrades on the PinePhone
- Flathub-Codethink Collaboration
- Codethink proudly sponsors GUADEC 2022
- Tracking Down an Obscure Reproducibility Bug in glibc
- Web app test automation with `cdt`
- FOSDEM Testing and Automation talk
- Protecting your project from dependency access problems
- Porting GNOME OS to Microchip's PolarFire Icicle Kit
- YAML Schemas: Validating Data without Writing Code
- Deterministic Construction Service
- Codethink becomes a Microchip Design Partner
- Hamsa: Using an NVIDIA Jetson Development Kit to create a fully open-source Robot Nano Hand
- 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
- Full archive