NAS Parallel Benchmarks are some of the most common used set of benchmarks for HPC systems. Description and download can be found here.
One of the problems I came across when trying to compile some of the Fortran codes with gfortran was the following:
randi8.f: In function `randlc': randi8.f:23: data i246m1/X'00003FFFFFFFFFFF'/ Integer at (^) too large
This is due to the size of the random number that is tried to generated and the compiler doesn’t really like. To get it working you can alter the configuration file of the benchmarks and set
RAND = randi8_safe
from
RAND = randi8
randi8:
randi8: 1. Uses integer*8 arithmetic. Compiler must support integer*8 2. Uses the Fortran 90 IAND intrinsic. Compiler must support
randi8_safe:
randi8_safe 1. Uses integer*8 arithmetic 2. Uses the Fortran 90 IBITS intrinsic. 3. Does not make any assumptions about overflow. Should always work correctly if compiler supports integer*8 and IBITS.
To compile effectively the MPI code, you’ll need to alter the configuration file and set the right compilers: ‘mpicc’ for C and ‘f77’ for Fortran. Along with that, you might need to define the mpi, mpl and pthread libraries in the *MPI_LIB entries. For instance: