On eRI we make software available using environment modules, sometime also referred to as lmod
. This article describes how to use the module
command to find, load and purge software.
Environment Modules
Modules are a convenient way to provide access to applications on the cluster. They prepare the environment you need to run an application.
For a full list of module commands run man module or visit the lmod documentation here.
| Lists all available modules. |
| Searches available modules for [module name] |
| Shows information about [module name] |
| Loads [module name] |
| Lists currently loaded modules. |
| Purge (remove) all modules from your environment |
For example, if you want to use the R
programming language you would:
...
This will load all of the software and dependencies required to run R
version 4.3.2. To see the list of software loaded when you run the above command you can run the module list
command:
Code Block |
---|
...
ASReml/4.2.1.206 SQLite/3.42.0-GCCcore-12.3.0 (L) Apptainer/1.2.5 SWIG/3.0.8 Arrow/14.0.1-GCC-12.3.0 (L) ScaLAPACK/2.2.0-gompi-2023a-fb (L) BCL-Convert/4.2.4 Szip/2.1.1-GCCcore-12.3.0 (L) BLASTDB/2024-04 Tcl/8.6.10-GCCcore-12.3.0 BLIS/0.9.0-GCC-12.3.0 |
...
TeXLive/2022 BLIS/4.1-GCC-12.3.0-amd (D) Tk/8.6.10-GCCcore-12.3.0 Boost/1.83.0-GCC-12.3.0 UCC/1.2.0-GCCcore-12.3.0 (L) |
...
CMake/3.27.7 UCX/1.14.1-GCCcore-12.3.0 (L) CUDA/11.8.0 UDUNITS/2.2.28-GCCcore-12.3.0 (L) Canu/2.2-GCC-12.3.0 XZ/5.4.2-GCCcore-12.3.0 |
...
(L) EasyBuild/4.8.1 ZeroMQ/4.3.5-GCCcore-12.3.0 EasyBuild/4.9.2 (D) ant/1.10.9-Java-17 FFTW.MPI/3.3.10-gompi-2023a (L) binutils/2.40-GCCcore-12.3.0 (L) FFTW/3.3.10-GCC-12.3.0 (L) binutils/2.40 (D) FlexiBLAS/3.3.1-GCC-12.3.0 (L) bzip2/1.0.8-GCCcore-12.3.0 |
...
(L) |
...
FriBidi/1 |
...
.0.12-GCC-12.3.0 cURL/8.3.0-GCCcore-12.3.0 |
...
(L) GCC/12.3.0 |
...
(L) cuDNN/8.6.0.163-CUDA-11.8.0 GCCcore/12.3.0 (L) expat/2.5.0-GCCcore-12.3.0 (L) GDAL/3.6.4-gompi-2023a (L) fontconfig/2.14.2-GCCcore-12.3.0 GEOS/3.11.3-GCC-12.3.0 |
...
(L) foss/2023a (L) GLib/2.78.1-GCC-12.3.0 freetype/2.13.2-GCCcore-12.3.0 |
...
|
...
GMP/6.2.1-GCCcore-12.3.0 (L) gettext/0.21-GCCcore-12.3.0 |
...
Go/1.22.3 gompi/2023a (L) HDF5/1.14.3-gompi-2023a (L) gperf/3.1 HarfBuzz/4.4.1-GCC-12.3.0 gquery-dev/0.7.0 IGV/2.17.4 gquery-dev/0.8.1 IRkernel/1.3.2-foss-2023a-R-4.3.2 gquery-dev/0.9.0 IRkernel/1.3.2-foss-2023a-R-4.3.3 (D) gquery-dev/0.9.1 Java/17 gquery-dev/0.9.2 (D) Java/20.0.2 (L,D) gquery-test/0.8.1 Julia/1.10.1-GCC-12.3.0-VTune gquery-test/0.9.0 JupyterLab/2023.11.0-foss-2023a-3.6.3 gquery-test/0.9.1 JupyterLab/2024.05.0-foss-2023a-4.2.0 (D) gquery-test/0.9.2 (D) KEALib/1.5.2-gompi-2023a (L) gquery/0.8.1 LLVM/14.0.6-GCC-12.3.0-static gquery/0.9.0 LibTIFF/4.4.0-GCCcore-12.3.0 gquery/0.9.1 LibTIFF/4.5.1-GCCcore-12.3.0 (L,D) gquery/0.9.2 (D) Meson/0.62.1 graphite2/1.3.14 Miniconda3/23.10.0-1 json-c/0.17-GCC-12.3.0 (L) NASM/2.15.05 libKML/1.3.0.2017-GCC-12.3.0 |
...
(L) NLopt/2.7.1-GCC-12.3.0 (L) libffi/3.4.6 NanoPlot/1.43.0-foss-2023a-Python-3.11.6 libgd/2.3.3-GCCcore-12.3.0 Nextflow/24.04.2 libgeotiff/1.7.1-GCC-12.3.0-PROJ-9.3.0 (L) Ninja/1.11.1 libgit2/1.6.4-GCC-12.3.0 (L) OpenBLAS/0.3.23-GCC-12.3.0 |
...
(L) libjpeg-turbo/2.1.5.1-GCCcore-12.3.0 |
...
(L) |
...
OpenJPEG/2.5.0-GCCcore-12.3.0 (L) libpng/1.6.40-GCCcore-12.3.0 (L) OpenMPI/4.1.5-GCC-12.3.0 |
...
(L) |
...
libreadline/8.2-GCCcore-12.3.0 (L) OpenSSL/1.1 (L) libxml2/2.11.4-GCCcore-12.3.0 (L) OpenSSL/3.3.1-GCCcore-12.3.0 (D) libxslt/1.1.38-GCCcore-12.3.0 PCRE2/10.42-GCCcore-12.3.0 (L) lz4/1.9.4-GCCcore-12.3.0 (L) PROJ/9.3.0-GCC-12.3.0 |
...
(L) nanoget/1.19.3-foss-2023a-Python-3.11.6 |
...
Perl/5.38.2-GCC-12.3.0 ncurses/6.4-GCCcore-12.3.0 (L) PostgreSQL/14.12-GCC-12.3.0 netCDF/4.9.2-gompi-2023a (L) Python/3.11.6-foss-2023a |
...
nodejs/18.18.2-GCCcore-12.3.0 |
...
(L) |
...
R-Geo/4.3.2-foss-2023a nullarbor/2.0.20191013 R/4.3.2-foss-2023a |
...
(D) numactl/2. |
...
0. |
...
16-GCCcore-12.3.0 |
...
(L) R/4.3.3-foss-2023a pixman/0.42.2-GCC-12.3.0 R/4.4.0-foss-2023a snakemake/7.32.3-foss-2023a-Python-3.11.6 R/4.4.1-foss-2023a (L) snakemake/8.14.0-foss-2023a-Python-3.11.6 (D) RStudio-Server/2023.12.0-369 snappy/1.1.10-GCCcore-12.3.0 |
...
(L) RStudio-Server/2024.04.2-764 (D) yaml-cpp/0.8.0-GCC-12.3.0 |
...
|
...
Rust/1.73.0 |
...
-GCC-12.3.0 |
...
zlib/1.2.13-GCCcore-12.3.0 (L) SAMtools/0.1.19-GCCcore-12.3.0 |
...
zlib/1.2.13 (D) SOCI/4.0.3-GCC-12.3.0 |
...
|
...
zstd/1.5. |
...
5-GCCcore-12.3.0 |
...
(L) |
...
SPAdes/4. |
...
0. |
...
0-foss-2023a-Python-3.11.6 |
Working with containers
Singularity
Available as Apptainer and aliasing enabled, both apptainer --version
and singularity --version
will work. There are NeSI/Mahuika based notes on building containers HERE
Example
Code Block |
---|
# QIIME1 module purge module |
...
load |
...
Apptainer/ |
...
1.2.5
# recent Apptainer modules set APPTAINER_BIND, which typically breaks
# container builds, so unset it here
unset APPTAINER_BIND
# create a build and cache directory on scratch storage
export APPTAINER_CACHEDIR="/agr/scratch/projects/<YOURPROJECT>/$USER/apptainer_cache"
export APPTAINER_TMPDIR="/agr/scratch/projects/<YOURPROJECT>/$USER/apptainer_tmpdir"
mkdir -p $APPTAINER_CACHEDIR $APPTAINER_TMPDIR
setfacl -b $APPTAINER_TMPDIR
# pull the container
apptainer pull docker://mgrast/qiime:1.0
# execute the container
apptainer exec qiime_1.0.sif align_seqs.py -h |