Triton Software Modules¶
Triton software versions (and dependencies) are deployed through Lmod, an upgraded Environment Modules suite.
https://lmod.readthedocs.io/en/latest/010_user.html
Module Commands¶
Shortcut commands are also available :
Command | Shortcut | Description |
---|---|---|
module list | ml | list currently loaded modules |
module avail | ml av | list available modules, based on currently loaded hierarchies (compilers, libraries, etc.) |
module avail pkgName1 | ml av pkgName1 | search available modules, based on currently loaded hierarchies |
module is-avail pkgName1 | ml is-avail pkgName1 | check if module(s) can be loaded, based on currently loaded hierarchies |
module spider | ml spider | list all modules |
module spider pkgName1 | ml spider pkgName1 | search all modules |
module keyword word1 | ml keyword word1 | search module help and whatis for word(s) |
module spider pkgName1/Version | ml spider pkgName1/Version | show how to load a specific module |
module load pkgName1 | ml pkgName1 | load module(s) by name (default version) |
module load pkgName1/Version | ml pkgName1/Version | load module(s) by name and version |
module unload pkgName1 | ml -pkgName1 | unload module(s) by name |
module reset | ml reset | reset to system defaults |
module restore | ml restore | reset to user defaults, if they exist |
module help pkgName1 | ml help pkgName1 | show module help info |
module whatis pkgName1 | ml whatis pkgName1 | show module version info |
module show pkgName1 | ml show pkgName1 | show module environment changes |
Triton Standard Environment¶
The StdEnv on Triton contains the default configurations for the cluster.
- show loaded modules with
module list
orml
- show StdEnv settings with
module show StdEnv
orml show StdEnv
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/8.3.1 2) StdEnv
[username@login1 ~]$ ml show StdEnv
----------------------------------------------------------------------------
/share/mfiles/Core/StdEnv.lua:
----------------------------------------------------------------------------
help([[ Lua Help for the Standard Environment module configurations on Triton
]])
whatis("Description: loads standard environment modules")
load("gcc/8.3.1")
Triton available modules¶
Available modules at login include the compilers under “Compilers”, compiler-independent modules under “Core”, and modules dependent on the currently loaded compiler.
*Note :* some modulefiles are marked (E) for Experimental. As with all software, please report any issues to hpc@ccs.miami.edu.
- show loaded modules with
module list
orml
- show module help info with
module help NAME
orml help NAME
- show module whatis info with
module whatis NAME
orml whatis NAME
- show available modules with
module avail
orml av
- show module settings with
module show NAME
orml show NAME
- load a module with
module load NAME
orml NAME
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/8.3.1 2) StdEnv
[username@login1 ~]$ ml help gcc
--------------------- Module Specific Help for "gcc/8.3.1" ---------------------
The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Ada, and Go, as well as libraries for these languages.
[username@login1 ~]$ ml whatis gcc
gcc/8.3.1 : Name : gcc
gcc/8.3.1 : Version : 8.3.1
gcc/8.3.1 : Target : power9le
[username@login1 ~]$ ml av
----------------------- /share/mfiles/Compiler/gcc/8.3.1 -----------------------
R/3.6.3 libxsmm/1.16.1 (E)
R/4.0.3 ncview/2.1.8 (D)
R/4.0.5 (D) netcdf-c/4.8.0
R/4.1.0 netcdf-fortran/4.5.3
cmake/3.19.2 openbabel/3.0.0
cmake/3.20.2 (D) openblas/0.3.13
ffmpeg/4.3.2 openblas/0.3.14 (D)
fftw/3.3.9 (D) openfoam/2012 (D)
gdal/2.4.4 openmpi/4.0.5
gdal/3.3.0 (D) openssl/1.1.1k
gromacs/2021.1 pandoc/2.7.3
gsl/2.6 parallel-netcdf/1.12.2
hdf5/1.10.7 perl/5.32.1
jags/4.3.0 plumed/2.8.0
lammps/20200721 python/3.8.10
lammps/20210310 (D) smpi/10.02
libgit2/1.1.0 wrf/4.2
libicov/1.16
------------------------ /usr/share/Modules/modulefiles ------------------------
dot module-info modules null use.own
------------------------------ /share/mfiles/Core ------------------------------
StdEnv (L) lammps/2019.08
anaconda2/2019.07 (E) libiconv/1.16
anaconda3/biohpc (E) libpciaccess/0.13.5
anaconda3/2019.07 (E) libxml2/2.9.9
anaconda3/2019.10 (E,D) ncl/6.3.0
anaconda3/2020.11 (E) ncview/2.1.2
cellranger-atac/3.0.2 (E) netlib-scalapack/2.0.2
cellranger-dna/3.0.2 (E) numactl/2.0.12
cellranger/3.0.2 (E) openblas/0.3.7
cmake/3.20.2 openfoam/2006
cp2k/6.1 vmd/1.9.4 (E)
cuda/10.1 wml/1.6.1 (E)
cuda/10.2 (D) wml/1.6.2 (E)
fftw/3.3.8 wml/1.7.0 (E,D)
gaussian/16 wml_anaconda3/2019.10 (E)
java/8.0 (D) xz/5.2.4
java/8.0-6.5 zlib/1.2.11
--------------------------- /share/mfiles/Compilers ----------------------------
at/12.0 gcc/7.4.0 gcc/8.4.0
gcc/4.8.5 (D) gcc/8.3.1 (L) xl/16.1.1.4 (E)
Where:
D: Default Module
E: Experimental
L: Module is loaded
Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching
any of the "keys".
..
[username@login1 ~]$ ml show gcc
----------------------------------------------------------------------------
/share/mfiles/Compilers/gcc/8.3.1.lua:
----------------------------------------------------------------------------
whatis("Name : gcc")
whatis("Version : 8.3.1")
whatis("Target : power9le")
help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Ada, and Go, as well as libraries for these languages.]])
prepend_path("MODULEPATH","/share/mfiles/Compiler/gcc/8.3.1")
family("compiler")
prepend_path("INFOPATH","/opt/rh/devtoolset-8/root/usr/share/info")
prepend_path("LD_LIBRARY_PATH","/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:/opt/rh/devtoolset- 8/root/usr/lib64/dyninst:/opt/rh/devtoolset-8/root/usr/lib/dyninst:/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib")
prepend_path("MANPATH","/opt/rh/devtoolset-8/root/usr/share/man")
prepend_path("PATH","/opt/rh/devtoolset-8/root/usr/bin")
prepend_path("PKG_CONFIG_PATH","/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig")
prepend_path("PYTHONPATH","/opt/rh/devtoolset-8/root/usr/lib64/python2.7/site-packages:/opt/rh/devtoolset-8/root/usr/lib/python2.7/site-packages")
setenv("PCP_DIR","/opt/rh/devtoolset-8/root")
setenv("PERL5LIB","/opt/rh/devtoolset-8/root//usr/lib64/perl5/vendor_perl:/opt/rh/devtoolset-8/root/usr/lib/perl5:/opt/rh/devtoolset-8/root//usr/share/perl5/vendor_perl")
[username@login1 ~]$ ml smpi
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/8.3.1 2) StdEnv 3) smpi/10.02
Triton module hierarchies¶
Switch to a different compiler with the module swap
command. Any dependent modules should also swap, if both versions exist. The SMPI module has both a gcc version, and an at/12.0 version.
- show currently loaded modules with
ml
- show smpi module help with
ml help smpi
- switch from gcc to at with
ml swap gcc at
orml -gcc at
- note the Lmod “reload” message for the smpi module
- (confirm smpi is loaded with
ml
)
- show smpi module help with
ml help smpi
(a different smpi module) - reset to Triton defaults with
ml reset
[username@login1 ~]$ ml
Currently Loaded Modules:
1) StdEnv 2) gcc/8.3.1 3) smpi/10.02
[username@login1 ~]$ ml help smpi
-------------------- Module Specific Help for "smpi/10.02" ---------------------
Lua Help file for IBM smpi 10.02 with devtoolset-8 GCC suite
gcc version 8.3.1
sets OMPI_CC, OMPI_FC, and OMPI_CXX to AT gcc suite
[username@login1 ~]$ ml -gcc at
Due to MODULEPATH changes, the following have been reloaded:
1) smpi/10.02
[username@login1 ~]$ ml
Currently Loaded Modules:
1) at/12.0 2) StdEnv 3) smpi/10.02
[username@login1 ~]$ ml help smpi
-------------------- Module Specific Help for "smpi/10.02" ---------------------
Lua Help file for IBM smpi 10.02 with Triton IBM AT 12.0 gcc suite
gcc version 8.3.1
sets OMPI_CC, OMPI_FC, and OMPI_CXX to AT gcc suite
[username@login1 ~]$ ml reset
Resetting modules to system default. Reseting $MODULEPATH back to system default. All extra directories will be removed from $MODULEPATH.
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/8.3.1 2) StdEnv
More hierarchies and dependencies¶
Dependency modules can be loaded in the same command, without waiting for them to appear in the output for module list (ml av
).
Example : cdo, nco, and netcdff depend on “netcdfc”. Netcdfc depends on “hdf5”. They can be loaded in sequence, starting with the first dependency, “hdf5”.
[username@login1 ~]$ ml gcc/4.8.5 hdf5 netcdfc netcdff cdo nco
The following have been reloaded with a version change:
1) gcc/8.3.1 => gcc/4.8.5
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/4.8.5 4) netcdfc/4.7.4 (E) 7) cdo/1.9.8 (E)
2) StdEnv 5) netcdff/4.5.3 (E)
3) hdf5/1.8.16 (E) 6) nco/4.9.3 (E)
To view dependent modules in ml av
, first load their prerequisites.
“Behind the scenes”
After an hdf5 module is loaded, any available netcdfc modules will show in ml av
output :
- load the default hdf5 module with
ml hdf5
- show loaded modules with
ml
- show available modules with
ml av
: netcdfc module now available to load - load the default netcdfc module with
ml netcdfc
- show newly available modules with
ml av
: netcdff, nco, and cdo now available to load
[username@login1 ~]$ ml hdf5
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/4.8.5 2) StdEnv 3) hdf5/1.8.16 (E)
[username@login1 ~]$ ml av
------------------- /share/mfiles/Library/gcc485/hdf5/1.8.16 -------------------
netcdfc/4.7.4 (E)
----------------------- /share/mfiles/Compiler/gcc/4.8.5 -----------------------
hdf5/1.8.16 (E,L) myGCCdependentProgram/1.0 (S) openmpi/3.1.4
hwloc/1.11.11 openBLAS/0.3.7 smpi/10.02
...
..
Once both hdf5 and netcdfc are loaded, ml av
shows the next set of dependent modules :
[username@login1 ~]$ ml netcdfc
[username@login1 ~]$ ml
Currently Loaded Modules:
1) gcc/4.8.5 2) StdEnv 3) hdf5/1.8.16 (E) 4) netcdfc/4.7.4 (E)
[username@login1 ~]$ ml av
------------ /share/mfiles/Library/gcc485/netcdfc/4.7.4/hdf5/1.8.16 ------------
cdo/1.9.8 (E) nco/4.9.3 (E) netcdff/4.5.3 (E)
------------------- /share/mfiles/Library/gcc485/hdf5/1.8.16 -------------------
netcdfc/4.7.4 (E,L)
----------------------- /share/mfiles/Compiler/gcc/4.8.5 -----------------------
hdf5/1.8.16 (E,L) myGCCdependentProgram/1.0 (S) openmpi/3.1.4
hwloc/1.11.11 openBLAS/0.3.7 smpi/10.02
...
..