SPEC – the Standard Performance Evaluation Company – introduced its newest benchmark suite today, SPEChpc 2021, intended to measure “intense compute parallel performance across one or more nodes.” Founded in 1988, SPEC supports many benchmarks; one of the more familiar is SPEC CPU 2017 that is used to benchmark CPU performance. Given the rise of heterogeneous architectures with multiple accelerators, the addition of the SPEChpc benchmark is timely.
The new benchmark suite has been in the works for about four years, said Mat Colgrove in a HPCwire pre-briefing. Colgrove leads the SPEC High Performance Group (HPG) and is also a dev/tech engineer for Nvidia.
“Our group’s mission is to look at high performance computing and we’ve put out various benchmarks over the years. We mostly focus on programming models. Our still active benchmarks are SPEC MPI 2007 and SPEC OpenMP 2012,” said Colgrove, who participated in developing the SPEC ACCEL benchmark which tests performance of the accelerator, host CPU, memory transfer between host and accelerator, support libraries and drivers, and compilers.
The new SPEChpc suite targets performance when the workload is offloaded to accelerators.
“We’ve combined all those [earlier] elements to be able to take a single benchmark and do so in a hybrid [fashion] with multiple models. That gives you a different perspective. Now you can start looking at different heterogeneous and homogeneous architectures using the same code base. The parallel [programming] model may change, but algorithmically they don’t. The idea was to be able to have portable models that can be utilized by many different vendors and to give a fair comparison across different architectures,” said Colgrove.
The value of any benchmark is in understanding its details. SPEChpc 2021’s components are as shown in the two figures below. (Click to enlarge)
Colgrove emphasized SPEChpc is a ‘strong scaled’ benchmark, “So we’ve got a fixed size workload. The problem in scaling is we want to range from a single node or two up to hundreds or even 1000s of nodes. You can’t do that with one workload. You’re going to have too big a memory constraint. What we decided to do is separate them into four workloads.”
As seen in the figures above, SPEChpc has four suites each comprised of between 9 (Tiny/Small) and 6 (Medium/Large) benchmarks. The three benchmarks not included in the Medium and Large Suites contain constructs, such as MPI_AllReduce which were not condusive for large scale benchmarking. Having fewer benchmarks also helps lowering the cost of running the suites on larger systems, according to SPEC.
“While the benchmark source code is the same between the suites, the workload size and memory requirements for each suite is different. Each suite is intended to target clusters with various node and core counts. The user will need to determine the appropriate suite for their system. While SPEChpc makes no requirement for the minimum or maximum number of ranks that can be used with each suite, since SPEChpc is strong scaled with fixed size workloads, scaling will diminish as more ranks are used. In some cases, a benchmark may fail if too many ranks are used. The description for each suite below indicates the rank counts SPEC/HPG has tested when using a pure MPI run. Scaling and rank count may differ when using an additional node level parallel model (OpenACC or OpenMP),” according to SPEC.
It will likely take time for the new SPEChpc 2021 benchmark to be widely used. SPEC benchmarks are mainly tools for vendors to showcase their systems performances in a standardized way, but they can also be run by users to assess their internal systems. Here’s an excerpt from today’s announcement:
“With the SPEChpc 2021 Benchmark Suites, developers and researchers can evaluate different programming models to assess which model would be best for their application or system configuration. Hardware and software vendors can use it to stress test their solutions. And compiler vendors can use it to improve general code performance and their support for directive-based programming models. The new suites can also be used by data center operators and other end users to make procurement decisions.
“Building on our experience in developing the SPEC MPI 2007 benchmark, the SPEC OMP 2012 benchmark, and the SPEC ACCEL benchmark suites, SPEC designed a new set of benchmark suites that keeps pace with the rapidly evolving HPC market,” said Ron Lieberman, SPEC High Performance Group (HPG) Chair. “The high portability of the SPEChpc 2021 Benchmark Suites, along with a strict result review process and rich SPEC result repository, enables us to deliver vendor-neutral performance comparisons for evaluating and studying modern HPC platforms.”
Broadly, SPEC licenses its test suites to companies and organizations for use. Companies who run “compliant” (no customizing) tests are then free to publish the results. SPEC encourages organizations running benchmarks to post them on lists maintained on its website, but that’s not required.
There were 76 SPEChpc benchmarks listed as of earlier today. They are spread across the various test suites (tiny, small, medium, large). The hope is more will soon be added by vendors and users showcasing their systems.
Colgrove advises care when reviewing the scores. “We distill down to a single metric number, but what drives that number may not be immediately evident. I [may] have a world record number listed but what compose that [test]. How many nodes were used, because the top tiny net result is down here, for example, is TACC (The Texas Advanced Computing Center, three entries) and they got up to 78. That’s an impressive number but they also used 32 nodes, 64 ranks and 20 openMP threads. That’s a big system. I encourage people to look at the details and understand well, what do I want to compare? Do I want to look at a smaller system? If I was to be a purchasing somebody looking at it, and I wanted to understand, do I need to scale up or scale out,” he said.
The actual SPEChpc score is a ratio of the performance of system-being-tested against a reference system which is the TU-Dresden Taurus system. The SPEChpc score is calculated as follows (from the SPEC website):
- For the given suite (Tiny, Small, Medium, Large), the elapsed time in seconds for each of its benchmark runs is reported.
- The ratio of the reference system (TU-Dresden’s Taurus System) time divided by the corresponding measured time is reported.
- Separately for base and peak, the medianor lower median of these ratios is reported per benchmark.
- The “base” metric is the geometric mean of medians of the base ratios, and the “peak” metric is the geometric mean of medians of the peak ratios.
Benchmarks for a range of systems are currently shown with Lenovo submitting the majority, but there are also benchmarks for TACC (Frontera) and Oak Ridge (Summit). It’s best to look at the results directly, bearing in mind these are the first set of SPEChpc scores being listed.
“We really do hope that it has an impact. This is kind of our first our major attempt at a large-scale hybrid benchmark. We’d like in the future to be able to continue developing in this direction, and get feedback and have more people join us,” said Colgrove.
Link to SPEChpc 2021 results, https://www.spec.org/hpc2021/results/hpc2021.html
Link to SPEChpc 2021 overview, https://www.spec.org/hpc2021/Docs/overview.html#Q20
Link to SPEChpc 2021 rules, https://www.spec.org/hpc2021/Docs/runrules.html