Table of Contents
Compiling Nimrod at NERSC
Tips for getting nimrod to compile at nersc. Compile on your login node, test and run on compute nodes (see: Running Jobs at NERSC)
Modules
Software that Nimrod needs can easily be used by loading modules. Typically needed: acml, parmetis, superlu_dist
$ module load superlu_dist
$ module load parmetis
$ module load acml
http://www.nersc.gov/users/software/nersc-user-environment/modules/
Nersc doesn't provide these as individual modules, use
$ module swap PrgEnv-intel/6.0.3 PrgEnv-gnu $ module load cray-tpsl gsl
and link superlu, metis, appropriately.
Make.inc
Make.inc contains machine specific definitions for compiling Nimrod. Examples are in make_includes/ . Look at any nimrod in ~/nimrodCompiled for examples of make.inc used to compile at NERSC. Go through your make.inc file and make sure everything looks sane before compiling. Default compilers on hopper are PGI.
F90= ftn CC = cc
Environment variables can be used for various math libs:
SLUD_LIB = $(NIMHOME)/externals/lib$(SLU_LINK).a $(SUPERLU_DIST) $(PARMETIS)
Notes for Specific Nimrod Versions
Cone
Make sure to load GSL module. Switch to gnu compilers (gfortran). Use local_linux.f for local.f
$ module load acml parmetis superlu_dist superlu gsl $ module swap PrgEnv-pgi PrgEnv-gnu $ rm local.f && ln -s local_linux.f local.f
NIMWSI-bootcamp / NIMWSI-Edison / NIMWSI-cori
Switch to gnu compilers (gfortran). Compile superlu, superlu-dist, metis manually and link the SOFTWARE_PATH in make.inc Compile nimsetvn and nimset-mod as well
$ module swap PrgEnv-pgi PrgEnv-gnu $ make $ cd nimsetvn && make && cd .. $ cd nimset-mod && make && cd ..