The High Performance Conjugate Gradients (HPCG) Benchmark project is an effort to create a new metric for ranking HPC systems. HPCG is intended as a complement to the High Performance LINPACK (HPL) benchmark, currently used to rank the TOP500 computing systems. The computational and data access patterns of HPL are still representative of some important scalable applications, but not all. HPCG is designed to exercise computational and data access patterns that more closely match a different and broad set of important 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 is a complete, stand-alone code that measures the performance of basic operations in a unified code:
Sparse matrix-vector multiplication.
Vector updates.
Global dot products.
Local symmetric Gauss-Seidel smoother.
Sparse triangular solve (as part of the 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.