GLiCID
1. Software modules
HPC cluster systems typically have a large number of software packages installed. On GLiCID, we use the modules package to manage the user environment for the installed packages. Software modules simplify the utilization of pre-installed software packages and libraries by configuring the necessary environment variables. This makes it simple to use different packages or switch between versions of the same package without conflicts.
1.1. To see all available modules, run:
$ module avail ---------------------------------------- /usr/share/Modules/modulefiles/applications ---------------------------------------- aspect/2.6.0 fidelity/23.20 lammps/15Jun2023 openmolcas/2024 pari/gp2c-0.0.13 turbomole/7.3 aspect/2.6.0_znver3 finemarine/10.1 lammps/29Aug2024 openmolcas/current sharc/3.0 turbomole/7.5 castem/2021 finemarine/12.1 lammps/29Aug2024_gpu orca/5.3 sharc/current turbomole/7.41 castem/2023 gaussian/g16 mrcc/2023 orca/5.4 specfem2d/8.1.0 vasp/6.4.3 cfour/2.1 gaussian/g16reva03 neper/4.10.1 orca/6.0 specfem3d/4.1.1 visit/3.3.3 code-aster/14.6.0 gaussian/g16revc02 openfast/3.5.3 orca/6.1 telemac/v8p2r1 dftb/22.1 gcm/r3393 openfoam/11-openmpi paraview/5.11.2-mpi telemac/v8p4r0 dftb/23.1 hyperworks/2022.2 openfoam/v2312-openmpi pari/2.15.5 telemac/v8p5r0 ----------------------------------------- /usr/share/Modules/modulefiles/libraries ------------------------------------------ aocl-blis/4.0 hdf5/1.14.1-2_intel intel/mkl/2023.1.0 pnetcdf/1.12.3_itl blas/3.12.0_gnu hdf5/1.14.1-2_intel_intelmpi intel/mkl/latest rdma/46.0_gnu boost/1.82.0_gnu intel/ccl/2021.9.0 intel/mkl32/2023.1.0 scalapack/2.2.0_gnu boost/1.86.0_gnu intel/ccl/latest intel/mkl32/latest scotch/7.0.6 cuda/12.2.0_535.54.03 intel/dnnl-cpu-gomp/2023.1.0 intel/tbb/2021.9.0 suitesparse/7.8.2 eigen/3.4.0 intel/dnnl-cpu-gomp/latest intel/tbb/latest szip/2.1_gnu fftw/3.3.10_gnu_serial intel/dnnl-cpu-iomp/2023.1.0 intel/tbb32/2021.9.0 ucx/1.14.1_gnu fftw/3.3.10_intel_serial intel/dnnl-cpu-iomp/latest intel/tbb32/latest ucx/1.17.0_gnu fftw/3.3.10_intel_serial_sp intel/dnnl-cpu-tbb/2023.1.0 lapack/3.12.0_gnu zlib/1.2.8_gnu fftw/mpi/3.3.10_gnu_13.1.0_openmpi intel/dnnl-cpu-tbb/latest libnsl/2.0.1 fftw/mpi/3.3.10_intel_2023.1.0_intelmpi intel/dnnl/2023.1.0 libtool/2.4.6_gnu fftw/omp/3.3.10_gnu_omp intel/dnnl/latest metis/4.0.3 fftw/omp/3.3.10_intel_omp intel/dpl/2022.1.0 metis/5.1.0 gmp/6.2.1 intel/dpl/latest mpfr/4.2.1_gnu :...skipping... ---------------------------------------- /usr/share/Modules/modulefiles/applications ---------------------------------------- aspect/2.6.0 fidelity/23.20 lammps/15Jun2023 openmolcas/2024 pari/gp2c-0.0.13 turbomole/7.3 aspect/2.6.0_znver3 finemarine/10.1 lammps/29Aug2024 openmolcas/current sharc/3.0 turbomole/7.5 castem/2021 finemarine/12.1 lammps/29Aug2024_gpu orca/5.3 sharc/current turbomole/7.41 castem/2023 gaussian/g16 mrcc/2023 orca/5.4 specfem2d/8.1.0 vasp/6.4.3 cfour/2.1 gaussian/g16reva03 neper/4.10.1 orca/6.0 specfem3d/4.1.1 visit/3.3.3 code-aster/14.6.0 gaussian/g16revc02 openfast/3.5.3 orca/6.1 telemac/v8p2r1 dftb/22.1 gcm/r3393 openfoam/11-openmpi paraview/5.11.2-mpi telemac/v8p4r0 dftb/23.1 hyperworks/2022.2 openfoam/v2312-openmpi pari/2.15.5 telemac/v8p5r0 ----------------------------------------- /usr/share/Modules/modulefiles/libraries ------------------------------------------ aocl-blis/4.0 hdf5/1.14.1-2_intel intel/mkl/2023.1.0 pnetcdf/1.12.3_itl blas/3.12.0_gnu hdf5/1.14.1-2_intel_intelmpi intel/mkl/latest rdma/46.0_gnu boost/1.82.0_gnu intel/ccl/2021.9.0 intel/mkl32/2023.1.0 scalapack/2.2.0_gnu boost/1.86.0_gnu intel/ccl/latest intel/mkl32/latest scotch/7.0.6 cuda/12.2.0_535.54.03 intel/dnnl-cpu-gomp/2023.1.0 intel/tbb/2021.9.0 suitesparse/7.8.2 eigen/3.4.0 intel/dnnl-cpu-gomp/latest intel/tbb/latest szip/2.1_gnu fftw/3.3.10_gnu_serial intel/dnnl-cpu-iomp/2023.1.0 intel/tbb32/2021.9.0 ucx/1.14.1_gnu fftw/3.3.10_intel_serial intel/dnnl-cpu-iomp/latest intel/tbb32/latest ucx/1.17.0_gnu fftw/3.3.10_intel_serial_sp intel/dnnl-cpu-tbb/2023.1.0 lapack/3.12.0_gnu zlib/1.2.8_gnu fftw/mpi/3.3.10_gnu_13.1.0_openmpi intel/dnnl-cpu-tbb/latest libnsl/2.0.1 fftw/mpi/3.3.10_intel_2023.1.0_intelmpi intel/dnnl/2023.1.0 libtool/2.4.6_gnu fftw/omp/3.3.10_gnu_omp intel/dnnl/latest metis/4.0.3 fftw/omp/3.3.10_intel_omp intel/dpl/2022.1.0 metis/5.1.0 gmp/6.2.1 intel/dpl/latest mpfr/4.2.1_gnu gmsh/4.11.1_gnu intel/intel_ipp_ia32/2021.8.0 mumps/5.4.1 gmt/4.5.15_gnu intel/intel_ipp_ia32/latest nco/5.2.8_gnu gmt/5.3.1_gnu intel/intel_ipp_intel64/2021.8.0 ncview/2.1.10_gnu graphviz/12.2.1 intel/intel_ipp_intel64/latest netcdf/c-4.9.2_gnu gsl/2.8_gnu intel/intel_ippcp_ia32/2021.7.0 netcdf/f-4.6.1_gnu hdf5/1.10.2_gnu intel/intel_ippcp_ia32/latest openssl/3.0.9_gnu hdf5/1.14.1-2_gnu intel/intel_ippcp_intel64/2021.7.0 petsc/3.21.5_gnu hdf5/1.14.1-2_gnu_openmpi intel/intel_ippcp_intel64/latest pnetcdf/1.12.3_gnu ----------------------------------------- /usr/share/Modules/modulefiles/compilers ------------------------------------------ amd/4.0.0 intel/compiler-rt/2023.1.0 intel/compiler32/2023.1.0 julia/1.9.4 R-project/4.3.1_gnu_mkl cmake/3.26.4 intel/compiler-rt/latest intel/compiler32/latest llvm/18.1.1 rust/1.77.2 gcc/12.4.0 intel/compiler-rt32/2023.1.0 intel/icc/2023.1.0 nvhpc/22.7 gcc/13.1.0 intel/compiler-rt32/latest intel/icc/latest nvhpc/23.9 gcc/14.1.0 intel/compiler/2023.1.0 intel/icc32/2023.1.0 nvhpc/24.5 gcc/14.2.0 intel/compiler/latest intel/icc32/latest python/3.11.4 ------------------------------------------- /usr/share/Modules/modulefiles/tools -------------------------------------------- apptainer/1.1.6 intel/clck/2021.7.3 intel/dpct/2023.1.0 intel/oclfpga/2023.1.0 ompp/0.8.5_gnu curl/8.9.1 intel/clck/latest intel/dpct/latest intel/oclfpga/latest ompp/0.8.5_itl expat/2.6.3 intel/dal/2023.1.0 intel/init_opencl/2023.1.0 intel/vtune/2023.1.0 texinfo/7.1 git/2.44.0 intel/dal/latest intel/init_opencl/latest intel/vtune/latest valgrind/3.21.0 guix/latest intel/debugger/2023.1.0 intel/inspector/2023.1.0 libffi/3.4.6 guix/v1.1 intel/debugger/latest intel/inspector/latest nano/8.3 intel/advisor/2023.1.0 intel/dev-utilities/2021.9.0 intel/itac/2021.9.0 numdiff/5.9.0 intel/advisor/latest intel/dev-utilities/latest intel/itac/latest nvtop/3.1.0 ------------------------------------------ /usr/share/Modules/modulefiles/parallel ------------------------------------------ intel/mpi/2021.9.0 openmpi/ucx/4.1.8_gcc_13.1.0_ucx_1.17.0_rdma_46.0_internal intel/mpi/2021.11 openmpi/ucx/4.1.8_gcc_13.1.0_ucx_1.17.0_rdma_46.0_pmix4 intel/mpi/latest openmpi/ucx/5.0.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0 openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0 openmpi/ucx/5.0.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0-pmix4 openmpi/ucx/4.1.6_gcc_8.5.0_ucx_1.14.1_rdma_46.0-pmi2 pmix/3.2.2 openmpi/ucx/4.1.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0-pmix3 pmix/4.2.9 openmpi/ucx/4.1.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0-pmix4 pmix/4.2.9_gm ------------------------ /LAB-DATA/GLiCID/projects/modes/blondel-a@univ-nantes.fr/modulefiles/modes ------------------------- cfour/2.1/omp_nautilus orca/5.3/omp_nautilus psi4/1.8/omp_nautilus turbomole/7.4/omp_nautilus cfour/2.1SSD/omp_nautilus orca/5.4/omp_nautilus psi4/current/omp_nautilus turbomole/7.5/mpi_nautilus cfour/current/omp_nautilus orca/6.0/mpi_nautilus qchem/6.2/omp_nautilus turbomole/7.5/omp_nautilus modes_tools/2.0 orca/6.0/omp_nautilus qchem/current/omp_nautilus turbomole/7.8/mpi_nautilus mrcc/2023/omp_nautilus orca/6.1/mpi_nautilus turbomole/7.3/mpi_nautilus turbomole/7.8/omp_nautilus mrcc/2023SSD/omp_nautilus orca/6.1/omp_nautilus turbomole/7.3/omp_nautilus turbomole/current/mpi_nautilus mrcc/current/omp_nautilus orca/current/omp_nautilus turbomole/7.4/mpi_nautilus turbomole/current/omp_nautilus
This list is not automatically updated so …
1.3. To load a module, use:
module load <module_name>
For example, to load Apptainer, run:
module load Apptainer
1.4. To check the list of loaded modules, run:
module list
For example
$ module list No Modulefiles Currently Loaded. $ module load gcc/13.1.0 openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0 $ module list Currently Loaded Modulefiles: 1) gcc/13.1.0 2) rdma/46.0_gnu 3) ucx/1.14.1_gnu 4) openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0
Some modules may be loaded by others because of dependences
1.6. To switch between two versions of the same module, run:
module switch <old_module> <new_module>
For example
$ module list No Modulefiles Currently Loaded. $ module load nvhpc/22.7 $ module list Currently Loaded Modulefiles: 1) nvhpc/22.7 $ module switch nvhpc/22.7 nvhpc/23.9 $ module list Currently Loaded Modulefiles: 1) nvhpc/23.9
1.8. Introduction
On a computing system, you have software, tools, librairies that come with it at specific version numbers. Sometimes, for your own applications, you have dependencies that need different version number, and you can’t simply replace the previous ones by the newest ones. You have to deal with different versions numbers of the same files on the same machine.
1.9. Module command
The module command lets you manipulate your environnement, especially your environment variables (PATH, LD_LIBRARY_PATH, etc.) by adding new paths to search for files. So you first need to install your needed dependencies somewhere (/usr/local, /opt/software, etc.) and next with the help of a small configuration file, you can’t get access to the other version. The initialization of the module environment and making available the modules are managed by the administrators.
Some examples are given below, and versions displayed may be outdated, so look at the output of the module
command directly on the clusters !
The module command works with switches and some switches have sub-commands. These switches are frequently used ;
module avail |
List the available modules. Note that if there are multiple versions of a single package that one will be denoted as (default). If you load the module without a version number you will get this default version. |
module list |
List all the currently loaded modules. |
module load MODULE |
Load the named module. |
module unload MODULE |
Unload the named module, going back to the previous state. |
module switch OLD-MODULE NEW_MODULE |
replacing a module by an other one. |
module purge |
get to the OS defaults |
module help |
Get general help information about modules. |
module help MODULE |
Get help information about the named module. |
module show MODULE |
Show details about the module, including the changes that loading the module will make to your environment. |
module whatis |
List all the available modules along with a short description. |
1.10. Some comments
The module av
command displays all available modules that can be loaded. Applications and corresponding modules are added regularly by the administrators, at the request of users, so take a look when you’re looking for something.
for special cases, for example python, one version is installed and enhanced with packages. If you need special versions numbers of packages, or incompatible versions with the existing ones, the best solution for you is to work with guix. |
The module load <MODULE>
loads the corresponding MODULE and some variables (like PATH, etc.) of your environment are completed. So you gain access to other versions or new applications.
The module unload MODULE
lets you come back to the previous state regarding what was added, even if other modules are still currently loaded or, in between.
1.11. Shortcuts
Some frequently used switches have short versions :
switch li
stands for list
switch av
stands for avail
or available
etc.
1.12. Some examples
1.12.1. Example 1 : one loads and unloads a single module
$ module list No Modulefiles Currently Loaded. $ module load gcc/13.1.0 $ module list Currently Loaded Modulefiles: 1) gcc/13.1.0 $ module unload gcc/13.1.0 $ module list No Modulefiles Currently Loaded.
1.12.2. Example 2 : one loads several modules together
$ module load gcc/13.1.0 openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0 gmsh/4.11.1_gnu Loading openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0 Loading requirement: rdma/46.0_gnu ucx/1.14.1_gnu $ module li Currently Loaded Modulefiles: 1) gcc/13.1.0 3) ucx/1.14.1_gnu 5) gmsh/4.11.1_gnu 2) rdma/46.0_gnu 4) openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0
As you can see, some other modules have been added to the ones you have selected : they are dependencies and automatically added, as mentioned by the module
command.
1.12.3. Example 3 : unload all currently loaded modules
One can use the purge
switch
$ module load intel/compiler/2023.1.0 intel/mpi/2021.9.0 Loading compiler version 2023.1.0 Loading tbb version 2021.9.0 Loading compiler-rt version 2023.1.0 Load "debugger" to debug DPC++ applications with the gdb-oneapi debugger. Load "dpl" for additional DPC++ APIs: https://github.com/oneapi-src/oneDPL Loading intel/compiler/2023.1.0 Loading requirement: intel/tbb/latest intel/compiler-rt/latest Loading mpi version 2021.9.0 $ module li Currently Loaded Modulefiles: 1) intel/tbb/latest 2) intel/compiler-rt/latest 3) intel/compiler/2023.1.0 4) intel/mpi/2021.9.0 $ module purge Removing mpi version 2021.9.0 Use `module list` to view any remaining dependent modules. Removing compiler version 2023.1.0 Use `module list` to view any remaining dependent modules. Load "debugger" to debug DPC++ applications with the gdb-oneapi debugger. Load "dpl" for additional DPC++ APIs: https://github.com/oneapi-src/oneDPL Removing compiler-rt version 2023.1.0 Use `module list` to view any remaining dependent modules. Removing tbb version 2021.9.0 Use `module list` to view any remaining dependent modules. $ module list No Modulefiles Currently Loaded.
If you use the unload
switch, you get the same result, but you have to write all the module names
1.12.4. Example 4 : one changes the version of the chosen module
If you want to change the version of a module, using a different one, that is available too through the module command, you use the switch
switch.
$ module load nvhpc/22.7 $ module li Currently Loaded Modulefiles: 1) nvhpc/22.7 $ module switch nvhpc/22.7 nvhpc/23.9 $ module li Currently Loaded Modulefiles: 1) nvhpc/23.9