Available modules¶
Below is the software available in the "Aristotle" institutional cluster. Note that any software or application may be installed in more than one version.
Software that is added and maintained is under these categories:
- Centrally available software of AuTH που αδειοδοτείται με δυναμικές άδειες.
- GNU, Intel compilers
- Interpreted Programming Languages (such as
Python,R,Julia) - Software development tools (such as
Jupyter,Rstudio,Spyder) - Available EESSI software (
European Environment for Scientific Software Installations) - Scientific apps and tools after filling a request form
Attention!
If you require the installation of multiple software applications, please submit a single request that includes all of them. Avoid submitting separate requests for each application.
The central software installation in Aristotle is done either with RPM packages or with the tool spack which is a package manager for supercomputing infrastructures.
Request for software installation
If you wish to install software that is not listed below or in the EESSI available software
you can submit the relevant form.
Please note that you can install in your personal account on your own the following:
R packagesPython packagesin virtual environments- Software that can be downloaded without the need of admin permissions
Intro to using modulefiles¶
The software/applications are available when using modulefiles. For example when we login to the cluster, the version of the gcc compiler available is 11.4.1-3:
# gcc --version
gcc (GCC) 11.4.1 20150623 (Red Hat 11.4.1-3)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This version is called "system version".
To make another version available in the UI (on the command line) we need to load the corresponding modulefile first, e.g. to use version `13.2.0':
# module load gcc/13.2.0
# gcc --version
gcc (Spack GCC) 13.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
We note that in the output of gcc --version the version is 9.2.0 and not the system version (4.8.5). If we want to see which versions of the gcc package/software are available we can run module avail gcc, e.g:
# module avail gcc
------------ /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core -------------
gcc/5.5.0 gcc/6.4.0 gcc/7.3.0 gcc/8.2.0 (D) gcc/9.2.0
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".
In the output of the last command we notice that the default version is 8.2.0, so if we call module load gcc without specifying a particular version, 8.2.0 will be activated as shown and in the box below:
# module load gcc
# gcc --version
gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Modulefiles structure¶
Most software packages that are centrally installed on the cluster are compiled with one or more compilers (e.g., gcc and intel). Similarly (and one level down) a parallel application may have been compiled using more than one mpi implementation (e.g. and with openmpi and with intel-mpi).
Consequently the structure of modulefiles available is hierarchical, meaning the libraries or applications that have been compiled with a given compiler are shown as available with module avail only after we have loaded the given compiler into the environment.
The compilers are at the first level of the hierarchy. After the login the only softwares available for use are:
# module avail
Terminal Output
---/mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core---
gcc/8.2.0 gcc/9.4.0-eewq4j6 gcc/12.2.0 intel-oneapi-compilers/2022.0.2-sygdcrc intel/20.0.2 nvhpc/23.11-do7ymsa
gcc/9.2.0 gcc/12.2.0-fhg4pj2 gcc/13.2.0-nbog6z2 intel/19.0.5 (D) llvm/5.0.2-2l7hn3a
The second level is where most applications are located. To see them as available modulefiles we first need to load a compiler, e.g.:
# module load intel/19.0.5
# module avail
Terminal Output
- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/intel/19.0.5 --
autoconf/2.69 hwloc/1.11.9 openmpi/3.1.2
automake/1.16.1 hwloc/1.11.11 (D) openmpi/3.1.3
axel/2.16.1 jasper/1.900.1 openmpi/3.1.4 (D)
bison/3.4.2 libjpeg-turbo/1.5.90 openssl/1.0.2o
boost/1.70.0 libpng/1.6.34 openssl/1.1.1d (D)
bzip2/1.0.8 libpng/1.6.37 (D) perl/5.26.2
cgal/4.13 libtool/2.4.6 perl/5.30.0 (D)
cmake/3.9.6 libxml2/2.9.8 pkgconf/1.4.2
cmake/3.12.3 libxml2/2.9.9 (D) pkgconf/1.6.3 (D)
cmake/3.15.4 (D) m4/1.4.18 python/3.3.5
curl/7.63.0 miniconda2/4.5.11 readline/7.0
diffutils/3.6 miniconda3/4.5.11 readline/8.0 (D)
diffutils/3.7 (D) mpfr/4.0.2 slurm/17-11-8-1
expat/2.2.9 nasm/2.13.03 sqlite/3.30.1
fontsproto/2.1.3 ncurses/6.1 tar/1.32
gmake/4.2.1 numactl/2.0.11 xz/5.2.4
gmp/6.1.2 numactl/2.0.12 (D) zlib/1.2.11
help2man/1.47.11 openblas/0.3.7
----- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core ------
gcc/8.2.0 gcc/9.4.0-eewq4j6 gcc/12.2.0 intel-oneapi-compilers/2022.0.2-sygdcrc intel/20.0.2 nvhpc/23.11-do7ymsa
gcc/9.2.0 gcc/12.2.0-fhg4pj2 gcc/13.2.0-nbog6z2 intel/19.0.5 (L,D) llvm/5.0.2-2l7hn3a
Some parallel applications (using one mpi library) are located at the third level, e.g. the libraries hdf5:
# module load openmpi/3.1.3
# module avail
Terminal Output
------ /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/openmpi/3.1.3-q4h4qu4/intel/19.0.5.281 -------
hdf5/1.8.19 hdf5/1.10.4 (D) netcdf-fortran/4.4.4 netcdf/4.6.1 regcm/4.4.5.11 regcm/4.7.0 (D)
------------------- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/intel/19.0.5 --------------------
autoconf/2.69 fontsproto/2.1.3 miniconda2/4.5.11 perl/5.30.0 (D)
automake/1.16.1 gmake/4.2.1 miniconda3/4.5.11 pkgconf/1.4.2
axel/2.16.1 gmp/6.1.2 mpfr/4.0.2 pkgconf/1.6.3 (D)
bison/3.4.2 help2man/1.47.11 nasm/2.13.03 python/3.3.5
boost/1.70.0 hwloc/1.11.9 ncurses/6.1 readline/7.0
bzip2/1.0.8 hwloc/1.11.11 (D) numactl/2.0.11 readline/8.0 (D)
cgal/4.13 jasper/1.900.1 numactl/2.0.12 (D) slurm/17-11-8-1
cmake/3.9.6 libjpeg-turbo/1.5.90 openblas/0.3.7 sqlite/3.30.1
cmake/3.12.3 libpng/1.6.34 openmpi/3.1.2 tar/1.32
cmake/3.15.4 (D) libpng/1.6.37 (D) openmpi/3.1.3 (L) xz/5.2.4
curl/7.63.0 libtool/2.4.6 openmpi/3.1.4 (D) zlib/1.2.11
diffutils/3.6 libxml2/2.9.8 openssl/1.0.2o
diffutils/3.7 (D) libxml2/2.9.9 (D) openssl/1.1.1d (D)
expat/2.2.9 m4/1.4.18 perl/5.26.2
----------------------- /mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/Core ------------------------
gcc/5.5.0 gcc/6.4.0 gcc/7.3.0 gcc/8.2.0 (D) gcc/9.2.0 intel/19.0.5 (L)
Using spider¶
To see which modulefiles we need to load first in order to make an application available in the UI we can use the command module spider. E.g. to see which options are available to "load" the fftw (Fastest Fourier Transform in the West) library we can run the following command:
# module spider fftw/3.3.8
Terminal Output
-------------------------------------------------------------------------------------------
fftw: fftw/3.3.8
-------------------------------------------------------------------------------------------
You will need to load all module(s) on any one of the lines below before the "fftw/3.3.8" m
odule is available to load.
gcc/6.4.0 openmpi/3.1.3
gcc/7.3.0 openmpi/3.1.3
gcc/8.2.0 openmpi/3.1.3
gcc/9.2.0 openmpi/3.1.4
Help:
FFTW is a C subroutine library for computing the discrete Fourier
transform (DFT) in one or more dimensions, of arbitrary input size, and
of both real and complex data (as well as of even/odd data, i.e. the
discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which
is free software, should become the FFT library of choice for most
applications.
We see that the configured library (fftw/3.3.8) is installed four times and to bring it into the UI we need to first load a combination of gcc and openmpi, e.g:
# module load gcc/9.2.0 openmpi/3.1.4
# module load fftw/3.3.8
We can also use the command module spider and locate the available versions of a module.
# module spider python
Terminal Output
-----------------------------------------------------------------
python:
-----------------------------------------------------------------
Versions:
python/3.7.0
python/3.7.4
python/3.7.6
python/3.7.7
python/3.7.12-f7pslve
python/3.7.12-jzuctbb
python/3.7.12-4tsv54n
python/3.7.12-7a464zq
python/3.8.6-a23pddp
python/3.8.6
python/3.9.10-a7dicda
python/3.9.10-b7gg4hu
python/3.9.10-fb7xssq
python/3.9.10-ilba5wi
python/3.9.10-mru6vyi
python/3.9.10-qujth4g
python/3.9.10-qz3dwle
python/3.9.10-ve54vyn
python/3.10.8-cidwh6y
python/3.10.8-d22ngxi
python/3.10.8-uyv7glf
python/3.10.8-vpowkao
python/3.10.10-abxdifo
python/3.10.10-liiyhzc
python/3.10.10-lufnu2b
python/3.10.10-tuelrzc
python/3.11.6-wkl2rma
Other possible modules matches:
py-gitpython py-ipython py-ipython-genutils py-meson-python py-python-dateutil py-scientificpython py-wxpython
--------------------------------------------------------------------
To find other possible module matches execute:
$ module -r spider '.*python.*'
-------------------------------------------------------------------
For detailed information about a specific "python" 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 python/3.11.6-wkl2rma
-------------------------------------------------------------------
Next, to see how to use the module of a specific version, we use module spider as follows:
# module spider python/3.11.6-wkl2rma
Terminal Output
---------------------------------------------------------------------
python: python/3.11.6-wkl2rma
--------------------------------------------------------------------
You will need to load all module(s) on any one of the lines below before the "python/3.11.6-wkl2rma" module is available to load.
gcc/13.2.0-nbog6z2
Help:
The Python programming language.
So, to run the python/3.11.6 module we use the following command:
# module load gcc/13.2.0-nbog6z2 python/3.11.6-wkl2rma
Module show¶
To see how an environment is configured by a module we use the command module show.
For example:
# module load gcc/12.2.0
# module show py-scipy
Terminal Output
---------------------------------------------------------------------------------------------------------
/mnt/apps/aristotle/site/share/spack/lmod/linux-centos7-x86_64/gcc/12.2.0/py-scipy/1.11.3-2zqskki.lua:
--------------------------------------------------------------------------------------------------------
whatis("Name : py-scipy")
whatis("Version : 1.11.3")
whatis("Target : x86_64")
whatis("Short description : Fundamental algorithms for scientific computing in Python.")
help([[Name : py-scipy]])
help([[Version: 1.11.3]])
help([[Target : x86_64]])
]])
help([[Fundamental algorithms for scientific computing in Python.]])
depends_on("openblas/0.3.23-buakiei")
depends_on("py-numpy/1.24.3-lyes72v")
depends_on("py-pybind11/2.11.0-vhmpdq5")
depends_on("python/3.10.10-abxdifo")
conflict("py-scipy")
prepend_path("LD_LIBRARY_PATH","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv/lib")
prepend_path("CMAKE_PREFIX_PATH","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv/.")
prepend_path("PYTHONPATH","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv/lib/python3.10/site-packages")
setenv("PY_SCIPY_ROOT","/mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-12.2.0/py-scipy-1.11.3-2zqskki5skt6mxztgx5sb7n6qef7bcnv")