Performance characterisation and benchmarking
Knowing how fast you are going is a prerequisite of improving program performance.
EPCC has wide expertise in benchmarks and has developed a series of micro-benchmarks to assess programming model performance. Our aim is to enhance understanding of the performance characteristics of different HPC models, languages and architectures.
A suite of microbenchmarks which enable the overheads due to synchronisation, loop scheduling, array operations and task scheduling to be measured for the language constructs used in OpenMP.
A suite of microbenchmarks which allows the performance of hybrid OpenMP/MPI code to be measured. The benchmarks provide analogues for the typical operations found in MPI microbenchmark suites, allowing both point-to-point and collective communication patterns to be investigated.
A low-level benchmark suite for Fortran coarrays, which measures a set of basic operations.
A suite of benchmark for OpenACC, including low-level benchmarks, kernels and small scale applications.
A suite of microbenchmarks to measure the overheads for various scenarios and constructs in the SMPSs programming environment.
A suite of microbenchmarks which allows the performance of hybrid SMPSs and MPI code to be measured for both point to point and collective communication patterns.
A suite of benchmarks which provides ways of measuring and comparing alternative Java execution environments in ways which are relevant to high performance and scientific computing. Includes low-level benchmarks, kernels and small scale applications.
JOMP is an OpenMP-like set of directives and library routines for shared memory parallel programming in Java.