====== Spack & Modulefiles ======
[[https://spack.readthedocs.io/en/latest|Spack]] is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments.
For most of the software in GWDG SCC we use Spack to install them.
Moreover, Spack allows you to install necessary software yourself if it is provided by the large Spack [[https://spack.readthedocs.io/en/latest/package_list.html|repository]].
===== Usage =====
We support 2 ways of using software in GWDG SCC:
- With Modulefiles
- With Spack
==== Modulefiles ====
To load the software using modulefile, run the following command:
module load SOFTWARE/VERSION
To list available modules, run
module av
**Please note:** by default it will show only the modules compiled by GCC and OpenMPI, if you want the software compiled by Intel or with Intel MPI, corresponding modules should be loaded first to see them (''intel-oneapi-compilers'' for Intel compiler and ''intel-oneapi-mpi'' for IntelMPI). To use intel MPI, then you need to load ''intel-oneapi-compilers'' module first.
If you want to list all available modules, then run
module spider
==== Spack ====
In order to use Spack, you need to load the corresponding module first:
module load spack-user
**Please note:** some commands of Spack require extra shell functionality and you need to source the environment script. You can run the command below and follow the instructions in the output message:
spack load
Now Spack is ready and you can use ''spack load'' command to load necessary software or ''spack install SPEC'' to install the software.
=== Installing software ===
In most cases, it is enough to know the package name to install the software. For instance, if you want to install ''zlib'', then you can simply run the following command:
spack install zlib
In general, you need to provide a specification and dependencies for the command ''spack install'', where you can select versions, compiler, dependencies and variants. To learn more about Spack specification, please visit the [[https://spack.readthedocs.io/en/latest/basic_usage.html#specs-dependencies|documentation]].
Since, we have multiple CPU architectures in the SCC, if the software can be accelerated with Cascadelake's registers like AVX512, then
you can specify a target as an argument:
spack install gromacs target=cascadelake
By default, the software is compiled for Haswell architecture.
**Note**: Software installed as modules are already built for both targets and the corresponding version of the software will be used depending on the machine, where the job is running.
To learn more about Spack and how to install software you can go through its [[https://spack-tutorial.readthedocs.io/en/latest|tutorial]]
===== Modules =====
==== Intel ====
There are multiple modules related to Intel software:
* ''intel'', ''intel-oneapi-compilers'' - consists only of Intel compilers
* ''intel-mpi'', ''intel-oneapi-mpi'' - consists of Intel MPI compiler wrappers and Intel MPI runtime
* ''intel-parallel-studio'' - consists of libraries (MKL, TBB, IPP, DAAL) and tools (VTune Profiler, Advisor, Inspector, ITAC)
* ''intel-oneapi-advisor'' - Advisor
* ''intel-oneapi-dal'' - DAAL
* ''intel-oneapi-inspector'' - Inspector
* ''intel-oneapi-tbb'' - TBB
* ''intel-oneapi-vtune'' - VTune
===== Contact =====
If you have any issues with the software or Spack, please contact us using the [[https://www.gwdg.de/support|support form]], by email
[[mailto:hpc-support@gwdg.de|hpc-support@gwdg.de]] or [[https://chat.gwdg.de/channel/hpc-users|Rocket chat]]