This page describes high level usage of SLAC's implementation of environment modules.
environment modules are a way of dynamically loading arbitary programs into your unix shell environment. examples include the ability to switch between different versions of software or entire software installs.
You can use the MODULEPATH environment to control where environment modules should fine 'modulefiles' - text files that define what and how to load certain programs.
export MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles:/opt/modulefiles:/afs/slac/package/singularity/modulefiles
In the above example, we pick up these modulefiles from the two default paths under /usr and /etc, and then we have SLAC's standard modules (base libraries etc) followed by some containerised applications under /afs/slac/package/singularity/modulefiles.
You can view all available modulefiles by running:
$ module avail ------------------------------------------------------- /usr/share/Modules/modulefiles ------------------------------------------------------- dot module-git module-info modules null use.own ------------------------------------------------- /afs/slac/package/singularity/modulefiles -------------------------------------------------- amira/6.7.0 eman2/20190418 motioncor2/1.2.1 rclone/1.44 rosetta/2018.48 chimera/1.13.1 eman2/20190603 motioncor2/1.2.2 relion/2.1 rosetta/3.10 ctffind/4.1.10 emClarity/1.0.0 motioncor2/1.2.3-intpix relion/3.0 scipion/1.2.1 ctffind/4.1.13 git/2.13.0 phenix/1.14-3260 relion/3.0.2 slac-ml/20181002.0 eman2/20181015 icon-gpu/1.2.9 protomo/2.4.2 relion/3.0.4 slac-ml-devel/20181002.0 eman2/20190320 imod/4.9.10 pymol/2.1.1 relion/3.0_beta-20181121 xds/20190315 eman2/20190324 imod/4.9.11 pymol/2.2 resmap/1.95 -------------------------------------------------------------- /opt/modulefiles -------------------------------------------------------------- boost/1.69.0-openmpi-3.1.2-gcc-4.8.5 gcc/6.3.1 openmpi/3.1.3-gcc-7.3.1 boost/1.69.0-openmpi-3.1.2-gcc-7.3.1 gcc/7.3.1(default) parallel-hdf5/1.10.4-openmpi-3.1.2-gcc-4.8.5 cuda/10.0(default) intel/2019.4.227(default) parallel-hdf5/1.10.4-openmpi-3.1.2-gcc-7.3.1 cuda/9.0 intelmpi/2019.4.227(default) parallel-hdf5/1.10.4-openmpi-3.1.3-gcc-4.8.5 cuda/9.2 lsf parallel-hdf5/1.10.4-openmpi-3.1.3-gcc-7.3.1 fftw3/3.3.8-openmpi-3.1.2-gcc-4.8.5 openmpi/3.1.2-gcc-4.8.5 PrgEnv-gcc/4.8.5(default) fftw3/3.3.8-openmpi-3.1.2-gcc-7.3.1 openmpi/3.1.2-gcc-7.3.1 PrgEnv-gcc/7.3.1 gcc/4.8.5 openmpi/3.1.3-gcc-4.8.5 python/anaconda3(default)
Here, you will see the modulesfiles orgranised by their top level directory. the typical format is the name of the application, slash, version of application.
you can then load the module with
module load slac-ml/20181002.0
at which point, the various binaries associated with that application should now be available in your path.