diff --git a/docs/software-modules.md b/docs/software-modules.md index 18b08803817aad2f10b8a748c06e07d7b9478aa7..01ff0df36d9b9347d26c11f0162a30d7593cc86e 100644 --- a/docs/software-modules.md +++ b/docs/software-modules.md @@ -18,11 +18,12 @@ When you log in, a set of default modules is loaded for you, e.g. on JUWELS: $ module list Currently Loaded Modules: - 1) GCCcore/.9.3.0 (H) 3) binutils/.2.34 (H) - 2) zlib/.1.2.11 (H) 4) StdEnv/2020 + 1) Stages/2025 (S) 3) zlib/.1.3.1 (H) 5) make/4.4.1 + 2) GCCcore/.13.3.0 (H) 4) binutils/.2.42 (H) 6) StdEnv/2025 Where: - H: Hidden Module + S: Module is Sticky, requires --force to unload or purge + H: Hidden Module ``` @@ -31,35 +32,47 @@ To see what other modules can currently be loaded, type: ``` $ module avail --------------------------- Core packages --------------------------- - Advisor/2020_update3 - Autotools/20200321 - Autotools/20200321 (D) +----------------------------------- System side compilers ----------------------------------- + AOCC/4.2.0 Clang/18.1.8 + +--------------------------------------- Core packages --------------------------------------- + ADIOS2/2.10.2 VTKm/20250106-nompi (g) + ANARI-SDK/0.12.1-nompi VTune/2024.3.0 + ASE/3.23.0 Vampir/10.5.0 [...] - unzip/6.0 - xpra/4.0.4-Python-3.8.5 - zsh/5.8 + UnZip/6.0 xpra/6.2.3 (g,D) + VTK/9.4.1-nompi xxHash/0.8.3 + VTK/9.4.1 (D) zsh/5.9 + +----------------------------------------- Compilers ----------------------------------------- + GCC/13.3.0 Intel/2024.2.0 (D) NVHPC/25.1-CUDA-12 (g) + Intel/2024.2.0-CUDA-12 (g) NVHPC/24.9-CUDA-12 (g,D) NVHPC/25.3-CUDA-12 (g) ----------------------------- Compilers ----------------------------- - GCC/9.3.0 NVHPC/20.9-GCC-9.3.0 (g) - Intel/2020.2.254-GCC-9.3.0 NVHPC/20.11-GCC-9.3.0 (g,D) - NVHPC/20.7-GCC-9.3.0 (g) NVHPC/21.1-GCC-9.3.0 (g) +------------------------------------- Production Stages ------------------------------------- + Stages/2023 (S) Stages/2024 (S) Stages/2025 (S,L,D) ------------------ User-based install configuration ----------------- +----------------------------- User-based install configuration ------------------------------ UserInstallations/easybuild +------------------------------- System install configuration -------------------------------- + Developers/InstallSoftware + Where: S: Module is Sticky, requires --force to unload or purge - g: built for GPU + g: Built with GPU support 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 +If the avail list is too long consider trying: + +"module --default avail" or "ml -d av" to just list the default modules. +"module overview" or "ml ov" to display the number of modules for each name. + Use "module spider" to find all possible modules and extensions. -Use "module keyword key1 key2 ..." to search for all possible modules matching -any of the "keys". +Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". ``` @@ -80,10 +93,10 @@ If you now run `module avail` again, you will notice two additional software cat ``` $ module avail -------------- MPI runtimes available for GNU compilers ------------- +---------------------- System MPI runtimes available for GNU compilers ---------------------- [...] ---------------- Packages compiled with GNU compilers --------------- +------------------------ System packages compiled with GNU compilers ------------------------ [...] ``` @@ -94,106 +107,108 @@ Loading one of the available MPI modules will complete your choice of a toolchai $ module load OpenMPI $ module avail -------------------------- OpenMPI settings ------------------------- - mpi-settings/CUDA-low-latency mpi-settings/CUDA (L,D) +------------------------------------- OpenMPI settings -------------------------------------- + MPI-settings/CUDA-UCC MPI-settings/CUDA (D) MPI-settings/UCX-UCC MPI-settings/UCX (L) ---------- Packages compiled with OpenMPI and GCC compilers --------- +------------------ System packages compiled with OpenMPI and GCC compilers ------------------ [...] ``` If you are looking for a particular piece of software that you know the name of, rather than rummaging through all the toolchains, you can use the `module spider` subcommand, as the output of `module avail` suggests: ``` -$ module spider LAMMPS +$ module spider GROMACS ----------------------------------------------------------------------------- - LAMMPS: ----------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------------ + GROMACS: +------------------------------------------------------------------------------------------------------ Description: - LAMMPS is a classical molecular dynamics code, and an acronym for - Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has - potentials for solid-state materials (metals, semiconductors) and - soft matter (biomolecules, polymers) and coarse-grained or mesoscopic - systems. It can be used to model atoms or, more generically, as a - parallel particle simulator at the atomic, meso, or continuum scale. - LAMMPS runs on single processors or in parallel using message-passing - techniques and a spatial-decomposition of the simulation domain. The - code is designed to be easy to modify or extend with new - functionality. + GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian + equations of motion for systems with hundreds to millions of particles. It is primarily + designed for biochemical molecules like proteins and lipids that have a lot of complicated + bonded interactions, but since GROMACS is extremely fast at calculating the non-bonded + interactions (that usually dominate simulations) many groups are also using it for research on + non-biological systems, e.g. polymers. Versions: - LAMMPS/24Dec2020-CUDA - LAMMPS/24Dec2020 - LAMMPS/29Oct2020-CUDA - LAMMPS/29Oct2020 - ----------------------------------------------------------------------------- - For detailed information about a specific "LAMMPS" package (including how to load the modules) use the module's full name. + GROMACS/2022.4-plumed + GROMACS/2022.4 + GROMACS/2023.2 + GROMACS/2024.3-PLUMED-2.9.3 + GROMACS/2024.3 + +------------------------------------------------------------------------------------------------------ + For detailed information about a specific "GROMACS" package (including how to load the modules) use the module's full name. Note that names that have a trailing (E) are extensions provided by other modules. For example: - $ module spider LAMMPS/29Oct2020 ----------------------------------------------------------------------------- + $ module spider GROMACS/2024.3 +------------------------------------------------------------------------------------------------------ ``` -Loading the LAMMPS module with OpenMPI loaded fails: +Loading the GROMACS module with OpenMPI loaded fails: ``` -$ module load LAMMPS -Lmod has detected the following error: These module(s) or -extension(s) exist but cannot be loaded as requested: "LAMMPS" - Try: "module spider LAMMPS" to see how to load the module(s). +$ module load GROMACS +Lmod has detected the following error: These module(s) or extension(s) exist but cannot be +loaded as requested: "GROMACS" + Try: "module spider GROMACS" to see how to load the module(s). ``` `module spider` with a specific module version provides details on how the module can be loaded: ``` -$ module spider LAMMPS/24Dec2020 +$ module spider GROMACS/2024.3 ----------------------------------------------------------------------------- - LAMMPS: LAMMPS/24Dec2020 ----------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------------ + GROMACS: GROMACS/2024.3 +------------------------------------------------------------------------------------------------------ Description: - LAMMPS is a classical molecular dynamics code, and an acronym for - Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has - potentials for solid-state materials (metals, semiconductors) and - soft matter (biomolecules, polymers) and coarse-grained or mesoscopic - systems. It can be used to model atoms or, more generically, as a - parallel particle simulator at the atomic, meso, or continuum scale. - LAMMPS runs on single processors or in parallel using message-passing - techniques and a spatial-decomposition of the simulation domain. The - code is designed to be easy to modify or extend with new - functionality. + GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian + equations of motion for systems with hundreds to millions of particles. It is primarily + designed for biochemical molecules like proteins and lipids that have a lot of complicated + bonded interactions, but since GROMACS is extremely fast at calculating the non-bonded + interactions (that usually dominate simulations) many groups are also using it for research on + non-biological systems, e.g. polymers. + Properties: + Built with GPU support - You will need to load all module(s) on any one of the lines below before the "LAMMPS/24Dec2020" module is available to load. + You will need to load all module(s) on any one of the lines below before the "GROMACS/2024.3" module is available to load. - GCC/9.3.0 ParaStationMPI/5.4.7-1 - Intel/2020.2.254-GCC-9.3.0 ParaStationMPI/5.4.7-1 + Stages/2025 GCC/13.3.0 ParaStationMPI/5.10.0-1 + Stages/2025 GCC/13.3.0 ParaStationMPI/5.10.0-1-mt + Stages/2025 GCC/13.3.0 ParaStationMPI/5.11.0-1 + Stages/2025 GCC/13.3.0 ParaStationMPI/5.11.0-1-mt Help: Description =========== - LAMMPS is a classical molecular dynamics code, and an acronym - for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has - potentials for solid-state materials (metals, semiconductors) and soft matter - (biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be - used to model atoms or, more generically, as a parallel particle simulator at - the atomic, meso, or continuum scale. LAMMPS runs on single processors or in - parallel using message-passing techniques and a spatial-decomposition of the - simulation domain. The code is designed to be easy to modify or extend with new - functionality. + GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations + of motion for systems with hundreds to millions of particles. It is primarily designed for + biochemical molecules like proteins and lipids that have a lot of complicated bonded interactions, + but since GROMACS is extremely fast at calculating the non-bonded interactions (that usually + dominate simulations) many groups are also using it for research on non-biological systems, e.g. + polymers. + + + Usage + ===== + Use `gmx` to execute GROMACS commands on a single node, for example, to prepare your run. Use + `gmx_mpi mdrun` in your job scripts with `srun`. More information ================ - - Homepage: https://lammps.sandia.gov/ - - Site contact: a.kreuzer@fz-juelich.de + - Homepage: http://www.gromacs.org + - Documentation: + - http://manual.gromacs.org/documentation/current/user-guide/index.html + - Site contact: Support <sc@fz-juelich.de>, software responsible Jan Meinke <j.meinke@fz-juelich.de> ``` -The problem is that LAMMPS is only available in toolchains which include ParaStationMPI. +The problem is that GROMACS is only available in toolchains which include ParaStationMPI. We could simply reload the MPI module rather than having to reload the entire toolchain, but this can sometimes come with unintended consequences, where what is loaded in a `module load` command is not necessarily unloaded while swapping modules. For this reason, we also do not recommend using the `module unload` command, although it is available. We would recommend to unload (almost) all modules and start with a fresh environment, using `module purge`: @@ -202,10 +217,16 @@ We would recommend to unload (almost) all modules and start with a fresh environ $ module purge $ module load GCC $ module load ParaStationMPI -$ module load LAMMPS +$ module load GROMACS ``` +:::info + +The `module spider` command is **case-insensitive**, meaning you can search for modules using any combination of uppercase or lowercase letters (e.g., `module spider PyTorch` and `module spider pytorch` both work). + +In contrast, the `module load` command is **case-sensitive**. You must use the exact capitalization of the module name and version as listed (e.g., `module load GROMACS/2024.3` is correct, while `module load gromacs/2024.3` may fail if the case does not match). +::: The `module` command is part of the Lmod software package. It comes with its own help document which you can access by running `module help` and a [user guide is available online](https://lmod.readthedocs.io).