User Tools

Site Tools


compilenersc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
compilenersc [2014/09/26 14:47] – created wsicompilenersc [2022/07/21 06:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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
  
 +<del>  $ module load superlu_dist
 +  $ module load parmetis
 +  $ module load acml
 +  
 +  
 +http://www.nersc.gov/users/software/nersc-user-environment/modules/</del>
 +
 +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/