Using Modules
The user environment is controlled using the modules environment management system.
Modules may be loaded, unloaded, or swapped either on a command line or in
your $HOME/.modules9 startup file.
To generate a list of your currently loaded software modules:
module list
To get a list of currently available modules on Keeling:
module avail
To see a specific list of modules that you may be interested in, for example GNU compilers and packages:
module avail gnu
To see a list of modules that include a keyword to a package such as netcdf4:
module keyword netcdf4
To display information about a module (description, paths, environment variables) before loading it:
module show <name of module>
To load a given module for your environment:
module load <name of module>
To unload a given module from your current environment:
module unload <name of module>
To swap one module for another, for example when switching compiler versions:
module swap <old module> <new module>
To unload all loaded modules from your current environment:
module purge
Compilers
Keeling has three available compiler options:
Compiler version |
Module |
C |
C++ |
Fortran |
|---|---|---|---|---|
gcc 11.5.0 |
default |
gcc |
g++ |
gfortran |
intel-15.0 |
|
icc |
icpc |
ifort |
intel-api |
|
icx |
icpx |
ifx |
Note
intel-api uses Intel’s newer oneAPI LLVM-based compilers (icx, icpx, ifx),
which differ from the classic Intel compilers (icc, icpc, ifort) used in intel-15.0.
Code that builds with one may require changes to build with the other.
For MPI:
Compiler version |
Module |
C |
C++ |
Fortran |
|---|---|---|---|---|
gcc 11.5.0 |
|
mpicc |
mpic++ |
mpif90 |
intel-15.0 |
|
mpicc |
mpic++ |
mpif90 |
intel-api |
|
mpiicx |
mpiicpx |
mpiifx |
GPU (CUDA) Environment
The L40S module configures the GPU environment, including loading nvcc (the CUDA compiler)
and various other CUDA toolkit utilities:
module load L40S