Improved MPI efficiency interprets on to improved software scaling, increasing the set of workloads that run effectively on Google Cloud. If you happen to plan to run MPI workloads on Google Cloud, use these practices to get the absolute best efficiency. Quickly, it is possible for you to to make use of the upcoming HPC VM Picture to simply apply these finest practices and get one of the best out-of-the-box efficiency on your MPI workloads on Google Cloud.
1. Use Compute-optimized VMs
Compute-optimized (C2) situations have a hard and fast virtual-to-physical core mapping and expose NUMA structure to the visitor OS. These options are essential for efficiency of MPI workloads. Additionally they leverage second Technology Intel Xeon Scalable Processors (Cascade Lake), which might present as much as a 40% enchancment in efficiency in comparison with earlier technology occasion sorts because of their help for a better clock velocity of three.eight GHz, and better reminiscence bandwidth.
C2 VMs additionally help vector directions (AVX2, AVX512). We have now seen important efficiency enchancment for a lot of HPC functions when they’re compiled with AVX directions.
2. Use compact placement coverage
A placement policy offers you extra management over the location of your digital machines inside an information heart. A compact placement coverage ensures situations are hosted in nodes close by on the community, offering decrease latency topologies for digital machines inside a single availability zone. Placement coverage APIs at present enable creation of as much as 22 C2 VMs.
3. Use Intel MPI and collective communication tunings
For one of the best MPI software efficiency on Google Cloud, we advocate using Intel MPI 2018. The selection of MPI collective algorithms can have a big influence on MPI software efficiency and Intel MPI lets you manually specify the algorithms and configuration parameters for collective communication.
This tuning is finished utilizing mpitune and must be executed for every mixture of the variety of VMs and the variety of processes per VM on C2-Normal-60 VMs with compact placement insurance policies. Since this takes a substantial period of time, we offer the recommended Intel MPI collective algorithms to make use of in the most typical MPI job configurations.
For higher efficiency of scientific computations, we additionally advocate use of Intel Math Kernel Library (MKL).
4. Alter Linux TCP settings
MPI networking efficiency is essential for tightly coupled functions during which MPI processes on completely different nodes talk continuously or with massive information quantity. You possibly can tune these community settings for optimum MPI efficiency.
5. System optimizations
For compute-bound jobs during which each digital cores are compute sure, Intel Hyper-Threading can hinder general software efficiency and may add nondeterministic variance to jobs. Turning off Hyper-Threading permits extra predictable efficiency and may lower job occasions.
Overview safety settings
You possibly can additional enhance MPI efficiency by disabling some built-in Linux safety features. In case you are assured that your methods are effectively protected, you possibly can consider disabling the next safety features as described in Safety settings part of the best practices guide:
Now let’s measure the influence
On this part we show the influence of making use of these finest practices by application-level benchmarks by evaluating the runtime with choose clients’ on-prem setups:
(i) Nationwide Oceanic and Atmospheric Administration (NOAA) FV3GFS benchmarks
We measured the influence of one of the best practices by working the NOAA FV3GFS benchmarks with the C768 mannequin and 104 C2-Normal-60 Cases (3,120 bodily cores). The anticipated runtime goal, based mostly on on-premise supercomputers, was 600 seconds. Making use of these finest practices offered a 57% enchancment in comparison with baseline measurements—we have been capable of run the benchmark in 569 seconds on Google Cloud (quicker than the on-prem supercomputer).