Issue 001 – June 27, 2020

An ARM and a leg

Hey there CFD-friend,

I realise I must have a pretty niche news feed, but I keep bumping into articles getting excited about the rise of ARM processors for servers & desktop machines.

ARM chips have been powering tablets & phones for years, but it’s only relatively recently that server-grade ARM chips have taken aim at Intel & AMD, and started to muscle in at the crunchy end of the processor market.

In the last week or so, Apple announced their transition to ARM (Apple Silicon) chips for the next generation of Macs. There’s a new ARM-powered entry atop the Top500 supercomputer list. And, last-but-not-least, AWS rolled out a couple of new ARM-based instance types.

Is this news for us CF-Do-ers? Maybe not those first two, but AWS certainly seems to think so.

In case you’re wondering, ARM processors are different in quite a few ways to the x86 chips that dominate most of our computing. One of the most significant differences is that they aren’t made by any particular company. ARM provides it’s IP for you to design your own chip & you pay to license that IP.

If you need a chip that uses almost no power, and does a minimal amount of computing, then you can design for that. Conversely, if you want one that can do some serious number crunching in a server setting, with loads of cores & decent memory bandwidth, then you can do that too. And that’s more like what AWS have done with their “Graviton 2” processors.

With this new foray into chip design, AWS is doing to processors what Amazon does in retail. They’ve mined their data to find out what people actually buy (be that shoes, coffee machines or instance types) and then made their own version that’s good enough in the metrics that many of their customers care about. Then they’ve offered it at a lower price, because…why not? It’s their playground.

So this is where we find ourselves with the new ARM-based AWS instances. In CFD terms, they’re not quite as quick per iteration as the comparable x86 (Intel & AMD) instances. But they’re priced low enough that you might not care.

Where’s the catch?

Well, for CFD purposes, there are two main catches…

Firstly, you’ll need to compile OpenFOAM (or your code of choice) specifically to run on ARM. Standard versions won’t work out-of-the-box. I haven’t tried doing it (yet), but it seems like it’s not too troublesome, especially if you’ve compiled OpenFOAM before 😨

Secondly, the AWS results suggest that the new instances don’t scale that well in a cluster. And certainly not as well as their network-enhanced instances (c5n family). So, if you cluster your instances to access lots of cores, then the new ARM machines might not be for you – yet.

I say yet because things change fast in AWS-land. And if changes aren’t tied to AMD & Intel’s release cycles, then things could change pretty quickly for these home-grown instance types.

Are they worth a look?

I reckon they are.

I have a preference for running single jobs on single instances & they look pretty cost-competitive for that.

But…

I need to see what the spot market looks like for these instances. They’re cost competitive at on-demand prices. But, if they aren’t available on the spot market, then they might not look so good. After all, a fleet of Intel-based, network-enhanced spot instances @ 70% off is still a very compelling offering 💸

Finally, I don’t think I fancy maintaining both ARM & x86 machine images (AMIs) - it feels like a recipe for a mix up or an opportunity to drop the ball.

So, worth a look? Definitely.

Go all in? Nope.

Over to you, what do you reckon? Are you already running on ARM chips? Is this a bit of a distraction? Should we be looking more towards GPUs rather than a just another CPU type? Or does the next big performance leap come from code not hardware?

Let me know, I’m genuinely interested in your thoughts.

Until next time,

Signed Robin K