Featured image of post DNDSR Euler3D P3 weak scaling on four CPU clusters

DNDSR Euler3D P3 weak scaling on four CPU clusters

How well does DNDSR scale when each CPU core has roughly the same amount of work? This study measures its fourth-order Euler3D solver on four CPU clusters. The largest accepted production run reaches 8,192 MPI ranks, but the clusters differ sharply in how they behave at scale.

Every run uses whole nodes and one MPI rank per physical core. The weak-scaling runs and workload-matched retests keep roughly 1,024 periodic hexahedral cells per rank; four diagnostic controls use heavier workloads. The measurement covers the steady internal update of the P3 VFV scheme (maxOrder=3, quadrature intOrder=5, limiter disabled), not mesh setup.

Each completed run records 500 solver updates. The first 100 serve as warmup; all 400 remaining updates enter the statistics without trimming. The mean includes slow updates and stalls, while the median better describes a typical update. Their difference matters most at high rank counts, where a few long updates can lower sustained throughput. A cell-iteration is one cell processed in one solver update; MCell-it/s means millions of these per second. Timing CV describes the relative variation among update times.

The audit contains 31 runs with all 400 measured updates:

  • 22 production weak-scaling runs using serial CGNS input;
  • five workload-matched distributed-HDF5/new-MPI retests;
  • four distributed-HDF5 diagnostic controls with deliberately heavier per-rank workloads.

Runs that stopped during mesh setup produced no update timings, so they are not performance points.

Machines and MPI stacks

ClusterCPU per nodePhysical cores/nodeBenchmark partitionProduction MPISupplemental MPI
m82x AMD EPYC 9654, Zen 4192amd_m8_768Open MPI 4.1.0, UCX 1.14Open MPI 5.0.10, UCX 1.14
m92x AMD EPYC 9755, Zen 5256amd_m9_768Open MPI 4.1.8, UCX 1.18same stack
a82x AMD EPYC 9554, Zen 4128amd_a8_384Open MPI 4.1.0, UCX 1.14Open MPI 4.1.6, UCX 1.14
thtj12x Intel Xeon Gold 6348, Ice Lake-SP56cp6Open MPI 4.1.4, site UCX/GLEXnone

These are the normal production partitions: a8 used its 384 GB class rather than the dedicated 768 GB large-memory partition, and m9 used 768 GB rather than 1.5 TB. m8 used its M8-specific 768 GB partition; thtj1 used cp6.

Production weak scaling

Mean throughput and weak-scaling efficiency

Production weak scaling. Throughput continues to rise to m9’s 8,192-rank point, although its efficiency falls. thtj1 shows a different pattern: a sharp throughput drop beyond 16 nodes.

Download the vector PDF.

The horizontal axis counts physical CPU cores. The left panel shows stall-inclusive mean throughput; the right panel compares that throughput with each cluster’s one-node baseline.

ClusterNodesRanksCells/rankMean MCell-it/sMedian MCell-it/sMean efficiencyMedian efficiencyTiming CV
m811921016.21.7721.830100.0%100.0%0.108
m823841013.13.5043.67298.9%100.3%0.150
m847681013.96.2616.52788.3%89.2%0.161
m8815361016.29.36612.56966.1%85.8%2.941
m81630721034.020.35823.77471.8%81.2%0.307
m912561024.02.3822.808100.0%100.0%1.599
m925121038.05.1035.450107.1%97.1%0.371
m9410241036.39.23810.54596.9%93.9%0.657
m9820481024.015.26420.32380.1%90.5%0.773
m91640961018.921.93634.91557.5%77.7%1.077
m93281921021.230.20144.44139.6%49.5%0.978
a811281036.31.6561.712100.0%100.0%0.082
a845121038.05.2496.17779.3%90.2%2.092
a8810241036.311.21111.79084.6%86.1%0.171
a81620481024.019.79321.28874.7%77.7%0.173
thtj11561059.30.5250.528100.0%100.0%0.029
thtj121121050.41.0301.04098.0%98.4%0.042
thtj142241013.32.0362.07696.9%98.2%0.060
thtj184481019.03.9804.10994.7%97.2%0.103
thtj1168961018.67.3097.63987.0%90.4%0.119
thtj13217921013.32.1012.10912.5%12.5%0.011
thtj16435841019.04.4144.24113.1%12.5%0.177

