NERSCPowering Scientific Discovery Since 1974



HPCG is designed to exercise computational and data access patterns that closely match a broad set of important scientific applications, and to give incentive to computer system designers to invest in capabilities that will have impact on the collective performance of these applications.

HPCG measures the performance of these basic operations in a unified code:

  • Sparse matrix-vector multiplication
  • Sparse triangular solve
  • Vector updates
  • Global dot products
  • Local Symmetric Gauss-Seidel smoother
  • Driven by multigrid preconditioned conjugate gradient algorithm that exercises the key kernels on a nested set of coarse grids.
  • Reference implementation is written in C++ with MPI and OpenMP support.

Required Problem Sets

For HPCG, small medium, large and grand challenge problems have been defined. The details can be found in the README.APEX of source distribution. The large problem definition will be used as the reference, and the grand challenge problem will be used as the target in the calculation of SSI.

Source Distribution

Source and problem definitions can be downloaded here.

How to Build, Run and Verify

Refer to the README.APEX file in the source distribution.


HPCG is an open source benchmark developed by Mike Heroux, Jack Dongarra and Piotr Luszczek.

Change Log

05/25/2016 Updated to latest version 3.0 release of the HPCG distribution. For the APEX benchmark, the -DHPCG_CONTIGUOUS_ARRAYS flag is now used which improves the baseline performance on Edison significantly. Please refer to the updated SSI spreadsheet for the new baseline value.
11/11/2015 Source distribution link enabled.
10/30/2015 Initial release