Arming Open Source Software for the Future

3

I’ve talked extensively about the Arm architecture at conferences over the last few years. There is a reason for this, as I believe in the not-so-near future, we will have more Arm servers in the data center and cloud than X64 systems.

What is Arm?

First, let’s look at what Arm is and its history. Arm started in the 80s, as a project by Acorn Computers (Acorn RISC Machine) a family of Reduced Instruction Set Computing (RISC) architectures for computer processors. In the 90s, when Acorn had some financial challenges, the Advanced RISC Machines company was founded, a combination of Apple, Acorn, and VLSI. This is when Arm changed to a very different model than what Intel and AMD use. Arm went to a license model where they licensed the architecture to companies to make their chips! This unique sales method allows different manufacturers to use the core design but add enhancements to the design to improve the characteristics they need, like power usage for mobile devise, or cache for server applications or even size for IoT applications.

In the late 90s, Arm went public as Arm Holdings PLC, and this put the company of the stock market. Through the early 2000s, Arm grew, mainly in cell phones and embedded devices. In 2016, SoftBank Group purchased the company, taking the company back to being privately held. Recently, they have explored ways to sell the company via an IPO. It is an understatement to say the technology is popular with its users and investors.

There are now four prominent Arm families: the Cortex, SecureCore, Neoverse, and Ethos. The Cortex also has three variants with A, M and R series. The A is optimized for raw compute power, the M is for lower power consumption in mobile devices, and the R is optimized for real-time performance. There are three other families: the SecueCore with enhanced physical security, Neoverse optimized for Edge, and Ethos, which is optimized for machine learning.

Today, you will find Arm-based systems in most cellphones, Apple Computers, small single-board systems like Raspberry PI, Internet of Things devices (IoT), and even in the cloud.

ARM Diagram by Erik Benner CC by SA 4.0

Moving to Arm

Moving to Arm is also really easy for almost any open-source application. When using Linux ( I tested all of this on Oracle Linux and Rocky Linux, both members of OpenELA.org), it was straightforward to take an opensource application, or even a java application, and move it to the Arm platform. On the JAVA side, I didn’t even need to recompile anything. All your components, like Apache, NGINX, MySQL, Postgres, Python, Perl, Java, etc., run the same. Even commercial software like Oracle’s relational database runs in Arm! This makes it very easy to migrate to the platform with minimal complications.

Moving most applications is simple, just copy over to an Arm system, and recompile if need be. With the right Linux Distro, all the commands are the same, as well as all the other bits. The one change you may experience is that Arm systems do not use a BIOS to boot, so you must learn Unified Extensible Firmware Interface (UEFI) if you use an Ampere chip. Be careful, though, because some Arm chips do not offer UFEI as an option, which could force you down the road of downloading a prebuilt boot image. This is common on older Raspberry PIs, at least before UFEI boot was an option. With Arm based severs it’s an easy install. Check out my blog post for step-by-step directions to install any Enterprise Linux on a bare metal server.

Why this matters!

How does this help you, an Open Source user or developer? First, there is the performance. vCPU vs vCPU Arm can outperform x86 by 60%. That means fewer cores are needed for the same workload, or you can keep the same cores and get better performance. This means your application either becomes faster to lower running costs or even a balance of both.

Additionally, Arm gives you lower power consumption and higher density in the data center. Look at the Ampere One-on cores per socket, with up to 192 cores in a single socket. AMD Threadripper maxes out at 64 cores. The Ampere One CPU has a TDP of about 200 and the AMD Threadripper 7980x a TDP of about 350. This means more cores and lower power! Scale this up to a rack, and a rack of Ampere One with 7296 cores runs about 434w per server with 38 servers in the rack. An Intel 8480 rack with 1680 cores and 534w per server has 30 servers. This means both racks use about the same power, but the Arm-based rack has over 4.3X the cores. This is a lot more CPU for the buck.

This is such a significant savings that large companies are migrating to Arm systems as fast as possible! Oracle is moving all of their SaaS to run on Arm, with all new customers getting Arm-based systems and existing customers road-mapped to move to Arm! Other SaaS providers are following quickly.

Looking at this at a higher level, the Ampere Altra Arm chip is available in Oracle’s cloud, along with Google, Azure, Alibaba, and a host of other Cloud Service Providers. This chip gives better performance than AMD Intel and has much lower power consumption. That means a few things, first lower power usage means less electricity and heat. This directly correlates to less greenhouse gas and a much lower carbon footprint. Not only is it better for the planet, but it’s also less expensive than an AMD or Intel-based system! You do not give up performance, and you end up with a lower bill your boss likes and you also have a better system for the planet! You also have a choice, using the system in the cloud or on-premises with manufacturers like HP, Gigabyte, and Supermicro making servers using the Arm CPU.

It’s not just Ampere CPUs out there, you also have proprietary solutions on AWS and soon on other clouds with the Cloud Service Providers (CSPs) using an in house designed chips. These work well, but you can risk locking yourself into their cloud, eliminating the flexibility of moving to a different cloud provider down the road. The same goes for your Linux distribution. Personally, I always recommend using a CPU and OS that you can run wherever you need it, gaining some flexibility down the road.