ARM不仅适用于Mac电脑:可能还会使天气预报变得更便宜

2020-08-31 02:59:34

云计算的主要驱动力之一是访问内部可能不太容易获得的体系结构和系统,其中一个例子是AWS最近推出了自己定制设计的Graviton 2处理器。该处理器基于ARM架构,而不是英特尔和AMD的基于x86的架构。我们已经有许多客户询问ARM在满足他们的HPC需求方面的可行性。虽然有几个已公布的基准可用,但我决定花一个下午亲自试一试。

对于这个小练习,我决定对天气代码WRFv3.9.1.1进行基准测试。WRFv3有两个传统基准,分别代表不同的分辨率(12 km和2.5 km分辨率)。两个基准测试都运行3个模拟小时。较小的基准测试(12 km分辨率)通常可以很好地扩展到几百个内核,而较大的基准测试(2.5 km分辨率)将扩展到几千个内核。但是,对于这个项目,我只在一个节点上运行了基准测试,由于这个练习只是为了满足我自己的好奇心,我没有像我们通常为了捕捉统计变化而经常做的那样多次重新运行基准测试。

对于基准测试硬件,我想对英特尔、AMD和ARM的产品进行比较。AWS是目前唯一一家通过其AWS Graviton 2处理器提供基于ARM的实例的主要云提供商。这将我引向AWS上的C5、C5a和C6g实例类型,我在其中选择了可用的最大实例类型,以便获得“完整节点”。所有经过测试的系统都使用Amazon Linux2作为操作系统,我使用Spack安装了GCC 9.3.0,并构建了WRF的依赖项[1],这使得构建ARM并不比构建英特尔和AMD更困难。在构建WRF本身时,对默认编译配置的唯一修改是将‘aarch64’体系结构添加到GNU/Linux配置部分,并调优参数以针对目标平台进行优化(-march=ative-mtune=ative)。

很明显,这个基准将不会完全是一个苹果对苹果的比较。C5(Intel)实例为双插槽配置,而C5a(AMD)和C6g(ARM)实例均为单插槽配置。C5和C5a都有SMT(又名超线程),而C6g没有。如果我们转而考虑比较每个实例产品的性能,而不是查看底层CPU配置,则比较会变得更加直接。