====== Compiling Nimrod at NERSC ====== Tips for getting nimrod to compile at nersc. Compile on your login node, test and run on compute nodes (see: [[runnersc|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 .. ===== More Information ===== http://www.nersc.gov/users/computational-systems/cori/programming/compiling-codes-on-cori/