NAS Parallel Benchmarks tips

NAS Parallel Benchmarks tips

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

你可能感兴趣的:(NAS Parallel Benchmarks tips)