Skip to content

Compiling SPRNG

SPRNG is the Scalable Parallel Random Number Generator.[1] We will compile with Intel Composer XE and Intel MKL.[2]

Configure

Environment

These modules are loaded:

1) shared 2) proteus 3) gcc/4.8.1 4) sge/univa 5) intel/composerxe/2015.1.133 6) proteus-openmpi/intel/2015/1.8.1-mlnx-ofed 7) automake/1.15 8) autoconf/2.69

Set these environment variables:

CXX=mpic++ F77=mpifort

Configure

./configure CFLAGS="-O3 -xHOST" CXXFLAGS="-O3 -xHOST" FFLAGS="-O3 -xHOST" --prefix=/mnt/HA/groups/myrsrchGrp/software --with-mpi --with-fortran > Configure.out 2>&1 &

Make

The source package seems to be missing at least one file that the Makefile refers to; also, a parallel build results in many errors. So, make and ignore errors:

make -k > Make.out 2>&1 &

And install:

make install > Make.install.out 2>&1 &

Check

cd check ./checksprng

You should get something like:

lcg: Checking Default C++ interface:

Result:  PASSED


lcg: Checking Simple C++ interface:

Result:  PASSED


lcg: Checking Default FORTRAN interface:
 Expect SPRNG WARNING: ngens <= 0.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG WARNING: Invalid parameter
 Expect SPRNG WARNING: nspawned <= 0.

 Result:  PASSED


lcg: Checking Simple FORTRAN interface:
  Expect SPRNG ERROR: packed string invalid.

 Result:  PASSED


lcg64: Checking Default C++ interface:

Result:  PASSED


lcg64: Checking Simple C++ interface:

Result:  PASSED


lfg: Checking Default C++ interface:

Result:  PASSED


lfg: Checking Simple C++ interface:

Result:  PASSED

 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG WARNING: Invalid parameter
 Expect SPRNG WARNING: nspawned <= 0.

 Result:  PASSED


lfg: Checking Simple FORTRAN interface:
  Expect SPRNG ERROR: packed string invalid.

 Result:  PASSED


mlfg: Checking Default C++ interface:

Result:  PASSED


mlfg: Checking Simple C++ interface:

Result:  PASSED


mlfg: Checking Default FORTRAN interface:
 Expect SPRNG WARNING: ngens <= 0.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG WARNING: Invalid parameter
 Expect SPRNG WARNING: nspawned <= 0.

 Result:  PASSED


mlfg: Checking Simple FORTRAN interface:
  Expect SPRNG ERROR: packed string invalid.

 Result:  PASSED

cmrg: Checking Default C++ interface:

Result:  PASSED


cmrg: Checking Simple C++ interface:

Result:  PASSED


cmrg: Checking Default FORTRAN interface:
 Expect SPRNG WARNING: ngens <= 0.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG WARNING: Invalid parameter
 Expect SPRNG WARNING: nspawned <= 0.

 Result:  PASSED


cmrg: Checking Simple FORTRAN interface:
  Expect SPRNG ERROR: packed string invalid.

 Result:  PASSED


pmlcg: Checking Default C++ interface:

Result:  PASSED


pmlcg: Checking Simple C++ interface:

Result:  PASSED


pmlcg: Checking Default FORTRAN interface:
 Expect SPRNG WARNING: ngens <= 0.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG ERROR: gennum not in range.
 Expect SPRNG WARNING: Invalid parameter
 Expect SPRNG WARNING: nspawned <= 0.

 Result:  PASSED

pmlcg: Checking Simple FORTRAN interface:
  Expect SPRNG ERROR: packed string invalid.

 Result:  PASSED

References

[1] SPRNG official website

[2] Compiling for Intel with Intel Composer XE, MKL, and Intel MPI