m9 reaches the largest accepted production point: 8,192 ranks on 32 nodes. It delivers 30.20 million cell-iterations/s by the mean, versus 44.44 million by the median. Mean and median efficiencies are 39.6% and 49.5%. That gap, alongside a timing CV of 0.978, shows how strongly slow updates affect the sustained average.

m8 and a8 retain 71.8% and 74.7% mean efficiency at 16 nodes. thtj1 also scales smoothly to 16 nodes, then drops from 7.31 to 2.10 million cell-iterations/s at 32 nodes. Its 32-node timing CV is only 0.011: the slowdown is consistent, not the result of a few outlier updates. Throughput partly recovers at 64 nodes, but efficiency stays near 13%. The attempted 128-node runs never reached solver updates and therefore have no throughput measurement.

Per-core throughput and MPI retests

Mean and median throughput per physical CPU core

Throughput per core. Production and workload-matched HDF5/MPI retest series are distinguished in the legend. Completing a large run does not guarantee strong per-core performance, particularly on m8.

Download the vector PDF.

The five HDF5 retests keep the workload within 1.2% of the 1,024-cell-per-rank target. They use validated MPI stacks available on the same machines.

ClusterNodesRanksCells/rankMPI stackMean MCell-it/sMedian MCell-it/sMean kCell-it/s/coreMedian kCell-it/s/coreCVOutcome
a811281036.3Open MPI 4.1.6 + UCX 1.141.6111.67912.58413.1160.153completed
a83240961018.9Open MPI 4.1.6 + UCX 1.1429.75133.8067.2638.2530.561completed
m811921016.2Open MPI 5.0.10 + UCX 1.141.7921.9549.33510.1770.299completed
m83261441030.5Open MPI 5.0.10 + UCX 1.1412.42113.7582.0222.2390.944completed
m91640961018.9Open MPI 4.1.8 + UCX 1.1821.21827.8655.1806.8030.977solver completed; allocation cleanup timed out

On m8 and a8, the newer Open MPI stacks complete workloads at scales where the earlier stacks failed during setup. The executable and UCX version were retained; HDF5 input alone did not make the old Open MPI 4.1.0 large-rank attempts complete. These checks support an MPI-stack explanation for the completion difference, but not a general speedup.

Performance remains uneven. Relative to the matching one-node retest, a8 retains 57.7% mean and 62.9% median efficiency at 32 nodes. m8 retains only 21.7% mean and 22.0% median efficiency, with CV 0.944. Its newer stack solves the completion problem, not the large-scale performance problem.

The m9 HDF5 run produced all 400 samples, and the application and MPI steps exited successfully. The outer allocation reached its shortened time limit only during cleanup. Its performance sample is therefore included, with that status noted in the table.

Heavier diagnostic controls

The remaining four completed runs have 1.33 to 15.92 times the target cells per rank. Their timings are valid for those heavier workloads, but they do not belong to the workload-matched weak-scaling curves.

ClusterNodesRanksCells/rankRelative loadMean MCell-it/sMedian MCell-it/sMean kCell-it/s/coreMedian kCell-it/s/coreCV
a81620482037.71.99x20.04921.1339.78910.3190.117
a82430721358.51.33x23.29225.8717.5828.4220.599
m81630722061.12.01x21.52024.0117.0057.8160.196
m9125616301.915.92x2.7162.78510.60810.8790.160

Interpretation and scope

The benchmark reveals three distinct behaviors:

  1. m9 runs the unchanged production path at 8,192 ranks, beyond 5,000. There is no universal rank-count ceiling near that value.
  2. On m8 and a8, repeatable large-rank setup failures are associated with the production Open MPI 4.1.0 stacks. Newer validated stacks complete at the same scale, although m8’s sustained efficiency remains poor.
  3. thtj1 has a different limit: its 32-node updates are consistently slow, and its 128-node attempts spend hours in distributed mesh setup without producing update timings.

This is a whole-node, pure-MPI application benchmark, not a controlled comparison of CPU architectures. Core counts, processors, MPI and UCX versions, and network fabrics differ among clusters. Read mean/median gaps and timing CVs alongside throughput rather than judging a cluster by a single high-rank result.

The solver source is DNDSR dev/harry commit f6ece7e91e97c6337ef0761c30017b2ddad6b24b. Exact configuration hashes, machine-readable timing rows, scheduler classifications, and failure evidence are in the public benchmark report.

by Harry
Built with Hugo
Theme Stack designed by Jimmy