SPECaccel: Read Me First

(To check for possible updates to this document, please see http://www.spec.org/accel2023/Docs/ )


This document provides background information about the SPECaccel benchmark suite. SPEC hopes that this material will help you understand what the benchmark suite can, and cannot, provide; and that it will help you make efficient use of the product.

Overall, SPEC designed SPECaccel to provide a comparative measure the performance of hardware Accelerator devices and their supporting software tool chains using computationally-intensive parallel applications. The suite is comprised of scientific applications used in High Performance Computing (HPC). The suite has been ported using the OpenACC and OpenMP programming models with OpenMP presented using three different methods. Users select which models and method to use via the new "pmodel" setting in a configuration file. The same source and workloads are used allowing for direct comparision between the models and methods. The product consists of source code benchmarks that are developed from real user applications.

This document is organized as a series of questions and answers.


Q1. What is SPEC?

Q2. What is a benchmark?

Q3. Should I benchmark my own application?

Q4. If not my own application, then what?


Q5. What does SPECaccel measure?

Q6. Why use SPECaccel?

Q7. What are the limitations of SPECaccel?

Overview of usage

Q8. What is included in the SPECaccel package?

Q9. What does the user of the SPECaccel suite have to provide?

Q10. What are the basic steps in running the benchmarks?

Q11. What source code is provided? What exactly makes up these suites?


Q12. Some of the benchmark names sound familiar; are these comparable to other programs?

Q13. What metrics can be measured?

Q14. What is the difference between a "base" metric and a "peak" metric?

Q16. Which SPECaccel metric should be used to compare performance?

Benchmark selection

Q17. What criteria were used to select the benchmarks?


Q18. Why does SPEC use a reference machine? What machine is used for SPEC ACCEL?

Q19. How long does it take to run the SPECaccel benchmark suites?

Q20. What if the tools cannot be run or built on a system? Can the benchmarks be run manually?

Q21. Where are SPECaccel results available?

Q22. Can SPECaccel results be published outside of the SPEC web site? Do the rules still apply?

Q23. How do I contact SPEC for more information or for technical support?

Q24. Now that I have read this document, what should I do next?

Note: links to SPEC ACCEL documents on this web page assume that you are reading the page from a directory that also contains the other SPECaccel documents. If by some chance you are reading this web page from a location where the links do not work, try accessing the referenced documents at one of the following locations:

Q1. What is SPEC?

SPEC is the Standard Performance Evaluation Corporation. SPEC is a non-profit organization whose members include computer hardware vendors, software companies, universities, research organizations, systems integrators, publishers and consultants. SPEC's goal is to establish, maintain and endorse a standardized set of relevant benchmarks for computer systems. Although no one set of tests can fully characterize overall system performance, SPEC believes that the user community benefits from objective tests which can serve as a common reference point.

Q2. What is a benchmark?

A benchmark is "a standard of measurement or evaluation" (Webster’s II Dictionary). A computer benchmark is typically a computer program that performs a strictly defined set of operations - a workload - and returns some form of result - a metric - describing how the tested computer performed. Computer benchmark metrics usually measure speed: how fast was the workload completed; or throughput: how many workload units per unit time were completed. Running the same computer benchmark on multiple computers allows a comparison to be made.

Q3. Should I benchmark my own application?

Ideally, the best comparison test for systems would be your own application with your own workload. Unfortunately, it is often impractical to get a wide base of reliable, repeatable and comparable measurements for different systems using your own application with your own workload. Problems might include generation of a good test case, confidentiality concerns, difficulty ensuring comparable conditions, time, money, or other constraints.

Q4. If not my own application, then what?

You may wish to consider using standardized benchmarks as a reference point. Ideally, a standardized benchmark will be portable, and may already have been run on the platforms that you are interested in. However, before you consider the results you need to be sure that you understand the correlation between your application/computing needs and what the benchmark is measuring. Are the benchmarks similar to the kinds of applications you run? Do the workloads have similar characteristics? Based on your answers to these questions, you can begin to see how the benchmark may approximate your reality.

Note: A standardized benchmark can serve as reference point. Nevertheless, when you are doing vendor or product selection, SPEC does not claim that any standardized benchmark can replace benchmarking your own actual application.

Q5. What does SPECaccel measure?

SPECaccel focuses on the performance of highly parallel compute intensive applications using hardware acceleration, which is referred here as an "Accelerator". The software APIs used in SPECaccel models the Accelerator with the assumptions that there is a CPU (host) which runs the main program, copies the data needed by the accelerated computation to and from discrete memory on the Accelerator, and launches the accelerated routines. Which means these benchmarks emphasize the performance of:

Note that some Accelerators may share the same memory as the host CPU. In these cases, the programming model still would assume separate memory and it would be up to the underlying tools, compiler and driver to optimize or reduce unnecessary data movement.

SPECaccel contains a suite that focuses on parallel computing performance using the OpenMP 5.2, and OpenACC 3.0 standards. The suite may be extended in the future to include other standards for accelerators.

The suite can be used to measure along the following vector:

SPECaccel is not intended to stress other computer components such as networking, the operating system, graphics, or the I/O system. Note that there are many other SPEC benchmarks, including benchmarks that specifically focus on graphics, distributed Java computing, webservers, and network file systems.

Q6. Why use SPECaccel?

SPECaccel provides a comparative measure of parallel compute performance between Accelerator platforms using OpenMP and OpenACC. If this matches with the type of workloads you are interested in, SPECaccel provides a good reference point.

Other advantages to using SPECaccel include:

Q7. What are the limitations of SPECaccel?

As described above, the ideal benchmark for vendor or product selection would be your own workload on your own application. Please bear in mind that no standardized benchmark can provide a perfect model of the realities of your particular system and user community.

Some workloads require 15 GB of memory on the device and use single data objects of over 2 GB. Hence, some accelerators may not be able to run the reference workload and some portability compliation flags may need to be set to use the medium memory model or otherwise enable large object support.
Note most benchmark's "train" workload use the smaller 2GB workload from SPEC ACCEL v1 or have settings to reduce the memory footprint, such as 452.ep's -DSPEC_BLOCK_SIZE define flag. While not valid for reportable results, the "train" workload can be used as a proxy when running on accelerators with smaller memories.

Q8. What is included in the SPECaccel package?

SPEC provides the following on the SPECaccel distribution:

Q9. What does the user of the SPECaccel suite have to provide?

Briefly, you need a Unix or Linux system. Mac OS X may also be used but has not been thoroughly tested. Windows is not supported. You will also need compilers; 4 GB of free disk space; and a minimum of 16 GB of free host memory. The Accelerator needs at least 16 GB of memory and the OpenMP and OpenACC implementations must have the ability to allocate a single object greater than 2 GB. Also for OpenACC and OpenMP, the Accelerator will need to support both single and double precision floating point operations.

Q10. What are the basic steps in running the benchmarks?

Installation and use are covered in detail in the SPECaccel User Documentation. The basic steps are:

If you wish to generate results suitable for quoting in public, you will need to carefully study and adhere to the run rules.

Q11. What source code is provided? What exactly makes up these suites?

SPECaccel is based on highly parallel compute-intensive applications provided as source code. Unlike it's predecessor, SPECaccel 2023 has merged the OpenACC and OpenMP versions into a single source with the users selecting the parallel model to use via the "pmodel" option set in a config file or as a commandline argument to runaccel.

The SPECaccel suite contains 12 benchmarks.

Benchmark Language Application domain
403.stencil C Thermodynamics
404.lbm C Computational Fluid Dynmaics, Lattice Boltzmann Method
450.md Fortran Molecular Dynamics
452.ep C Embarrassingly Parallel
453.clvrleaf Fortran, C Explicit Hydrodynamics
455.seismic Fortran Seismic Wave Modeling
456.spF Fortran Scalar Penta-diagonal solver
457.spC C Scalar Penta-diagonal solver
459.miniGhost C, Fortran Finite difference
460.ilbdc Fortran Fluid Mechanics.
463.swim Fortran Weather
470.bt C Block Tridiagonal Solver for 3D PDE

Descriptions of the benchmarks, with reference to papers, web sites, and so forth, can be found in the individual benchmark descriptions (click the links above). Some of the benchmarks also provide additional details, such as documentation from the original program, in the nnn.benchmark/Docs directories in the SPEC benchmark tree.

The numbers used as part of the benchmark names provide an identifier to help distinguish programs from one another.

Q12. Some of the benchmark names sound familiar; are these comparable to other programs?

Many of the SPEC benchmarks have been derived from publicly available application programs. The individual benchmarks in this suite may be similar, but are NOT identical to benchmarks or programs with similar names which may be available from sources other than SPEC. In particular, SPEC has invested significant effort to improve portability and to minimize hardware dependencies, to avoid unfairly favoring one hardware platform over another. For this reason, the application programs in this distribution may perform differently from commercially available versions of the same application.

Therefore, it is not valid to compare SPECaccel benchmark results with anything other than other SPECaccel benchmark results.

Q13. What metrics can be measured?

After the benchmarks are run on the system under test (SUT), a ratio for each of them is calculated using the run time on the SUT and a SPEC-determined reference time. From these ratios, the following metrics are calculated:

SPECaccel (for highly parallel compute intensive performance comparisons):

In all cases, a higher score means "better performance" on the given workload.

Q14. What is the difference between a "base" metric and a "peak" metric?

In order to provide comparisons across different computer hardware, SPEC provides the benchmarks as source code. Thus, in order to run the benchmarks, they must be compiled. There is agreement that the benchmarks should be compiled the way users compile programs. But how do users compile programs?

In addition to the above, a wide range of other types of usage models could also be imagined, ranging in a continuum from -Odebug at the low end, to inserting directives and/or re-writing the source code at the high end. Which points on this continuum should SPECaccel allow?

SPEC recognizes that any point chosen from that continuum might seem arbitrary to those whose interests lie at a different point. Nevertheless, choices must be made.

For SPECaccel, SPEC has chosen to allow two types of compilation:

Note that options allowed under the base metric rules are a subset of those allowed under the peak metric rules. A legal base result is also legal under the peak rules but a legal peak result is NOT necessarily legal under the base rules.

A full description of the distinctions and required guidelines can be found in the SPECaccel Run and Reporting Rules.

The benchmark reports list many other power measure data.

Q15. Which SPECaccel metric should be used to compare performance?

It depends on your needs. SPEC provides the benchmarks and results as tools for you to use. You need to determine how you use a computer or what your performance requirements are and then choose the appropriate SPEC benchmark or metrics.

Q16: What criteria were used to select the benchmarks?

The benchmarks were ported from existing benchmark suites such as Parboil, Rodinia, OMP2012, CPU2006, and NAS Parallel Benchmarks, as well as new applications from Sandia National Laboratories, and Atomic Weapons Establishment (AWE).

The chosen benchmarks are primairly small applications testing specific parallel algorithms. They represent many commonly used High Performance Computing (HPC) algorithms and designed to test various aspects of an Accelerator such as work scheduling, memory performance of coalesced data, random memory access, data movement between host and Accelerator.

Q17: Why does SPEC use a reference machine? What machine is used for SPECaccel?

SPEC uses a reference machine to normalize the performance metrics used in the SPECaccel suites. Each benchmark is run and measured on this machine to establish a reference time for that benchmark. These times are then used in the SPEC calculations.

SPECaccel uses an Supermicro SuperServer SYS-1029GQ-TRT system from 2018 as a the reference machine. The machine uses two Intel Xeon Gold 6148 processors with 384 GB of RAM and is equipped with four NVIDIA Tesla V100 (Volta generation with 16 GB GPU memory). The reference measurement uses the default OpenMP "target" pmodel generated by running a host program on the Intel CPUs and offloading work onto the NVIDIA GPU.

It took about 6.5 hours to do a rule-conforming run of the base metrics on the reference machine.

Note that when comparing any two systems measured with the SPECaccel, their performance relative to each other would remain the same even if a different reference machine was used. This is a consequence of the mathematics involved in calculating the individual and overall (geometric mean) metrics.

Q18: How long does it take to run the SPECaccel benchmark suites?

This depends on the machine that is running the benchmarksi, pmodel being used, and the number of iterations. As mentioned above, the reference (historical) machine takes on the order of 6-7 hours with a three iteration run; contemporary machines or using two iterations should take less. Runs without using an accelerator may take signicantly longer.

Q19: What if the tools cannot be run or built on a system? Can the benchmarks be run manually?

To generate rule-compliant results, an approved toolset must be used. If several attempts at using the SPEC-provided tools are not successful, you should contact SPEC for technical support. SPEC may be able to help you, but this is not always possible -- for example, if you are attempting to build the tools on a platform that is not available to SPEC.

If you just want to work with the benchmarks and do not care to generate publishable results, SPEC provides information about how to do so.

Q20: Where are SPECaccel results available?

Results for measurements submitted to SPEC are available at http://www.spec.org/accel2023/.

Q21: Can SPECaccel results be published outside of the SPEC web site? Do the rules still apply?

Yes, SPECaccel results can be freely published if all the run and reporting rules have been followed. The SPECaccel license agreement binds every purchaser of the suite to the run and reporting rules if results are quoted in public. A full disclosure of the details of a performance measurement must be provided on request.

SPEC strongly encourages that results be submitted for publication on SPEC's web site, since it ensures a peer review process and uniform presentation of all results.

The run and reporting rules for research and and academic contexts recognize that it may not be practical to comply with the full set of rules in some contexts. It is always required, however, that non-compliant results must be clearly distinguished from rule-compliant results.

Q22. How do I contact SPEC for more information or for technical support?

SPEC can be contacted in several ways. For general information, including other means of contacting SPEC, please see SPEC's Web Site at:


General questions can be emailed to: info@spec.org
SPECaccel Technical Support Questions can be sent to: accelsupport@spec.org

Q23. Now that I have read this document, what should I do next?

If you haven't bought SPECaccel or applied for the no-cost non-commercial license, it is hoped that you will consider doing so. If you are ready to get started using the suite, then you should pick a system that meets the requirements as described in


and install the suite, following the instructions in


Copyright 2014-2023 Standard Performance Evaluation Corporation
All Rights Reserved