User Tools

Site Tools


compilenersc

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
compilenersc [2016/04/22 12:56] – [More Information] 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/