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

Please note, different modules will be shown/hidden depending on the compiler that is loaded. The below examples are performed with the gcc/8.3.1 compiler loaded.

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 or ml

  • show StdEnv settings with module show StdEnv or ml 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 or ml

  • show module help info with module help NAME or ml help NAME

  • show module whatis info with module whatis NAME or ml whatis NAME

  • show available modules with module avail or ml av

  • show module settings with module show NAME or ml show NAME

  • load a module with module load NAME or ml 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             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)      libiconv/1.16
       anaconda2/2019.07     (E)      libpciaccess/0.13.5
       anaconda3/biohpc      (E)      libxml2/2.9.9
       anaconda3/2019.07     (E)      ncl/6.3.0
       anaconda3/2019.10     (E,D)    ncview/2.1.2
       anaconda3/2020.11     (E)      netlib-scalapack/2.0.2
       anaconda3/2023.03     (E)      numactl/2.0.12
       cellranger-atac/3.0.2 (E)      openblas/0.3.7
       cellranger-dna/3.0.2  (E)      openfoam/2006
       cellranger/3.0.2      (E)      vmd/1.9.4              (E)
       cmake/3.20.2                   wml/1.6.1              (E)
       cuda/10.1                      wml/1.6.2              (E)
       cuda/10.2             (D)      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
       lammps/2019.08

    --------------------------- /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 or ml -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. Resetting $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

     ...

..