Using modules
To use software modules, the user just need to use the module load or module add commands to load the required module. When a module is loaded, all required dependencies will also be loaded, making the software ready for the user.
Vision uses a hierarchical module naming scheme (hmns) in which modules availability follows the software hierarchy Core/Compiler/MPI. Core refers to the basic core modules that have to be loaded in order to have access to next levels of software compiled against a specific compiler and a MPI API.
After logging into Vision, the user should execute the command module av (av for available) to list the available core modules:
$ module av
------------------------ /opt/software/modules/all/Core ------------------------
Anaconda3/2021.05 binutils/2.36.1 (D)
Bison/3.8.2 cuDNN/8.2.1.32-CUDA-11.3.1
CUDA/11.3.1 flex/2.6.4
GCC/10.3.0 foss/2021a
GCCcore/10.2.0 gettext/0.21
GCCcore/10.3.0 (D) gompi/2021a
Java/11.0.2 (11) ncurses/6.2
M4/1.4.19 pkg-config/0.29.2
OpenSSL/1.1 zlib/1.2.11
binutils/2.35
Where:
Aliases: Aliases exist: foo/1.2.3 (1.2) means that "module load foo/1.2" will load foo/1.2.3
D: Default Module
In the available modules, you can find the toolchains foss/2021a and gompi/2021a, which you can load to access other modules which are built againts each toolchain, e.g.: module load foss/2021a. After loading the toolchain, you can view the associated modules using running again the comman module av:
$ module load foss/2021a
$ module av
----------- /opt/software/modules/all/MPI/GCC/10.3.0/OpenMPI/4.1.1 -----------
FFTW/3.3.9 (L) h5py/3.2.1
HDF5/1.10.7 magma/2.6.1-CUDA-11.3.1
ScaLAPACK/2.1.0-fb (L) matplotlib/3.4.2
SciPy-bundle/2021.05 scikit-learn/0.24.2
TensorFlow/2.5.3-CUDA-11.3.1 tensorboard/2.8.0
TensorFlow/2.6.0-CUDA-11.3.1 (D)
--------------- /opt/software/modules/all/Compiler/GCC/10.3.0 ----------------
FlexiBLAS/3.0.4 (L) OpenBLAS/0.3.15 (L) OpenMPI/4.1.1 (L)
------------- /opt/software/modules/all/Compiler/GCCcore/10.3.0 --------------
Autoconf/2.71 cppy/1.1.0
Automake/1.16.3 double-conversion/3.1.5
Autotools/20210128 expat/2.2.9
Bazel/3.7.2 expecttest/0.1.3
Bison/3.7.6 flatbuffers-python/2.0
Brotli/1.0.9 flatbuffers/2.0.0
CMake/3.20.1 flex/2.6.4 (D)
DB/18.1.40 fontconfig/2.13.93
Eigen/3.3.9 freetype/2.10.4
FFmpeg/4.3.2 gettext/0.21 (D)
FriBidi/1.0.10 giflib/5.2.1
GDRCopy/2.2 git/2.32.0-nodocs
GMP/6.2.1 gperf/3.1
ICU/69.1 groff/1.22.4
JsonCpp/1.9.4 gzip/1.10
LAME/3.100 help2man/1.48.3
LMDB/0.9.28 hwloc/2.4.1 (L)
LibTIFF/4.2.0 hypothesis/6.13.1
M4/1.4.18 intltool/0.51.0
MPFR/4.1.0 jbigkit/2.1
Meson/0.58.0 libarchive/3.5.1
NASM/2.15.05 libevent/2.1.12 (L)
NCCL/2.10.3-CUDA-11.3.1 libfabric/1.12.1 (L)
Ninja/1.10.2 libffi/3.3
PCRE/8.44 libjpeg-turbo/2.0.6
PMIx/3.2.3 (L) libpciaccess/0.16 (L)
Perl/5.32.1-minimal libpng/1.6.37
Perl/5.32.1 (D) libreadline/8.1
Pillow/8.2.0 libtool/2.4.6
PyYAML/5.4.1 libxml2/2.9.10 (L)
Python/2.7.18-bare libyaml/0.2.5
Python/3.9.5-bare lz4/1.9.3
Python/3.9.5 (D) makeinfo/6.7-minimal
Qhull/2020.2 ncurses/6.2 (D)
Rust/1.52.1 nsync/1.24.0
SQLite/3.35.4 numactl/2.0.14 (L)
Szip/2.1.1 pkg-config/0.29.2 (D)
Tcl/8.6.11 pkgconfig/1.5.4-python
Tk/8.6.11 protobuf-python/3.17.3
Tkinter/3.9.5 protobuf/3.17.3
UCX-CUDA/1.10.0-CUDA-11.3.1 pybind11/2.6.2
UCX/1.10.0 (L) snappy/1.1.8
UnZip/6.0 typing-extensions/3.10.0.0
X11/20210518 util-linux/2.36
XZ/5.2.5 (L) x264/20210414
Yasm/1.3.0 x265/3.5
Zip/3.0 xorg-macros/1.19.3
binutils/2.36.1 (L,D) zlib/1.2.11 (L,D)
bzip2/1.0.8 zstd/1.4.9
cURL/7.76.0
----------------------- /opt/software/modules/all/Core -----------------------
Anaconda3/2021.05 binutils/2.36.1
Bison/3.8.2 (D) cuDNN/8.2.1.32-CUDA-11.3.1
CUDA/11.3.1 flex/2.6.4
GCC/10.3.0 (L) foss/2021a (L)
GCCcore/10.2.0 gettext/0.21
GCCcore/10.3.0 (L,D) gompi/2021a
Java/11.0.2 (11) ncurses/6.2
M4/1.4.19 (D) pkg-config/0.29.2
OpenSSL/1.1 (L) zlib/1.2.11
binutils/2.35
Where:
L: Module is loaded
Aliases: Aliases exist: foo/1.2.3 (1.2) means that "module load foo/1.2" will load foo/1.2.3
D: Default Module
After loading the desired toolchain, the user can load the desired moduled using the module load command. For example, to load TensorFlow, the user can run the following command:
$ module load TensorFlow
To list the modules that are loaded, the user should use the module list command:
$ module list
Currently Loaded Modules:
1) GCCcore/10.3.0 29) Tcl/8.6.11
2) zlib/1.2.11 30) SQLite/3.35.4
3) binutils/2.36.1 31) GMP/6.2.1
4) GCC/10.3.0 32) libffi/3.3
5) numactl/2.0.14 33) Python/3.9.5
6) XZ/5.2.5 34) pybind11/2.6.2
7) libxml2/2.9.10 35) SciPy-bundle/2021.05
8) libpciaccess/0.16 36) Szip/2.1.1
9) hwloc/2.4.1 37) HDF5/1.10.7
10) OpenSSL/1.1 38) h5py/3.2.1
11) libevent/2.1.12 39) cURL/7.76.0
12) UCX/1.10.0 40) double-conversion/3.1.5
13) libfabric/1.12.1 41) flatbuffers/2.0.0
14) PMIx/3.2.3 42) giflib/5.2.1
15) OpenMPI/4.1.1 43) ICU/69.1
16) OpenBLAS/0.3.15 44) JsonCpp/1.9.4
17) FlexiBLAS/3.0.4 45) NASM/2.15.05
18) FFTW/3.3.9 46) libjpeg-turbo/2.0.6
19) ScaLAPACK/2.1.0-fb 47) LMDB/0.9.28
20) foss/2021a 48) nsync/1.24.0
21) CUDA/11.3.1 49) protobuf/3.17.3
22) cuDNN/8.2.1.32-CUDA-11.3.1 50) protobuf-python/3.17.3
23) GDRCopy/2.2 51) flatbuffers-python/2.0
24) UCX-CUDA/1.10.0-CUDA-11.3.1 52) typing-extensions/3.10.0.0
25) NCCL/2.10.3-CUDA-11.3.1 53) libpng/1.6.37
26) bzip2/1.0.8 54) snappy/1.1.8
27) ncurses/6.2 55) TensorFlow/2.6.0-CUDA-11.3.1
28) libreadline/8.1
If the user wants to “unload” the loaded modules, he can use the command module purge:
$ module purge
$ module list
No modules loaded