For AWS, we evaluate both bare-metal and non bare-metal
HPC instances. Azure and GCP provide only non bare-metal
HPC instances, whereas Oracle only provides bare-metal HPC
instances. To have a fair comparison, we selected instance
types with similar CPUs when possible. We used Intel CPUs
on all the cloud instances except for the 200 Gb/s instances
of Azure, which only have AMD EPYC CPUs. For normal
instances, we selected those that provide a similar network
bandwidth and core count. For completeness, we also report
the amount of RAM memory on each instance type.
All four providers guarantee that HPC instances are run
on separate physical servers. For the normal instances we
selected CPUs with a high core count to have them allocated
on two separate servers. This is necessary to ensure that when
measuring network performance the two VMs are actually
using the network. For the cloud providers we report in the
Instance Type column the name of the instances we used.
On all cloud providers, we use the virtual machine (VM)
images and operating system suggested for the HPC instances.
These were: Amazon Linux 2 on AWS [52], CentOS 7.7 on
Azure [53], CentOS 7.9 on GCP [54], and Oracle Linux 7.9 on
Oracle. Daint and Alps run a Cray Linux Environment (CLE)
OS based on SUSE Linux Enterprise Server v15.2, and DEEP-
EST runs Rocky Linux v8.5.
B. Network
The four cloud providers and the DEEP-EST system deploy
a fat tree topology. According to the most recent documenta-
tion we found, Azure, Oracle, and DEEP-EST deploy a non-
blocking network [36], [55], GCP a 3:1 blocking network [15],
whereas we did not find any additional detail on network
over- or under-provisioning for AWS. Both AWS and GCP use
ECMP routing [13], Azure employs adaptive routing [37] for
HPC instances, and for Oracle we did not find any information
on routing. The routing protocol plays a crucial role in network
performance. For example, ECMP is congestion oblivious and
might suffer from flow collisions [16], [17], [18], increasing
the network bandwidth variability (see Sec. IV-C). Daint and
Alps deploy a dragonfly interconnect (Cray Aries [42] and
Slingshot [19] respectively) with adaptive routing.
Each of the evaluated cloud providers uses a different
transport protocol. AWS provides its proprietary RDMA-
like protocol called SRD (Scalable Reliable Datagram) [14],
which resembles in some aspects InfiniBand verbs [56]. It
provides reliable out-of-order delivery of packets and uses a
custom congestion control protocol. The AWS Nitro Card [57]
implements the reliability layer, and the Elastic Fabric Adapter
(EFA) provides OS-bypass capabilities. To react to congestion,
SRD monitors the round trip time (RTT) and forces packets to
be routed differently by changing some of the fields used by
ECMP to select the path. This approach is probabilistic and
might allow avoiding congested paths, but, differently than
truly adaptive routing, it does not allow selecting the least
congested path nor any specific path.
Azure and DEEP-EST use RDMA through InfiniBand [36],
Oracle uses RDMA over Converged Ethernet (RoCEv2) [40],
whereas GCP does not use RDMA and relies on TCP/IP.
To minimize data movement overheads, GCP uses Intel’s
QuickData DMA Engines [58] to offload payload copies of
larger packets. Daint uses a proprietary RDMA protocol [42]
(FMA), whereas Alps uses RoCEv2 [19].
C. Cost
Table I shows the per-hour cost charged to the user as
of July 18, 2022. For the cloud systems, we report the cost
for the East US availability zone. We consider both the cost
for a committed 3-years usage with upfront payment and the
on-demand cost without any minimum commitment. Please
note that 3-years is the maximum commitment allowed on
those providers (and that leads to the lowest per-hour cost),
whereas when having no commitments we have the highest
per-hour cost. For Daint, we report the cost for a minimum
usage of 10,000 compute hours, as well as the on demand
cost, both for non-academic partners. Academic partners have
discounted rates and this would otherwise lead to an unfair
comparison. For Alps and DEEP-EST there is no publicly
available information on the per-hour cost.
On AWS, the main difference between the normal and
HPC instances we selected is the support for Elastic Fabric
Adapter (EFA), which provides the 100 Gb/s networking.
Thus, we can estimate the 3-years committed cost of the
high-performance networks at around 0.135 USD per hour
per VM, and an on-demand cost of 0.82 USD. Similarly, we
selected the same instance type for normal and HPC instances
on GCP. The only difference is that we enabled the so-called
Tier 1 network on the HPC instance, which provides 100 Gb/s
network bandwidth. On GCP, we can thus estimate the cost of
the HPC network at around 0.9 USD per hour per VM [59]
(both for the committed and on-demand cost). Unfortunately,
Azure and Oracle do not provide the same instance in HPC
and non-HPC flavors, and it is thus not possible to isolate the
cost of the HPC network from the rest. Also, we observe that
whereas the on-demand cost of 100 Gb/s instances is lower
than the cost of 200Gb/s instances, this is not true for the
3-years committed usage. Indeed, at the time of the writing,
committing for a 3-years usage led to a 30% discount for 100
Gb/s instances, and to a 50% discount for the 200Gb/s ones.
III. NETWORK PERFORMANCE
We measure network performance using the Netgauge
tool [60], that provides detailed, sample-by-sample measure-
ments (fundamental for estimating network noise in Sec. IV).
We used the Message Passing Interface (MPI) backend and, on
each system, the MPI library recommended by the provider1.
a) Methods: We created an account on each provider,
and used our own funding and/or academic credits, without
coordinating with the providers. The clusters have been cre-
ated and tuned following the guidelines publicly available
1On Azure we used HPC-X v2.8.3 on HPC instances and Open MPI
v4.1.2 on normal instances. We used Open MPI v4.1.1 on AWS, Intel MPI
v2018.4.274 on GCP, Open MPI v4.0.4 on Oracle, Cray MPICH v7.7.18 on
Daint, Cray MPICH v8.1.12 on Alps, and Open MPI v4.1.3 on DEEP-EST.