Difference between revisions of "Modules and applications"
Line 82: | Line 82: | ||
<table style="width: 100%;> | <table style="width: 100%;> | ||
<tr valign=top> | <tr valign=top> | ||
− | <td style="width: | + | <td style="width: 45%;"> |
=== Centrally installed === | === Centrally installed === | ||
Central applications are installed in '''/cluster/apps''' | Central applications are installed in '''/cluster/apps''' | ||
Line 93: | Line 93: | ||
<td style="width: 5%;"> | <td style="width: 5%;"> | ||
</td> | </td> | ||
− | <td style="width: | + | <td style="width: 50%;"> |
=== In $HOME === | === In $HOME === |
Revision as of 12:12, 1 February 2021
Several software tools, each with several versions, are offered on the cluster. How to find applications you need and set up the computing environment specific for you? Use Modules A Modules package is a tool to let you to easily configure your computing environment. We employ two types of Modules packages on the clusters:
|
Modules commands
Here are the most frequently used module commands.
List all modules that match name module avail name |
Example: list all available Python $ module avail python |
|
Load modules name module load name |
Example: load GCC 6.3.0 and Python 3.8.5 $ module load gcc/6.3.0 python/3.8.5 |
|
List all currently loaded modules module list |
Example: $ module list Currently Loaded Modules: 1) StdEnv 2) gcc/6.3.0 3) openblas/0.2.20 4) python/3.8.5 |
Other commonly used module commands
module # get info about module sub-commands module avail # List all modules available on the cluster module key keyword # list all modules whose description contains keyword module help name # get information about module name module show name # show what module name does (without loading it) module unload name # unload module name module purge # unload all modules at once
Where are applications installed?
Centrally installedCentral applications are installed in /cluster/apps Applications that are needed by many users should be installed centrally, like compilers and libraries
|
In $HOMEUsers can install additional applications in their home directory, but only if the quotas (space: 16GB, files/directories: 100'000) are not exceeded
|
Two software stacks on Euler
Use the new software stack whenever possible
Old software stack with Env ModulesOnly on Euler Upon your login on Euler, the old software stack is set by default. |
New software stack with LMOD ModulesAvailable on Euler and Leonhard Open
|
|
$ env2lmod |
$ lmod2env |
All new software is installed exclusively in the new software stack, mostly done with SPACK package manager.
You can find instructions how to load modules and examples on application pages, for instance, R, Python, Matlab, etc.
The structure of LMOD Modules
LMOD Modules comprise of three layers
module load comsol/5.6
module load gcc/6.3.0 hdf5/1.10.1
module load gcc/6.3.0 openmpi/3.0.1 openblas |
There are four main toolchains
Those compilers can be combined with OpenMPI 3.0.1 or 4.0.2 and OpenBLAS |
Application lists
- Euler - New software stack
- Euler - Old software stack
- Leonhard Open
- Most recently installed software
Bioinformatics & life science | Finite element methods | Machine learning | Multi-physics phenomena | Quantum chemistry & molecular dynamics | Symbolic, numerical and statistical mathematics | Visualization |
---|---|---|---|---|---|---|
Bamtools BLAST Bowtie CLC Genomics Server RAxML Relion TopHat |
Ansys Abaqus FEniCS |
PyTorch Scikit-Learn TensorFlow Theano |
AnsysEDT COMSOL Multiphysics STAR-CCM+ |
ADF Ambertools Gaussian Molcas Octopus Orca Qbox Turbomole |
Gurobi Mathematica MATLAB R Stata |
Ffmpeg ParaView VisIT VTK |
Compiler | Programming languages | Scientific libraries | Solvers | MPI libraries | Build systems | Version control |
---|---|---|---|---|---|---|
GCC Intel |
C, C++ Fortran, Go Java, Julia Perl, Python Ruby, Scal |
Boost, Eigen FFTW, GMP GSL, HDF5 MKL, NetCDF NumPy, OpenBLAS SciPy |
PETSc Gurobi Hypre Trilino |
Open MPI Intel MPI MPICH |
GNU Autotools Cmake qmake make |
CVS Git Mercurial SVN |
Example
In this example we load GCC compiler version 4.8.2 and the most recent Python version in the old software stack, switch to the new software stack where we load GCC 6.3.0 and the most recent Python version, then switch back to the old software stack to load Python again
Load GCC and new module in the old software stack:
$ module load new gcc/4.8.2 $ module avail python ------------------------------ /cluster/apps/modules/modulefiles ------------------------------ python/2.7.12 python/2.7.13 python/2.7.6(2.7) python/2.7.9 python/3.3.3(3:3.3) python/3.4.3 python/3.6.0 ------------------------------ /cluster/apps/modules/new -------------------------------------- python/2.7.14 python/2.7.6_UCS4 python/3.6.1 python/3.7.1
Load the newest Python
$ module load python/3.7.1 Autoloading openblas/0.2.13_seq
$ module list Currently Loaded Modulefiles: 1) modules 3) gcc/4.8.2(default:4.8) 5) python/3.7.1 2) new 4) openblas/0.2.13_seq(default:seq)
Switching to the new software stack:
$ env2lmod $ module list Currently Loaded Modules: 1) StdEnv 2) gcc/4.8.5
Load GCC 6.3.0 and check Python version
$ module load gcc/6.3.0 The following have been reloaded with a version change: 1) gcc/4.8.5 => gcc/6.3.0
$ module avail python --------------------------- /cluster/apps/lmodules/Compiler/gcc/6.3.0 ------------------------------------- python/2.7.14 python/3.6.4 python/3.7.4 python/3.8.5 (D) python_gpu/3.8.5 Where: D: Default Module Use "module spider" to find all possible modules. Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
Load new Python
$ module load python/3.8.5 $ module list Currently Loaded Modules: 1) StdEnv 2) gcc/6.3.0 3) openblas/0.2.20 4) python/3.8.5
Switching back to the old software stack:
$ lmod2env $ module list Currently Loaded Modulefiles: 1) modules
Load Python 3.7.1 again
$ module load new gcc/4.8.2 python/3.7.1 Autoloading openblas/0.2.13_seq $ module list Currently Loaded Modulefiles: 1) modules 3) gcc/4.8.2(default:4.8) 5) python/3.7.1 2) new 4) openblas/0.2.13_seq(default:seq)