<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bwhpc.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M+Janczyk</id>
	<title>bwHPC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bwhpc.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M+Janczyk"/>
	<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/e/Special:Contributions/M_Janczyk"/>
	<updated>2026-08-15T13:29:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Modules&amp;diff=16238</id>
		<title>NEMO2/Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Modules&amp;diff=16238"/>
		<updated>2026-07-30T14:04:00Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: Auto-update: EasyBuild module list (bot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwForCluster NEMO 2 – Available EasyBuild Modules =&lt;br /&gt;
&lt;br /&gt;
This page is automatically generated from the module data collected on the HPC cluster.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Metric !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Collection date || 2026-07-30T16:03:59.796367&lt;br /&gt;
|-&lt;br /&gt;
| Unique modules (Genoa / H200 / RTX / MI300A) || 768&lt;br /&gt;
|-&lt;br /&gt;
| Unique modules (L40S) || 439&lt;br /&gt;
|-&lt;br /&gt;
| Unique modules (Milan) || 723&lt;br /&gt;
|-&lt;br /&gt;
| Total unique modules (all groups) || 777&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Architecture Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Architecture !! Group !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; || Genoa / H200 / RTX / MI300A || canonical (queried by collector)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; || Genoa / H200 / RTX / MI300A || symbolic link → genoa&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rtx&amp;lt;/code&amp;gt; || Genoa / H200 / RTX / MI300A || symbolic link → genoa&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; || Genoa / H200 / RTX / MI300A || symbolic link → genoa&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l40s&amp;lt;/code&amp;gt; || L40S || canonical (queried by collector)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milan&amp;lt;/code&amp;gt; || Milan || canonical (queried by collector)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Architectures within the same group share an identical module tree.  The modules listed below are therefore the same for all members of each group.&lt;br /&gt;
&lt;br /&gt;
== Genoa / H200 / RTX / MI300A ==&lt;br /&gt;
&lt;br /&gt;
Available for: &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rtx&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiler Toolchains (toolchain/) (5 software, 13 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;foss&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/foss&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gfbf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/gfbf&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gompi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/gompi&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;iimpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/iimpi&amp;lt;/code&amp;gt; || iimpi 2024a&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/intel&amp;lt;/code&amp;gt; || Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compilers (compiler/) (6 software, 19 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt; || The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gcccore&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/gcccore&amp;lt;/code&amp;gt; || The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;glslang-spirv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15.4.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/glslang-spirv&amp;lt;/code&amp;gt; || Glslang is the official reference compiler front end for the OpenGL ES and OpenGL shading languages. It implements a strict interpretation of the specifications for these languages. It is open and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;go&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.23.6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/go&amp;lt;/code&amp;gt; || Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intel-compilers&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025.3.3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/intel-compilers&amp;lt;/code&amp;gt; || Intel C, C++ &amp;amp; Fortran compilers (classic and oneAPI)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;llvm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;16.0.6-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/llvm&amp;lt;/code&amp;gt; || The LLVM Core libraries provide a modern source- and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!) These libraries are …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Computational Chemistry (chem/) (9 software, 12 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ase&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.24.0-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/ase&amp;lt;/code&amp;gt; || ASE is a python package providing an open source Atomic Simulation Environment in the Python scripting language. From version 3.20.1 we also include the ase-ext package, it contains optional …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gpaw-setups&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.11.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/gpaw-setups&amp;lt;/code&amp;gt; || PAW setups for the GPAW Density Functional Theory package. Users can install setups manually using &#039;gpaw install-data&#039; or use setups from this package. The versions of GPAW and GPAW-setups can be …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kim-api&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.1-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/kim-api&amp;lt;/code&amp;gt; || Open Knowledgebase of Interatomic Models. KIM is an API and OpenKIM is a collection of interatomic models (potentials) for atomistic simulations. This is a library that can be used by simulation …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lammps&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2aug2023_update2-foss-2023a-kokkos&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/lammps&amp;lt;/code&amp;gt; || 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 …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libvdwxc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.4.0-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/libvdwxc&amp;lt;/code&amp;gt; || libvdwxc is a general library for evaluating energy and potential for exchange-correlation (XC) functionals from the vdW-DF family that can be used with various of density functional theory (DFT) …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mdi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.26-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.26-gompi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/mdi&amp;lt;/code&amp;gt; || The MolSSI Driver Interface (MDI) project provides a standardized API for fast, on-the-fly communication between computational chemistry codes. This greatly simplifies the process of implementing …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;orca&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.1-gompi-2023a-avx2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/orca&amp;lt;/code&amp;gt; || ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry with specific emphasis on spectroscopic properties of open-shell molecules. It features a wide variety of …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;plumed&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.9.0-foss-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.3-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/plumed&amp;lt;/code&amp;gt; || PLUMED is an open source library for free energy calculations in molecular systems which works together with some of the most popular molecular dynamics engines. Free energy calculations can be …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;spglib-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.5.0-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/spglib-python&amp;lt;/code&amp;gt; || Spglib for Python. Spglib is a library for finding and handling crystal symmetries written in C.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data Management &amp;amp; Processing (data/) (4 software, 9 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;beautifulsoup&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.14.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/beautifulsoup&amp;lt;/code&amp;gt; || Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10.7-gompi-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.0-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.5-gompi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/hdf5&amp;lt;/code&amp;gt; || hdf5 1.10.7-gompi-2020b&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.100-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.100-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.100-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/lame&amp;lt;/code&amp;gt; || LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;netcdf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.9.2-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.9.2-gompi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/netcdf&amp;lt;/code&amp;gt; || NetCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Development Tools (devel/) (28 software, 115 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.69-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.72-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.72-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/autoconf&amp;lt;/code&amp;gt; || Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;automake&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.16.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/automake&amp;lt;/code&amp;gt; || Automake: GNU Standards-compliant Makefile generator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autotools&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20200321-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20231222-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250527-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/autotools&amp;lt;/code&amp;gt; || This bundle collect the standard GNU build tools: Autoconf, Automake and libtool&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.74.0-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.82.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.85.0-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/boost&amp;lt;/code&amp;gt; || Boost provides free peer-reviewed portable C++ source libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/build&amp;lt;/code&amp;gt; || A simple, correct Python build frontend.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.18.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.18.4-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.20.1-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.23.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.26.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.27.6-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.29.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.31.8-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.0.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/cmake&amp;lt;/code&amp;gt; || CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dbus&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/dbus&amp;lt;/code&amp;gt; || D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;doxygen&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.20-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.7-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.8-gcccore-13.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/doxygen&amp;lt;/code&amp;gt; || Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fonttools&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.53.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.58.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/fonttools&amp;lt;/code&amp;gt; || fontTools is a library for manipulating fonts, written in Python. The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format, which is also called …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gobject-introspection&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.76.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.80.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.84.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/gobject-introspection&amp;lt;/code&amp;gt; || GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate a metadata file, in addition to the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gperf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/gperf&amp;lt;/code&amp;gt; || GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the input …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intltool&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.51.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.51.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.51.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.51.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/intltool&amp;lt;/code&amp;gt; || intltool is a set of tools to centralize translation of many different file formats using GNU gettext-compatible PO files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.18&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.18-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/m4&amp;lt;/code&amp;gt; || GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.3-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/make&amp;lt;/code&amp;gt; || GNU version of make utility&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;makeinfo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.7-gcccore-10.2.0-minimal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/makeinfo&amp;lt;/code&amp;gt; || makeinfo is part of the Texinfo project, the official documentation format of the GNU project. This is a minimal build with very basic functionality. Should only be used for build dependencies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mako&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.10-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.5-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/mako&amp;lt;/code&amp;gt; || A super-fast templating language that borrows the best ideas from the existing templating languages&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ncurses&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/ncurses&amp;lt;/code&amp;gt; || The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses Terminfo format, supports pads and color and multiple highlights and forms …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.45-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.45-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pcre&amp;lt;/code&amp;gt; || The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pcre2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.42-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.43-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.45-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pcre2&amp;lt;/code&amp;gt; || The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.29.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.29.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pkg-config&amp;lt;/code&amp;gt; || pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler options on the command line so an application can use gcc -o test test.c …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgconf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.8.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.3-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pkgconf&amp;lt;/code&amp;gt; || pkgconf is a program which helps to configure compiler and linker flags for development libraries. It is similar to pkg-config from freedesktop.org.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;protobuf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/protobuf&amp;lt;/code&amp;gt; || Protocol Buffers (a.k.a., protobuf) are Google&#039;s language-neutral, platform-neutral, extensible mechanism for serializing structured data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;protobuf-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.24.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/protobuf-python&amp;lt;/code&amp;gt; || Python Protocol Buffers runtime library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyzmq&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;27.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pyzmq&amp;lt;/code&amp;gt; || Python bindings for ZeroMQ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;qt5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.15.10-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/qt5&amp;lt;/code&amp;gt; || Qt is a comprehensive cross-platform C++ application framework.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sqlite&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.33.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.38.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.42.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.43.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.45.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.50.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/sqlite&amp;lt;/code&amp;gt; || SQLite: SQL Database Engine in a C Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xorg-macros&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.19.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/xorg-macros&amp;lt;/code&amp;gt; || X.org macros utilities.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zeromq&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.3.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/zeromq&amp;lt;/code&amp;gt; || ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General Libraries (lib/) (64 software, 194 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;abseil&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230125.3-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/abseil&amp;lt;/code&amp;gt; || Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google&#039;s own C++ code base, has been extensively tested …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;brotli&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.9-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.1.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.1.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/brotli&amp;lt;/code&amp;gt; || Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;catch2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.13.10-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.9-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.9-gcccore-13.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/catch2&amp;lt;/code&amp;gt; || A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cereal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/cereal&amp;lt;/code&amp;gt; || cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;double-conversion&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/double-conversion&amp;lt;/code&amp;gt; || Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;elfutils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.193-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/elfutils&amp;lt;/code&amp;gt; || The elfutils project provides libraries and tools for ELF files and DWARF data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ffnvcodec&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12.0.16.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.2.72.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.0.19.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ffnvcodec&amp;lt;/code&amp;gt; || FFmpeg nvidia headers. Adds support for nvenc and nvdec. Requires Nvidia GPU and drivers to be present (picked up dynamically).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flask&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/flask&amp;lt;/code&amp;gt; || Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. This module includes the Flask …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flexiblas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.1-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.1-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.5-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/flexiblas&amp;lt;/code&amp;gt; || FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation used by a program without recompiling or relinking it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gdrcopy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/gdrcopy&amp;lt;/code&amp;gt; || A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;giflib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/giflib&amp;lt;/code&amp;gt; || giflib is a library for reading and writing gif images. It is API and ABI compatible with libungif which was in wide use while the LZW compression algorithm was patented.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;graphite2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.14-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.14-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.14-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/graphite2&amp;lt;/code&amp;gt; || Graphite is a &amp;quot;smart font&amp;quot; system developed specifically to handle the complexities of lesser-known languages of the world.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;icu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;73.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;75.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;77.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/icu&amp;lt;/code&amp;gt; || icu 73.2-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libaom&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libaom&amp;lt;/code&amp;gt; || libaom 3.10.0-gcccore-14.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libdrm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.115-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.122-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.125-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libdrm&amp;lt;/code&amp;gt; || Direct Rendering Manager runtime library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libevent&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.12-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libevent&amp;lt;/code&amp;gt; || The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libfabric&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.21.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libfabric&amp;lt;/code&amp;gt; || Libfabric is a core component of OFI. It is the library that defines and exports the user-space API of OFI, and is typically the only software that applications deal with directly. It works in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libffi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.5.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libffi&amp;lt;/code&amp;gt; || The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libgd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libgd&amp;lt;/code&amp;gt; || GD is an open source code library for the dynamic creation of images by programmers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libglvnd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.7.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libglvnd&amp;lt;/code&amp;gt; || libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libiconv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.16-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libiconv&amp;lt;/code&amp;gt; || Libiconv converts from one character encoding to another through Unicode conversion&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libidn2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libidn2&amp;lt;/code&amp;gt; || Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libjpeg-turbo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.5.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libjpeg-turbo&amp;lt;/code&amp;gt; || libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libogg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.6-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libogg&amp;lt;/code&amp;gt; || Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libopus&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libopus&amp;lt;/code&amp;gt; || Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpng&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.39-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.40-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.43-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.50-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libpng&amp;lt;/code&amp;gt; || libpng is the official PNG reference library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpsl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.21.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libpsl&amp;lt;/code&amp;gt; || C library for the Public Suffix List&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libreadline&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.1.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libreadline&amp;lt;/code&amp;gt; || The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libsodium&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.20-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libsodium&amp;lt;/code&amp;gt; || Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtiff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.6.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.7.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtiff&amp;lt;/code&amp;gt; || tiff: Library and tools for reading and writing TIFF data files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtommath&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtommath&amp;lt;/code&amp;gt; || LibTomMath is a free open source portable number theoretic multiple-precision integer (MPI) library written entirely in C.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtool&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.6-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtool&amp;lt;/code&amp;gt; || GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libunistring&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libunistring&amp;lt;/code&amp;gt; || This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libunwind&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libunwind&amp;lt;/code&amp;gt; || The primary goal of libunwind is to define a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libvorbis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.7-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libvorbis&amp;lt;/code&amp;gt; || Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libwebp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libwebp&amp;lt;/code&amp;gt; || WebP is a modern image format that provides superior lossless and lossy compression for images on the web. Using WebP, webmasters and web developers can create smaller, richer images that make the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libxml2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.11.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.11.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.7-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.14.3-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.10-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.13-gcccore-11.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libxml2&amp;lt;/code&amp;gt; || Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable outside of the Gnome platform).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libxslt&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.43-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libxslt&amp;lt;/code&amp;gt; || Libxslt is the XSLT C library developed for the GNOME project (but usable outside of the Gnome platform).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libyaml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.2.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.2.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libyaml&amp;lt;/code&amp;gt; || LibYAML is a YAML parser and emitter written in C.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lxml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/lxml&amp;lt;/code&amp;gt; || The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/lz4&amp;lt;/code&amp;gt; || lz4 1.9.2-gcccore-10.2.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mpi4py&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.4-gompi-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.4-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.0.1-gompi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/mpi4py&amp;lt;/code&amp;gt; || MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for the Python programming language, allowing any Python program to exploit multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nccl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.18.3-gcccore-12.3.0-cuda-12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.22.3-gcccore-13.3.0-cuda-12.6.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nccl&amp;lt;/code&amp;gt; || The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective communication primitives that are performance optimized for NVIDIA GPUs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nettle&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nettle&amp;lt;/code&amp;gt; || Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nspr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.35-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.35-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.37-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nspr&amp;lt;/code&amp;gt; || Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.104-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.114-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.89.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nss&amp;lt;/code&amp;gt; || Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openjpeg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/openjpeg&amp;lt;/code&amp;gt; || openjpeg 2.5.0-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pmix&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.5-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.2.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pmix&amp;lt;/code&amp;gt; || Process Management for Exascale Environments PMI Exascale (PMIx) represents an attempt to provide an extended version of the PMI standard specifically designed to support clusters up to and including …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prrte&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.11-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.5-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/prrte&amp;lt;/code&amp;gt; || PRRTE is the PMIx Reference RunTime Environment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;psutil&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;7.0.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/psutil&amp;lt;/code&amp;gt; || A cross-platform process and system utilities module for Python&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pybind11&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.11.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.11.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.0-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.0-gcccore-10.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pybind11&amp;lt;/code&amp;gt; || pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyyaml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pyyaml&amp;lt;/code&amp;gt; || PyYAML is a YAML parser and emitter for the Python programming language.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rocm-core&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.4.0-gcccore-14.3.0-rocm-6.4.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/rocm-core&amp;lt;/code&amp;gt; || ROCm-core is a foundational package that provides ROCm release versioning and installation path information via header files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scikit-build&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.17.6-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17.6-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/scikit-build&amp;lt;/code&amp;gt; || scikit-build 0.17.6-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scikit-build-core&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.10.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.11.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/scikit-build-core&amp;lt;/code&amp;gt; || Scikit-build-core is a complete ground-up rewrite of scikit-build on top of modern packaging APIs. It provides a bridge between CMake and the Python build system, allowing you to make Python modules …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sdl2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.28.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.30.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.32.10-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/sdl2&amp;lt;/code&amp;gt; || SDL: Simple DirectMedia Layer, a cross-platform multimedia library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;snappy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.10-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/snappy&amp;lt;/code&amp;gt; || snappy 1.1.10-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tbb&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2021.11.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2021.13.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/tbb&amp;lt;/code&amp;gt; || Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable, composable and have future-proof …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tornado&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.5.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/tornado&amp;lt;/code&amp;gt; || Tornado is a Python web framework and asynchronous networking library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucc&amp;lt;/code&amp;gt; || UCC (Unified Collective Communication) is a collective communication operations API and library that is flexible, complete, and feature-rich for current and emerging programming models and runtimes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.12.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.0-gcccore-10.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucx&amp;lt;/code&amp;gt; || Unified Communication X An open-source production grade communication framework for data centric and high-performance applications&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucx-cuda&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.14.1-gcccore-12.3.0-cuda-12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0-cuda-12.6.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.0-gcccore-14.3.0-cuda-12.9.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucx-cuda&amp;lt;/code&amp;gt; || Unified Communication X An open-source production grade communication framework for data centric and high-performance applications This module adds the UCX CUDA support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.11&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.11-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.3.2-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/zlib&amp;lt;/code&amp;gt; || zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.5-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.7-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/zstd&amp;lt;/code&amp;gt; || zstd 1.4.5-gcccore-10.2.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General Utilities (tools/) (51 software, 178 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;archspec&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.2.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.2.5-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/archspec&amp;lt;/code&amp;gt; || A library for detecting, labeling, and reasoning about microarchitectures&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.35&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.35-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.38&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.38-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.44&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.44-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/binutils&amp;lt;/code&amp;gt; || binutils: GNU binary utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bzip2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.8-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/bzip2&amp;lt;/code&amp;gt; || bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cffi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cffi&amp;lt;/code&amp;gt; || C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;code-server&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.90.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/code-server&amp;lt;/code&amp;gt; || Run VS Code on any machine anywhere and access it in the browser.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cppy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cppy&amp;lt;/code&amp;gt; || A small C++ header library which makes it easier to write Python extension modules. The primary feature is a PyObject smart pointer which automatically handles reference counting and provides …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cryptography&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;41.0.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41.0.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42.0.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;45.0.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cryptography&amp;lt;/code&amp;gt; || cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;7.72.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7.83.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.0.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.14.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.3.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.7.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/curl&amp;lt;/code&amp;gt; || libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dav1d&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/dav1d&amp;lt;/code&amp;gt; || dav1d is an AV1 cross-platform decoder, open-source, and focused on speed and correctness.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.1.40-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.40-gcccore-11.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/db&amp;lt;/code&amp;gt; || Berkeley DB enables the development of custom data management solutions, without the overhead traditionally associated with such custom projects.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;expat&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.2.9-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.8-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/expat&amp;lt;/code&amp;gt; || Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;expecttest&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1.5-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/expecttest&amp;lt;/code&amp;gt; || This library implements expect tests (also known as &amp;quot;golden&amp;quot; tests). Expect tests are a method of writing tests where instead of hard-coding the expected output of a test, you run the test to get the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.12.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/flit&amp;lt;/code&amp;gt; || A simple packaging tool for simple packages.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gettext&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.25&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.25-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gettext&amp;lt;/code&amp;gt; || GNU &#039;gettext&#039; is an important step for the GNU Translation Project, as it is an asset on which we may build many other steps. This package offers to programmers, translators, and even users, a well …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.28.0-gcccore-10.2.0-nodocs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.41.0-gcccore-12.3.0-nodocs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.50.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/git&amp;lt;/code&amp;gt; || Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;groff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.22.4-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.22.4-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.22.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.23.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.23.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.23.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/groff&amp;lt;/code&amp;gt; || Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands and produces formatted output.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gsd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.4.2-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gsd&amp;lt;/code&amp;gt; || The GSD file format is the native file format for HOOMD-blue. GSD files store trajectories of the HOOMD-blue system state in a binary file with efficient random access to frames. GSD allows all …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gzip&amp;lt;/code&amp;gt; || gzip (GNU zip) is a popular data compression program as a replacement for compress&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hatch-jupyter-builder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.9.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hatch-jupyter-builder&amp;lt;/code&amp;gt; || Hatch Jupyter Builder is a plugin for the hatchling Python build backend. It is primarily targeted for package authors who are providing JavaScript as part of their Python packages. Typical use cases …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hatchling&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.27.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hatchling&amp;lt;/code&amp;gt; || Extensible, standards compliant build backend used by Hatch, a modern, extensible Python project manager.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help2man&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.47.16-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/help2man&amp;lt;/code&amp;gt; || help2man produces simple manual pages from the &#039;--help&#039; and &#039;--version&#039; output of other commands.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hypothesis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.41.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.103.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.82.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.90.0-gcccore-13.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hypothesis&amp;lt;/code&amp;gt; || Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized by a source of examples, and then generates simple and comprehensible examples that make your …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ipython&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.4.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/ipython&amp;lt;/code&amp;gt; || IPython provides a rich architecture for interactive computing with: Powerful interactive shells (terminal and Qt-based). A browser-based notebook with support for code, text, mathematical …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jedi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.19.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jedi&amp;lt;/code&amp;gt; || Jedi - an awesome autocompletion, static analysis and refactoring library for Python.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jupyter-server&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.17.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jupyter-server&amp;lt;/code&amp;gt; || The Jupyter Server provides the backend (i.e. the core services, APIs, and REST endpoints) for Jupyter web applications like Jupyter notebook, JupyterLab, and Voila.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jupyterlab&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.4.9-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jupyterlab&amp;lt;/code&amp;gt; || JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.4.3-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.7.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.7.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libarchive&amp;lt;/code&amp;gt; || Multi-format archive and compression library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libde265&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.16-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libde265&amp;lt;/code&amp;gt; || libde265 is an open source implementation of the h.265 video codec&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libheif&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.20.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libheif&amp;lt;/code&amp;gt; || libheif is an HEIF and AVIF file format decoder and encoder&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.1.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/lit&amp;lt;/code&amp;gt; || lit is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and providing indication of failures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;maturin&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/maturin&amp;lt;/code&amp;gt; || This project is meant as a zero configuration replacement for setuptools-rust and milksnake. It supports building wheels for python 3.5+ on windows, linux, mac and freebsd, can upload them to pypi …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;meson&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.3-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/meson&amp;lt;/code&amp;gt; || Meson is a cross-platform build system designed to be both as fast and as user friendly as possible.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;meson-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.15.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/meson-python&amp;lt;/code&amp;gt; || Python build backend (PEP 517) for Meson projects&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;networkx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gfbf-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/networkx&amp;lt;/code&amp;gt; || NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ninja&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.11.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/ninja&amp;lt;/code&amp;gt; || Ninja is a small build system with a focus on speed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;numactl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.0.13-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.14-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.16-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.18-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.19-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/numactl&amp;lt;/code&amp;gt; || The numactl program allows you to run your application program on specific cpu&#039;s and memory nodes. It does this by supplying a NUMA memory policy to the operating system before running your program. …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;patchelf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/patchelf&amp;lt;/code&amp;gt; || PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;poetry&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/poetry&amp;lt;/code&amp;gt; || Python packaging and dependency management made easy. Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pytest-flakefinder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/pytest-flakefinder&amp;lt;/code&amp;gt; || Runs tests multiple times to expose flakiness.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pytest-rerunfailures&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/pytest-rerunfailures&amp;lt;/code&amp;gt; || pytest plugin to re-run tests to eliminate flaky failures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pytest-shard&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1.2-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/pytest-shard&amp;lt;/code&amp;gt; || pytest plugin to support parallelism across multiple machines. Shards tests based on a hash of their test name enabling easy parallelism across machines, suitable for a wide variety of continuous …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;re2c&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/re2c&amp;lt;/code&amp;gt; || re2c is a free and open-source lexer generator for C and C++. Its main goal is generating fast lexers: at least as fast as their reasonably optimized hand-coded counterparts. Instead of using …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;setuptools-rust&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/setuptools-rust&amp;lt;/code&amp;gt; || setuptools-rust is a plugin for setuptools to build Rust Python extensions implemented with PyO3 or rust-cpython.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;svt-av1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/svt-av1&amp;lt;/code&amp;gt; || svt-av1 3.1.2-gcccore-14.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;szip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.1-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/szip&amp;lt;/code&amp;gt; || Szip compression software, providing lossless compression of scientific data&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;unzip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/unzip&amp;lt;/code&amp;gt; || UnZip is an extraction utility for archives compressed in .zip format (also called &amp;quot;zipfiles&amp;quot;). Although highly compatible both with PKWARE&#039;s PKZIP and PKUNZIP utilities for MS-DOS and with …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.39-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.39-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.41-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/util-linux&amp;lt;/code&amp;gt; || Set of Linux utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;virtualenv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20.23.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.24.6-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.26.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.32.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/virtualenv&amp;lt;/code&amp;gt; || A tool for creating isolated virtual python environments.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xxd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.0.2112-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.1.1275-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.1.1775-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/xxd&amp;lt;/code&amp;gt; || xxd 9.0.2112-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.5-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.5-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.8.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/xz&amp;lt;/code&amp;gt; || xz: XZ utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.12.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.15.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/z3&amp;lt;/code&amp;gt; || Z3 is a theorem prover from Microsoft Research with support for bitvectors, booleans, arrays, floating point numbers, strings, and other data types. This module includes z3-solver, the Python …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Global Aliases (1 software, 1 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;devel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;miniforge&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel&amp;lt;/code&amp;gt; || devel miniforge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Life Sciences &amp;amp; Bioinformatics (bio/) (2 software, 3 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gromacs&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023.3-foss-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;bio/gromacs&amp;lt;/code&amp;gt; || 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. This is a CPU only build, containing …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nest&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.20.2-foss-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;bio/nest&amp;lt;/code&amp;gt; || NEST is a simulator for spiking neural network models that focuses on the dynamics, size and structure of neural systems rather than on the exact morphology of individual neurons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MPI Libraries (mpi/) (3 software, 6 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;impi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2021.13.0-intel-compilers-2024.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/impi&amp;lt;/code&amp;gt; || Intel MPI Library, compatible with MPICH ABI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencoarrays&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.10.2-gompi-2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/opencoarrays&amp;lt;/code&amp;gt; || OpenCoarrays is an open-source software project that supports the coarray Fortran (CAF) parallel programming features of the Fortran 2008 standard and several features proposed for Fortran 2015 in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openmpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.0.5-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1.5-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.3-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.8-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/openmpi&amp;lt;/code&amp;gt; || The Open MPI Project is an open source MPI-3 implementation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mathematics (math/) (13 software, 22 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eigen&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.8-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/eigen&amp;lt;/code&amp;gt; || Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;elpa&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.05.001-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/elpa&amp;lt;/code&amp;gt; || Eigenvalue SoLvers for Petaflop-Applications.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gmp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.2.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/gmp&amp;lt;/code&amp;gt; || GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gmpy2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.5-gcc-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/gmpy2&amp;lt;/code&amp;gt; || gmpy2 2.1.5-gcc-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libcerf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/libcerf&amp;lt;/code&amp;gt; || libcerf is a self-contained numeric library that provides an efficient and accurate implementation of complex error functions, along with Dawson, Faddeeva, and Voigt functions.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mathematica&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;14.2.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mathematica&amp;lt;/code&amp;gt; || Mathematica is a computational software program used in many scientific, engineering, mathematical and computing fields.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matlab&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/matlab&amp;lt;/code&amp;gt; || MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mpc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mpc&amp;lt;/code&amp;gt; || Gnu Mpc is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result. It extends the principles of the IEEE-754 standard for fixed precision …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mpfr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.2.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mpfr&amp;lt;/code&amp;gt; || The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;qhull&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2020.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/qhull&amp;lt;/code&amp;gt; || Qhull computes the convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, furthest-site Delaunay triangulation, and furthest-site Voronoi diagram. The source code …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scafacos&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.4-foss-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.4-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/scafacos&amp;lt;/code&amp;gt; || ScaFaCoS is a library of scalable fast coulomb solvers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sympy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.12-gfbf-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/sympy&amp;lt;/code&amp;gt; || SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;voro++&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.4.6-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.4.6-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/voro++&amp;lt;/code&amp;gt; || Voro++ is a software library for carrying out three-dimensional computations of the Voronoi tessellation. A distinguishing feature of the Voro++ library is that it carries out cell-based …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Numerical Libraries (numlib/) (10 software, 32 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;aocl-blas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.1-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/aocl-blas&amp;lt;/code&amp;gt; || AOCL-BLAS is AMD&#039;s optimized version of BLAS targeted for AMD EPYC and Ryzen CPUs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.9.0-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.9.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.9.0-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/blis&amp;lt;/code&amp;gt; || BLIS is a portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cudnn&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.9.2.26-cuda-12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.15.0.57-cuda-12.9.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/cudnn&amp;lt;/code&amp;gt; || The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fftw&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.10-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.8-gompi-2020b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/fftw&amp;lt;/code&amp;gt; || 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.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fftw.mpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.10-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2024a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/fftw.mpi&amp;lt;/code&amp;gt; || 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.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gsl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.6-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.8-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/gsl&amp;lt;/code&amp;gt; || The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imkl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/imkl&amp;lt;/code&amp;gt; || Intel oneAPI Math Kernel Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imkl-fftw&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0-iimpi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/imkl-fftw&amp;lt;/code&amp;gt; || FFTW interfaces using Intel oneAPI Math Kernel Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openblas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.3.12-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.20-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.23-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.24-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.27-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.30-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/openblas&amp;lt;/code&amp;gt; || OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalapack&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.0-gompi-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gompi-2023a-fb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gompi-2024a-fb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.2-gompi-2025b-fb&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/scalapack&amp;lt;/code&amp;gt; || The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines redesigned for distributed memory MIMD parallel computers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Physics &amp;amp; Materials Science (phys/) (1 software, 1 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hoomd-blue&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.0-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;phys/hoomd-blue&amp;lt;/code&amp;gt; || HOOMD-blue is a general-purpose particle simulation toolkit, implementing molecular dynamics and hard particle Monte Carlo optimized for fast execution on both GPUs and CPUs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Programming Languages &amp;amp; Utilities (lang/) (18 software, 76 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bison&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.7.1-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/bison&amp;lt;/code&amp;gt; || Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cython&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.10-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.10-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.8-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/cython&amp;lt;/code&amp;gt; || Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flex&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.6.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/flex&amp;lt;/code&amp;gt; || Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fribidi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.15-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.16-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/fribidi&amp;lt;/code&amp;gt; || The Free Implementation of the Unicode Bidirectional Algorithm.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;21.0.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/java&amp;lt;/code&amp;gt; || Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lua&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.4.7-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/lua&amp;lt;/code&amp;gt; || Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;miniforge3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.11.3-0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/miniforge3&amp;lt;/code&amp;gt; || Miniforge is a free minimal installer for conda and Mamba specific to conda-forge.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nasm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.16.01-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16.01-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16.03-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16.03-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/nasm&amp;lt;/code&amp;gt; || NASM: General-purpose x86 assembler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nodejs&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.17.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.13.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;22.17.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/nodejs&amp;lt;/code&amp;gt; || nodejs 18.17.1-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.32.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.32.0-gcccore-10.2.0-minimal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.34.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.36.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.40.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/perl&amp;lt;/code&amp;gt; || Larry Wall&#039;s Practical Extraction and Report Language This is a minimal build without any modules. Should only be used for build dependencies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perl-bundle-cpan&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.36.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.40.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/perl-bundle-cpan&amp;lt;/code&amp;gt; || A set of common packages from CPAN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.4-gcccore-11.3.0-bare&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.11.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.12.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.13.5-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.6-gcccore-10.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/python&amp;lt;/code&amp;gt; || Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;python-bundle-pypi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023.06-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023.10-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024.06-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025.07-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/python-bundle-pypi&amp;lt;/code&amp;gt; || Bundle of Python packages from PyPI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rust&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.70.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.73.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.78.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.83.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.88.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/rust&amp;lt;/code&amp;gt; || Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scipy-bundle&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020.11-foss-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023.07-gfbf-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023.11-gfbf-2023b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024.05-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/scipy-bundle&amp;lt;/code&amp;gt; || Bundle of Python packages for scientific software&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tcl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.6.10-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.13-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.14-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/tcl&amp;lt;/code&amp;gt; || Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tkinter&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.11.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.12.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/tkinter&amp;lt;/code&amp;gt; || Tkinter module, built with the Python buildsystem&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;yasm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/yasm&amp;lt;/code&amp;gt; || Yasm: Complete rewrite of the NASM assembler with BSD license&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== System Software (system/) (6 software, 24 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cuda&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;11.5.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11.7.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.6.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.9.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.1.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/cuda&amp;lt;/code&amp;gt; || CUDA (formerly Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hwloc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.10.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/hwloc&amp;lt;/code&amp;gt; || The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libdeflate&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.18-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/libdeflate&amp;lt;/code&amp;gt; || Heavily optimized library for DEFLATE/zlib/gzip compression and decompression.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpciaccess&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.16-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.16-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/libpciaccess&amp;lt;/code&amp;gt; || Generic PCI access library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openpgm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.122-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/openpgm&amp;lt;/code&amp;gt; || OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol that enables …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/openssl&amp;lt;/code&amp;gt; || openssl 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Visualization &amp;amp; Graphics (vis/) (27 software, 63 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assimp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.4.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/assimp&amp;lt;/code&amp;gt; || Open Asset Import Library (assimp) is a library to import and export various 3d-model-formats including scene-post-processing to generate missing render data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cairo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.17.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/cairo&amp;lt;/code&amp;gt; || cairo 1.17.8-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/ffmpeg&amp;lt;/code&amp;gt; || A complete, cross-platform solution to record, convert and stream audio and video.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fontconfig&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.14.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.14.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.15.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.17.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/fontconfig&amp;lt;/code&amp;gt; || Fontconfig is a library designed to provide system-wide font configuration, customization and application access.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;freetype&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.13.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/freetype&amp;lt;/code&amp;gt; || FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;freud-analysis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.1-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/freud-analysis&amp;lt;/code&amp;gt; || The freud Python library provides a simple, flexible, powerful set of tools for analyzing trajectories obtained from molecular dynamics or Monte Carlo simulations. High performance, parallelized C++ …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gdk-pixbuf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.42.12-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/gdk-pixbuf&amp;lt;/code&amp;gt; || The Gdk Pixbuf is a toolkit for image loading and pixel buffer manipulation. It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it was distributed as part of GTK+ 2 but it was …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;glib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.77.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.80.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.85.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/glib&amp;lt;/code&amp;gt; || GLib is one of the base libraries of the GTK+ project&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;harfbuzz&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;11.4.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/harfbuzz&amp;lt;/code&amp;gt; || HarfBuzz is an OpenType text shaping engine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jasper&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.0.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.2.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/jasper&amp;lt;/code&amp;gt; || The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jbigkit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/jbigkit&amp;lt;/code&amp;gt; || JBIG-KIT is a software implementation of the JBIG1 data compression standard (ITU-T T.82), which was designed for bi-level image data, such as scanned documents.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libglu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.0.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/libglu&amp;lt;/code&amp;gt; || The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libvpx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/libvpx&amp;lt;/code&amp;gt; || VPx are open and royalty free video compression formats owned by Google.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;littlecms&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.15-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.15-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/littlecms&amp;lt;/code&amp;gt; || Little CMS intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matplotlib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.8.2-gfbf-2023b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.2-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/matplotlib&amp;lt;/code&amp;gt; || matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mesa&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;23.1.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;24.1.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/mesa&amp;lt;/code&amp;gt; || Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pango&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.54.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pango&amp;lt;/code&amp;gt; || Pango is a library for laying out and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pillow&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.0.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.2.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pillow&amp;lt;/code&amp;gt; || Pillow is the &#039;friendly PIL fork&#039; by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pillow-simd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pillow-simd&amp;lt;/code&amp;gt; || Pillow is the &#039;friendly PIL fork&#039; by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pixman&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.42.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.43.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.46.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pixman&amp;lt;/code&amp;gt; || Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tk&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.6.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.14-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/tk&amp;lt;/code&amp;gt; || Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building a graphical user interface (GUI) in many different programming languages.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;turbovnc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/turbovnc&amp;lt;/code&amp;gt; || TurboVNC is a derivative of VNC (Virtual Network Computing) that is tuned to provide peak performance for 3D and video workloads.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vtk&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.3.0-foss-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/vtk&amp;lt;/code&amp;gt; || volumetric methods; and advanced modeling techniques such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wayland&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.23.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/wayland&amp;lt;/code&amp;gt; || Wayland is a project to define a protocol for a compositor to talk to its clients as well as a library implementation of the protocol. The compositor can be a standalone display server running on …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x11&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230603-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20231019-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20240607-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250608-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x11&amp;lt;/code&amp;gt; || The X Window System (X11) is a windowing system for bitmap displays&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x264&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230226-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20240513-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250831-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x264&amp;lt;/code&amp;gt; || x264 20230226-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x265&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x265&amp;lt;/code&amp;gt; || x265 is a free software library and application for encoding video streams into the H.265 AVC compression format, and is released under the terms of the GNU GPL.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== L40S ==&lt;br /&gt;
&lt;br /&gt;
Available for: &amp;lt;code&amp;gt;l40s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiler Toolchains (toolchain/) (3 software, 5 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gompi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2022a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/gompi&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;iimpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/iimpi&amp;lt;/code&amp;gt; || iimpi 2024a&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/intel&amp;lt;/code&amp;gt; || Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compilers (compiler/) (4 software, 12 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt; || The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gcccore&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/gcccore&amp;lt;/code&amp;gt; || The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intel-compilers&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025.3.3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/intel-compilers&amp;lt;/code&amp;gt; || Intel C, C++ &amp;amp; Fortran compilers (classic and oneAPI)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;llvm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;16.0.6-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/llvm&amp;lt;/code&amp;gt; || The LLVM Core libraries provide a modern source- and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!) These libraries are …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Computational Chemistry (chem/) (2 software, 2 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kim-api&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.0-gcc-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/kim-api&amp;lt;/code&amp;gt; || Open Knowledgebase of Interatomic Models. KIM is an API and OpenKIM is a collection of interatomic models (potentials) for atomistic simulations. This is a library that can be used by simulation …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mdi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.26-gompi-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/mdi&amp;lt;/code&amp;gt; || The MolSSI Driver Interface (MDI) project provides a standardized API for fast, on-the-fly communication between computational chemistry codes. This greatly simplifies the process of implementing …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data Management &amp;amp; Processing (data/) (4 software, 4 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;beautifulsoup&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.14.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/beautifulsoup&amp;lt;/code&amp;gt; || Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.14.0-gompi-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/hdf5&amp;lt;/code&amp;gt; || hdf5 1.14.0-gompi-2023a&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.100-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/lame&amp;lt;/code&amp;gt; || LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;netcdf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.9.2-gompi-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/netcdf&amp;lt;/code&amp;gt; || NetCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Development Tools (devel/) (25 software, 71 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.71&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.72-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.72-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/autoconf&amp;lt;/code&amp;gt; || Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;automake&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.16.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/automake&amp;lt;/code&amp;gt; || Automake: GNU Standards-compliant Makefile generator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autotools&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20220317&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20231222-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250527-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/autotools&amp;lt;/code&amp;gt; || This bundle collect the standard GNU build tools: Autoconf, Automake and libtool&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.82.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.85.0-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/boost&amp;lt;/code&amp;gt; || Boost provides free peer-reviewed portable C++ source libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/build&amp;lt;/code&amp;gt; || A simple, correct Python build frontend.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.18.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.23.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.26.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.29.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.31.8-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.0.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/cmake&amp;lt;/code&amp;gt; || CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dbus&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.8-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/dbus&amp;lt;/code&amp;gt; || D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;doxygen&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.9.7-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/doxygen&amp;lt;/code&amp;gt; || Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fonttools&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.53.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/fonttools&amp;lt;/code&amp;gt; || fontTools is a library for manipulating fonts, written in Python. The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format, which is also called …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gobject-introspection&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.76.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/gobject-introspection&amp;lt;/code&amp;gt; || GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate a metadata file, in addition to the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gperf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/gperf&amp;lt;/code&amp;gt; || GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the input …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intltool&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.51.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/intltool&amp;lt;/code&amp;gt; || intltool is a set of tools to centralize translation of many different file formats using GNU gettext-compatible PO files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.18&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/m4&amp;lt;/code&amp;gt; || GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/make&amp;lt;/code&amp;gt; || GNU version of make utility&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mako&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.4-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/mako&amp;lt;/code&amp;gt; || A super-fast templating language that borrows the best ideas from the existing templating languages&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ncurses&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/ncurses&amp;lt;/code&amp;gt; || The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses Terminfo format, supports pads and color and multiple highlights and forms …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.45-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pcre&amp;lt;/code&amp;gt; || The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pcre2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.42-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.43-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pcre2&amp;lt;/code&amp;gt; || The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgconf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.8.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pkgconf&amp;lt;/code&amp;gt; || pkgconf is a program which helps to configure compiler and linker flags for development libraries. It is similar to pkg-config from freedesktop.org.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;protobuf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/protobuf&amp;lt;/code&amp;gt; || Protocol Buffers (a.k.a., protobuf) are Google&#039;s language-neutral, platform-neutral, extensible mechanism for serializing structured data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;protobuf-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.24.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/protobuf-python&amp;lt;/code&amp;gt; || Python Protocol Buffers runtime library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyzmq&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;27.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pyzmq&amp;lt;/code&amp;gt; || Python bindings for ZeroMQ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sqlite&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.38.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.42.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.45.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.50.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/sqlite&amp;lt;/code&amp;gt; || SQLite: SQL Database Engine in a C Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xorg-macros&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.19.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/xorg-macros&amp;lt;/code&amp;gt; || X.org macros utilities.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zeromq&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.3.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/zeromq&amp;lt;/code&amp;gt; || ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General Libraries (lib/) (53 software, 116 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;abseil&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230125.3-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/abseil&amp;lt;/code&amp;gt; || Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google&#039;s own C++ code base, has been extensively tested …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;brotli&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.9-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/brotli&amp;lt;/code&amp;gt; || Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;catch2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.13.10-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.9-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/catch2&amp;lt;/code&amp;gt; || A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cereal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/cereal&amp;lt;/code&amp;gt; || cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;double-conversion&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/double-conversion&amp;lt;/code&amp;gt; || Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ffnvcodec&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12.0.16.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.0.19.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ffnvcodec&amp;lt;/code&amp;gt; || FFmpeg nvidia headers. Adds support for nvenc and nvdec. Requires Nvidia GPU and drivers to be present (picked up dynamically).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gdrcopy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/gdrcopy&amp;lt;/code&amp;gt; || A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;giflib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/giflib&amp;lt;/code&amp;gt; || giflib is a library for reading and writing gif images. It is API and ABI compatible with libungif which was in wide use while the LZW compression algorithm was patented.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;graphite2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.14-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.14-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/graphite2&amp;lt;/code&amp;gt; || Graphite is a &amp;quot;smart font&amp;quot; system developed specifically to handle the complexities of lesser-known languages of the world.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;icu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;73.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;75.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/icu&amp;lt;/code&amp;gt; || icu 73.2-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libdrm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.115-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libdrm&amp;lt;/code&amp;gt; || Direct Rendering Manager runtime library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libevent&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libevent&amp;lt;/code&amp;gt; || The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libfabric&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.21.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libfabric&amp;lt;/code&amp;gt; || Libfabric is a core component of OFI. It is the library that defines and exports the user-space API of OFI, and is typically the only software that applications deal with directly. It works in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libffi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.4.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.5.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libffi&amp;lt;/code&amp;gt; || The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libglvnd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libglvnd&amp;lt;/code&amp;gt; || libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libiconv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.17-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libiconv&amp;lt;/code&amp;gt; || Libiconv converts from one character encoding to another through Unicode conversion&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libidn2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libidn2&amp;lt;/code&amp;gt; || Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libjpeg-turbo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.5.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libjpeg-turbo&amp;lt;/code&amp;gt; || libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpng&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.39-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libpng&amp;lt;/code&amp;gt; || libpng is the official PNG reference library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpsl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.21.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libpsl&amp;lt;/code&amp;gt; || C library for the Public Suffix List&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libreadline&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.1.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libreadline&amp;lt;/code&amp;gt; || The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libsodium&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.20-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libsodium&amp;lt;/code&amp;gt; || Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtiff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtiff&amp;lt;/code&amp;gt; || tiff: Library and tools for reading and writing TIFF data files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtommath&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtommath&amp;lt;/code&amp;gt; || LibTomMath is a free open source portable number theoretic multiple-precision integer (MPI) library written entirely in C.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtool&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtool&amp;lt;/code&amp;gt; || GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libunistring&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libunistring&amp;lt;/code&amp;gt; || This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libunwind&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libunwind&amp;lt;/code&amp;gt; || The primary goal of libunwind is to define a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libwebp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libwebp&amp;lt;/code&amp;gt; || WebP is a modern image format that provides superior lossless and lossy compression for images on the web. Using WebP, webmasters and web developers can create smaller, richer images that make the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libxml2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.11.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.7-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.14.3-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.13-gcccore-11.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libxml2&amp;lt;/code&amp;gt; || Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable outside of the Gnome platform).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libxslt&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.43-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libxslt&amp;lt;/code&amp;gt; || Libxslt is the XSLT C library developed for the GNOME project (but usable outside of the Gnome platform).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libyaml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.2.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libyaml&amp;lt;/code&amp;gt; || LibYAML is a YAML parser and emitter written in C.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lxml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/lxml&amp;lt;/code&amp;gt; || The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/lz4&amp;lt;/code&amp;gt; || lz4 1.9.3-gcccore-11.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nccl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.18.3-gcccore-12.3.0-cuda-12.1.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nccl&amp;lt;/code&amp;gt; || The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective communication primitives that are performance optimized for NVIDIA GPUs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nspr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.35-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.35-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nspr&amp;lt;/code&amp;gt; || Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.104-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.89.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nss&amp;lt;/code&amp;gt; || Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openjpeg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/openjpeg&amp;lt;/code&amp;gt; || openjpeg 2.5.0-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pmix&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.1.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.2.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pmix&amp;lt;/code&amp;gt; || Process Management for Exascale Environments PMI Exascale (PMIx) represents an attempt to provide an extended version of the PMI standard specifically designed to support clusters up to and including …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prrte&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.11-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.5-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/prrte&amp;lt;/code&amp;gt; || PRRTE is the PMIx Reference RunTime Environment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;psutil&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7.0.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/psutil&amp;lt;/code&amp;gt; || A cross-platform process and system utilities module for Python&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pybind11&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.11.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.0-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pybind11&amp;lt;/code&amp;gt; || pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyyaml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pyyaml&amp;lt;/code&amp;gt; || PyYAML is a YAML parser and emitter for the Python programming language.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scikit-build&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.17.6-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/scikit-build&amp;lt;/code&amp;gt; || scikit-build 0.17.6-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scikit-build-core&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.11.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/scikit-build-core&amp;lt;/code&amp;gt; || Scikit-build-core is a complete ground-up rewrite of scikit-build on top of modern packaging APIs. It provides a bridge between CMake and the Python build system, allowing you to make Python modules …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sdl2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.28.2-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/sdl2&amp;lt;/code&amp;gt; || SDL: Simple DirectMedia Layer, a cross-platform multimedia library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;snappy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.10-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/snappy&amp;lt;/code&amp;gt; || snappy 1.1.10-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tbb&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2021.11.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2021.13.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/tbb&amp;lt;/code&amp;gt; || Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable, composable and have future-proof …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tornado&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.5.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/tornado&amp;lt;/code&amp;gt; || Tornado is a Python web framework and asynchronous networking library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucc&amp;lt;/code&amp;gt; || UCC (Unified Collective Communication) is a collective communication operations API and library that is flexible, complete, and feature-rich for current and emerging programming models and runtimes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.12.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucx&amp;lt;/code&amp;gt; || Unified Communication X An open-source production grade communication framework for data centric and high-performance applications&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucx-cuda&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.14.1-gcccore-12.3.0-cuda-12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0-cuda-12.6.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.0-gcccore-14.3.0-cuda-12.9.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucx-cuda&amp;lt;/code&amp;gt; || Unified Communication X An open-source production grade communication framework for data centric and high-performance applications This module adds the UCX CUDA support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.3.2-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/zlib&amp;lt;/code&amp;gt; || zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.7-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/zstd&amp;lt;/code&amp;gt; || zstd 1.5.2-gcccore-11.3.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General Utilities (tools/) (44 software, 116 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;archspec&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2.5-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/archspec&amp;lt;/code&amp;gt; || A library for detecting, labeling, and reasoning about microarchitectures&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.38&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.38-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.44&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.44-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/binutils&amp;lt;/code&amp;gt; || binutils: GNU binary utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bzip2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.8-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/bzip2&amp;lt;/code&amp;gt; || bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cffi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cffi&amp;lt;/code&amp;gt; || C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cryptography&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;41.0.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42.0.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;45.0.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cryptography&amp;lt;/code&amp;gt; || cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;7.83.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.0.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.14.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.7.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/curl&amp;lt;/code&amp;gt; || libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.1.40-gcccore-11.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/db&amp;lt;/code&amp;gt; || Berkeley DB enables the development of custom data management solutions, without the overhead traditionally associated with such custom projects.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;expat&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.8-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/expat&amp;lt;/code&amp;gt; || Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;expecttest&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1.5-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/expecttest&amp;lt;/code&amp;gt; || This library implements expect tests (also known as &amp;quot;golden&amp;quot; tests). Expect tests are a method of writing tests where instead of hard-coding the expected output of a test, you run the test to get the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.12.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/flit&amp;lt;/code&amp;gt; || A simple packaging tool for simple packages.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gettext&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.25&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.25-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gettext&amp;lt;/code&amp;gt; || GNU &#039;gettext&#039; is an important step for the GNU Translation Project, as it is an asset on which we may build many other steps. This package offers to programmers, translators, and even users, a well …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.41.0-gcccore-12.3.0-nodocs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.50.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/git&amp;lt;/code&amp;gt; || Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;groff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.22.4-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.22.4-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/groff&amp;lt;/code&amp;gt; || Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands and produces formatted output.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gzip&amp;lt;/code&amp;gt; || gzip (GNU zip) is a popular data compression program as a replacement for compress&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hatch-jupyter-builder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.9.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hatch-jupyter-builder&amp;lt;/code&amp;gt; || Hatch Jupyter Builder is a plugin for the hatchling Python build backend. It is primarily targeted for package authors who are providing JavaScript as part of their Python packages. Typical use cases …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hatchling&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.27.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hatchling&amp;lt;/code&amp;gt; || Extensible, standards compliant build backend used by Hatch, a modern, extensible Python project manager.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help2man&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.49.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/help2man&amp;lt;/code&amp;gt; || help2man produces simple manual pages from the &#039;--help&#039; and &#039;--version&#039; output of other commands.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hypothesis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.103.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.82.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hypothesis&amp;lt;/code&amp;gt; || Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized by a source of examples, and then generates simple and comprehensible examples that make your …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ipython&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.4.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/ipython&amp;lt;/code&amp;gt; || IPython provides a rich architecture for interactive computing with: Powerful interactive shells (terminal and Qt-based). A browser-based notebook with support for code, text, mathematical …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jedi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.19.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jedi&amp;lt;/code&amp;gt; || Jedi - an awesome autocompletion, static analysis and refactoring library for Python.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jupyter-server&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.17.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jupyter-server&amp;lt;/code&amp;gt; || The Jupyter Server provides the backend (i.e. the core services, APIs, and REST endpoints) for Jupyter web applications like Jupyter notebook, JupyterLab, and Voila.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jupyterlab&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.4.9-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jupyterlab&amp;lt;/code&amp;gt; || JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.6.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.7.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libarchive&amp;lt;/code&amp;gt; || Multi-format archive and compression library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libde265&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.15-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libde265&amp;lt;/code&amp;gt; || libde265 is an open source implementation of the h.265 video codec&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.1.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/lit&amp;lt;/code&amp;gt; || lit is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and providing indication of failures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;maturin&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/maturin&amp;lt;/code&amp;gt; || This project is meant as a zero configuration replacement for setuptools-rust and milksnake. It supports building wheels for python 3.5+ on windows, linux, mac and freebsd, can upload them to pypi …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;meson&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/meson&amp;lt;/code&amp;gt; || Meson is a cross-platform build system designed to be both as fast and as user friendly as possible.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;meson-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/meson-python&amp;lt;/code&amp;gt; || Python build backend (PEP 517) for Meson projects&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ninja&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/ninja&amp;lt;/code&amp;gt; || Ninja is a small build system with a focus on speed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;numactl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.0.14-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.16-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.18-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.19-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/numactl&amp;lt;/code&amp;gt; || The numactl program allows you to run your application program on specific cpu&#039;s and memory nodes. It does this by supplying a NUMA memory policy to the operating system before running your program. …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;patchelf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/patchelf&amp;lt;/code&amp;gt; || PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;poetry&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/poetry&amp;lt;/code&amp;gt; || Python packaging and dependency management made easy. Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pytest-flakefinder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/pytest-flakefinder&amp;lt;/code&amp;gt; || Runs tests multiple times to expose flakiness.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pytest-rerunfailures&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/pytest-rerunfailures&amp;lt;/code&amp;gt; || pytest plugin to re-run tests to eliminate flaky failures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pytest-shard&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1.2-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/pytest-shard&amp;lt;/code&amp;gt; || pytest plugin to support parallelism across multiple machines. Shards tests based on a hash of their test name enabling easy parallelism across machines, suitable for a wide variety of continuous …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;re2c&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/re2c&amp;lt;/code&amp;gt; || re2c is a free and open-source lexer generator for C and C++. Its main goal is generating fast lexers: at least as fast as their reasonably optimized hand-coded counterparts. Instead of using …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;setuptools-rust&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/setuptools-rust&amp;lt;/code&amp;gt; || setuptools-rust is a plugin for setuptools to build Rust Python extensions implemented with PyO3 or rust-cpython.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;szip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/szip&amp;lt;/code&amp;gt; || Szip compression software, providing lossless compression of scientific data&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;unzip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/unzip&amp;lt;/code&amp;gt; || UnZip is an extraction utility for archives compressed in .zip format (also called &amp;quot;zipfiles&amp;quot;). Although highly compatible both with PKWARE&#039;s PKZIP and PKUNZIP utilities for MS-DOS and with …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.39-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.41-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/util-linux&amp;lt;/code&amp;gt; || Set of Linux utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;virtualenv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20.23.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.26.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.32.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/virtualenv&amp;lt;/code&amp;gt; || A tool for creating isolated virtual python environments.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xxd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.0.2112-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/xxd&amp;lt;/code&amp;gt; || xxd 9.0.2112-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.5-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.8.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/xz&amp;lt;/code&amp;gt; || xz: XZ utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.12.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.15.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/z3&amp;lt;/code&amp;gt; || Z3 is a theorem prover from Microsoft Research with support for bitvectors, booleans, arrays, floating point numbers, strings, and other data types. This module includes z3-solver, the Python …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Global Aliases (1 software, 1 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;devel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;miniforge&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel&amp;lt;/code&amp;gt; || devel miniforge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MPI Libraries (mpi/) (3 software, 5 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;impi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2021.13.0-intel-compilers-2024.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/impi&amp;lt;/code&amp;gt; || Intel MPI Library, compatible with MPICH ABI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencoarrays&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.10.2-gompi-2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/opencoarrays&amp;lt;/code&amp;gt; || OpenCoarrays is an open-source software project that supports the coarray Fortran (CAF) parallel programming features of the Fortran 2008 standard and several features proposed for Fortran 2015 in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openmpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.1.4-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1.5-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.8-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/openmpi&amp;lt;/code&amp;gt; || The Open MPI Project is an open source MPI-3 implementation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mathematics (math/) (8 software, 10 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eigen&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.4.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/eigen&amp;lt;/code&amp;gt; || Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gmp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/gmp&amp;lt;/code&amp;gt; || GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gmpy2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.5-gcc-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/gmpy2&amp;lt;/code&amp;gt; || gmpy2 2.1.5-gcc-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mathematica&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;14.2.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mathematica&amp;lt;/code&amp;gt; || Mathematica is a computational software program used in many scientific, engineering, mathematical and computing fields.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matlab&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/matlab&amp;lt;/code&amp;gt; || MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mpc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mpc&amp;lt;/code&amp;gt; || Gnu Mpc is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result. It extends the principles of the IEEE-754 standard for fixed precision …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mpfr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.2.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mpfr&amp;lt;/code&amp;gt; || The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;voro++&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.4.6-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/voro++&amp;lt;/code&amp;gt; || Voro++ is a software library for carrying out three-dimensional computations of the Voronoi tessellation. A distinguishing feature of the Voro++ library is that it carries out cell-based …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Numerical Libraries (numlib/) (8 software, 17 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;aocl-blas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.1-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/aocl-blas&amp;lt;/code&amp;gt; || AOCL-BLAS is AMD&#039;s optimized version of BLAS targeted for AMD EPYC and Ryzen CPUs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.9.0-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.9.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/blis&amp;lt;/code&amp;gt; || BLIS is a portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cudnn&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.9.2.26-cuda-12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.15.0.57-cuda-12.9.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/cudnn&amp;lt;/code&amp;gt; || The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fftw&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.10-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/fftw&amp;lt;/code&amp;gt; || 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.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fftw.mpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.10-gompi-2022a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/fftw.mpi&amp;lt;/code&amp;gt; || 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.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gsl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.7-gcc-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/gsl&amp;lt;/code&amp;gt; || The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imkl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/imkl&amp;lt;/code&amp;gt; || Intel oneAPI Math Kernel Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imkl-fftw&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0-iimpi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/imkl-fftw&amp;lt;/code&amp;gt; || FFTW interfaces using Intel oneAPI Math Kernel Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Programming Languages &amp;amp; Utilities (lang/) (14 software, 41 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bison&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.8.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/bison&amp;lt;/code&amp;gt; || Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cython&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.10-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/cython&amp;lt;/code&amp;gt; || Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flex&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.6.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/flex&amp;lt;/code&amp;gt; || Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fribidi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.12-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/fribidi&amp;lt;/code&amp;gt; || The Free Implementation of the Unicode Bidirectional Algorithm.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;miniforge3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.11.3-0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/miniforge3&amp;lt;/code&amp;gt; || Miniforge is a free minimal installer for conda and Mamba specific to conda-forge.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nasm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.16.01-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/nasm&amp;lt;/code&amp;gt; || NASM: General-purpose x86 assembler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nodejs&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.17.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.13.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/nodejs&amp;lt;/code&amp;gt; || nodejs 18.17.1-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.34.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.36.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.40.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/perl&amp;lt;/code&amp;gt; || Larry Wall&#039;s Practical Extraction and Report Language This is a minimal build without any modules. Should only be used for build dependencies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perl-bundle-cpan&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.36.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/perl-bundle-cpan&amp;lt;/code&amp;gt; || A set of common packages from CPAN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.4-gcccore-11.3.0-bare&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.12.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.13.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/python&amp;lt;/code&amp;gt; || Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;python-bundle-pypi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023.06-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024.06-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025.07-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/python-bundle-pypi&amp;lt;/code&amp;gt; || Bundle of Python packages from PyPI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rust&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.70.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.78.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.88.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/rust&amp;lt;/code&amp;gt; || Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tcl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.6.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.13-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.14-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/tcl&amp;lt;/code&amp;gt; || Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;yasm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/yasm&amp;lt;/code&amp;gt; || Yasm: Complete rewrite of the NASM assembler with BSD license&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== System Software (system/) (6 software, 19 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cuda&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;11.5.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11.7.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.6.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.9.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.1.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/cuda&amp;lt;/code&amp;gt; || CUDA (formerly Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hwloc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.10.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/hwloc&amp;lt;/code&amp;gt; || The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libdeflate&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.18-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/libdeflate&amp;lt;/code&amp;gt; || Heavily optimized library for DEFLATE/zlib/gzip compression and decompression.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpciaccess&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.16-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/libpciaccess&amp;lt;/code&amp;gt; || Generic PCI access library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openpgm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.122-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/openpgm&amp;lt;/code&amp;gt; || OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol that enables …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/openssl&amp;lt;/code&amp;gt; || openssl 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Visualization &amp;amp; Graphics (vis/) (18 software, 20 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assimp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.4.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/assimp&amp;lt;/code&amp;gt; || Open Asset Import Library (assimp) is a library to import and export various 3d-model-formats including scene-post-processing to generate missing render data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cairo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.17.8-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/cairo&amp;lt;/code&amp;gt; || cairo 1.17.8-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/ffmpeg&amp;lt;/code&amp;gt; || A complete, cross-platform solution to record, convert and stream audio and video.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fontconfig&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.14.2-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/fontconfig&amp;lt;/code&amp;gt; || Fontconfig is a library designed to provide system-wide font configuration, customization and application access.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;freetype&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.13.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/freetype&amp;lt;/code&amp;gt; || FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;glib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.77.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/glib&amp;lt;/code&amp;gt; || GLib is one of the base libraries of the GTK+ project&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;harfbuzz&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/harfbuzz&amp;lt;/code&amp;gt; || HarfBuzz is an OpenType text shaping engine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jasper&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.0.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/jasper&amp;lt;/code&amp;gt; || The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jbigkit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/jbigkit&amp;lt;/code&amp;gt; || JBIG-KIT is a software implementation of the JBIG1 data compression standard (ITU-T T.82), which was designed for bi-level image data, such as scanned documents.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libglu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.0.3-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/libglu&amp;lt;/code&amp;gt; || The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;littlecms&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.15-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/littlecms&amp;lt;/code&amp;gt; || Little CMS intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mesa&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;23.1.4-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/mesa&amp;lt;/code&amp;gt; || Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pillow&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.0.0-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pillow&amp;lt;/code&amp;gt; || Pillow is the &#039;friendly PIL fork&#039; by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pixman&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.42.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.43.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pixman&amp;lt;/code&amp;gt; || Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wayland&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.23.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/wayland&amp;lt;/code&amp;gt; || Wayland is a project to define a protocol for a compositor to talk to its clients as well as a library implementation of the protocol. The compositor can be a standalone display server running on …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x11&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230603-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x11&amp;lt;/code&amp;gt; || The X Window System (X11) is a windowing system for bitmap displays&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x264&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230226-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x264&amp;lt;/code&amp;gt; || x264 20230226-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x265&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.5-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x265&amp;lt;/code&amp;gt; || x265 is a free software library and application for encoding video streams into the H.265 AVC compression format, and is released under the terms of the GNU GPL.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Milan ==&lt;br /&gt;
&lt;br /&gt;
Available for: &amp;lt;code&amp;gt;milan&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compiler Toolchains (toolchain/) (5 software, 15 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;foss&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2022a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/foss&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gfbf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/gfbf&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gompi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2022a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/gompi&amp;lt;/code&amp;gt; || GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;iimpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/iimpi&amp;lt;/code&amp;gt; || iimpi 2024a&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;toolchain/intel&amp;lt;/code&amp;gt; || Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compilers (compiler/) (6 software, 19 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt; || The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gcccore&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/gcccore&amp;lt;/code&amp;gt; || The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;glslang-spirv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15.4.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/glslang-spirv&amp;lt;/code&amp;gt; || Glslang is the official reference compiler front end for the OpenGL ES and OpenGL shading languages. It implements a strict interpretation of the specifications for these languages. It is open and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;go&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.23.6&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/go&amp;lt;/code&amp;gt; || Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intel-compilers&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025.3.3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/intel-compilers&amp;lt;/code&amp;gt; || Intel C, C++ &amp;amp; Fortran compilers (classic and oneAPI)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;llvm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;16.0.6-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-13.3.0-minimal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;compiler/llvm&amp;lt;/code&amp;gt; || The LLVM Core libraries provide a modern source- and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!) These libraries are …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Computational Chemistry (chem/) (9 software, 9 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ase&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.24.0-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/ase&amp;lt;/code&amp;gt; || ASE is a python package providing an open source Atomic Simulation Environment in the Python scripting language. From version 3.20.1 we also include the ase-ext package, it contains optional …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gpaw-setups&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.11.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/gpaw-setups&amp;lt;/code&amp;gt; || PAW setups for the GPAW Density Functional Theory package. Users can install setups manually using &#039;gpaw install-data&#039; or use setups from this package. The versions of GPAW and GPAW-setups can be …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kim-api&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.0-gcc-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/kim-api&amp;lt;/code&amp;gt; || Open Knowledgebase of Interatomic Models. KIM is an API and OpenKIM is a collection of interatomic models (potentials) for atomistic simulations. This is a library that can be used by simulation …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lammps&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2aug2023_update2-foss-2023a-kokkos&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/lammps&amp;lt;/code&amp;gt; || 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 …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libvdwxc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.4.0-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/libvdwxc&amp;lt;/code&amp;gt; || libvdwxc is a general library for evaluating energy and potential for exchange-correlation (XC) functionals from the vdW-DF family that can be used with various of density functional theory (DFT) …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mdi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.26-gompi-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/mdi&amp;lt;/code&amp;gt; || The MolSSI Driver Interface (MDI) project provides a standardized API for fast, on-the-fly communication between computational chemistry codes. This greatly simplifies the process of implementing …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;orca&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.1-gompi-2023a-avx2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/orca&amp;lt;/code&amp;gt; || ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum chemistry with specific emphasis on spectroscopic properties of open-shell molecules. It features a wide variety of …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;plumed&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.9.0-foss-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/plumed&amp;lt;/code&amp;gt; || PLUMED is an open source library for free energy calculations in molecular systems which works together with some of the most popular molecular dynamics engines. Free energy calculations can be …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;spglib-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.5.0-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;chem/spglib-python&amp;lt;/code&amp;gt; || Spglib for Python. Spglib is a library for finding and handling crystal symmetries written in C.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data Management &amp;amp; Processing (data/) (4 software, 8 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;beautifulsoup&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.14.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/beautifulsoup&amp;lt;/code&amp;gt; || Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hdf5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10.7-gompi-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.0-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.5-gompi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/hdf5&amp;lt;/code&amp;gt; || hdf5 1.10.7-gompi-2020b&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.100-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.100-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.100-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/lame&amp;lt;/code&amp;gt; || LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;netcdf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.9.2-gompi-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;data/netcdf&amp;lt;/code&amp;gt; || NetCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Development Tools (devel/) (26 software, 112 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.69-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.71-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.72-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.72-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/autoconf&amp;lt;/code&amp;gt; || Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;automake&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.16.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/automake&amp;lt;/code&amp;gt; || Automake: GNU Standards-compliant Makefile generator&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autotools&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20200321-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20220317-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20231222-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250527-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/autotools&amp;lt;/code&amp;gt; || This bundle collect the standard GNU build tools: Autoconf, Automake and libtool&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.74.0-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.82.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.85.0-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/boost&amp;lt;/code&amp;gt; || Boost provides free peer-reviewed portable C++ source libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/build&amp;lt;/code&amp;gt; || A simple, correct Python build frontend.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.18.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.18.4-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.20.1-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.23.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.26.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.27.6-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.29.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.31.8-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.0.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/cmake&amp;lt;/code&amp;gt; || CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dbus&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/dbus&amp;lt;/code&amp;gt; || D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;doxygen&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.20-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.7-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.8-gcccore-13.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/doxygen&amp;lt;/code&amp;gt; || Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fonttools&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.53.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.58.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/fonttools&amp;lt;/code&amp;gt; || fontTools is a library for manipulating fonts, written in Python. The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format, which is also called …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gobject-introspection&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.76.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.80.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.84.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/gobject-introspection&amp;lt;/code&amp;gt; || GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate a metadata file, in addition to the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gperf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/gperf&amp;lt;/code&amp;gt; || GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the input …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;intltool&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.51.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.51.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.51.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.51.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/intltool&amp;lt;/code&amp;gt; || intltool is a set of tools to centralize translation of many different file formats using GNU gettext-compatible PO files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.18&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.18-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.19-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.20-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/m4&amp;lt;/code&amp;gt; || GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.3-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.4.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/make&amp;lt;/code&amp;gt; || GNU version of make utility&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;makeinfo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.7-gcccore-10.2.0-minimal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/makeinfo&amp;lt;/code&amp;gt; || makeinfo is part of the Texinfo project, the official documentation format of the GNU project. This is a minimal build with very basic functionality. Should only be used for build dependencies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mako&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.10-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.5-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/mako&amp;lt;/code&amp;gt; || A super-fast templating language that borrows the best ideas from the existing templating languages&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ncurses&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/ncurses&amp;lt;/code&amp;gt; || The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses Terminfo format, supports pads and color and multiple highlights and forms …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.45-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pcre&amp;lt;/code&amp;gt; || The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pcre2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.42-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.43-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.45-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pcre2&amp;lt;/code&amp;gt; || The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.29.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.29.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pkg-config&amp;lt;/code&amp;gt; || pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler options on the command line so an application can use gcc -o test test.c …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgconf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.8.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.3-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pkgconf&amp;lt;/code&amp;gt; || pkgconf is a program which helps to configure compiler and linker flags for development libraries. It is similar to pkg-config from freedesktop.org.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyzmq&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;27.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/pyzmq&amp;lt;/code&amp;gt; || Python bindings for ZeroMQ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;qt5&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.15.10-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/qt5&amp;lt;/code&amp;gt; || Qt is a comprehensive cross-platform C++ application framework.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sqlite&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.33.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.38.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.42.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.43.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.45.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.50.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/sqlite&amp;lt;/code&amp;gt; || SQLite: SQL Database Engine in a C Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xorg-macros&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.19.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/xorg-macros&amp;lt;/code&amp;gt; || X.org macros utilities.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zeromq&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.3.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel/zeromq&amp;lt;/code&amp;gt; || ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General Libraries (lib/) (59 software, 179 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;brotli&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.9-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.1.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.1.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/brotli&amp;lt;/code&amp;gt; || Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;catch2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.13.10-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.9-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.9-gcccore-13.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/catch2&amp;lt;/code&amp;gt; || A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cereal&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/cereal&amp;lt;/code&amp;gt; || cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;double-conversion&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/double-conversion&amp;lt;/code&amp;gt; || Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;elfutils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.193-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/elfutils&amp;lt;/code&amp;gt; || The elfutils project provides libraries and tools for ELF files and DWARF data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ffnvcodec&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12.0.16.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12.2.72.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13.0.19.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ffnvcodec&amp;lt;/code&amp;gt; || FFmpeg nvidia headers. Adds support for nvenc and nvdec. Requires Nvidia GPU and drivers to be present (picked up dynamically).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flask&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/flask&amp;lt;/code&amp;gt; || Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. This module includes the Flask …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flexiblas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.2.0-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.1-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.1-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.5-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/flexiblas&amp;lt;/code&amp;gt; || FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation used by a program without recompiling or relinking it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;giflib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/giflib&amp;lt;/code&amp;gt; || giflib is a library for reading and writing gif images. It is API and ABI compatible with libungif which was in wide use while the LZW compression algorithm was patented.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;graphite2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.14-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.14-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.14-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/graphite2&amp;lt;/code&amp;gt; || Graphite is a &amp;quot;smart font&amp;quot; system developed specifically to handle the complexities of lesser-known languages of the world.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;icu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;73.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;75.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;77.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/icu&amp;lt;/code&amp;gt; || icu 73.2-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libaom&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libaom&amp;lt;/code&amp;gt; || libaom 3.10.0-gcccore-14.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libdrm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.115-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.122-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.125-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libdrm&amp;lt;/code&amp;gt; || Direct Rendering Manager runtime library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libevent&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.12-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.12-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libevent&amp;lt;/code&amp;gt; || The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libfabric&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.21.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libfabric&amp;lt;/code&amp;gt; || Libfabric is a core component of OFI. It is the library that defines and exports the user-space API of OFI, and is typically the only software that applications deal with directly. It works in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libffi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.5.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libffi&amp;lt;/code&amp;gt; || The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libgd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libgd&amp;lt;/code&amp;gt; || GD is an open source code library for the dynamic creation of images by programmers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libglvnd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.7.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libglvnd&amp;lt;/code&amp;gt; || libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libiconv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.16-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libiconv&amp;lt;/code&amp;gt; || Libiconv converts from one character encoding to another through Unicode conversion&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libidn2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.3.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libidn2&amp;lt;/code&amp;gt; || Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libjpeg-turbo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.5.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libjpeg-turbo&amp;lt;/code&amp;gt; || libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libogg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.6-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libogg&amp;lt;/code&amp;gt; || Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libopus&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libopus&amp;lt;/code&amp;gt; || Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpng&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.39-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.40-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.43-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.50-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libpng&amp;lt;/code&amp;gt; || libpng is the official PNG reference library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpsl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.21.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libpsl&amp;lt;/code&amp;gt; || C library for the Public Suffix List&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libreadline&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.1.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libreadline&amp;lt;/code&amp;gt; || The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libsodium&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.20-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libsodium&amp;lt;/code&amp;gt; || Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtiff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.6.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.7.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtiff&amp;lt;/code&amp;gt; || tiff: Library and tools for reading and writing TIFF data files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtommath&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtommath&amp;lt;/code&amp;gt; || LibTomMath is a free open source portable number theoretic multiple-precision integer (MPI) library written entirely in C.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libtool&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4.6-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.7-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libtool&amp;lt;/code&amp;gt; || GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libunistring&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libunistring&amp;lt;/code&amp;gt; || This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libunwind&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libunwind&amp;lt;/code&amp;gt; || The primary goal of libunwind is to define a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libvorbis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.7-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libvorbis&amp;lt;/code&amp;gt; || Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libwebp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libwebp&amp;lt;/code&amp;gt; || WebP is a modern image format that provides superior lossless and lossy compression for images on the web. Using WebP, webmasters and web developers can create smaller, richer images that make the …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libxml2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.11.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.11.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.7-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.14.3-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.10-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.13-gcccore-11.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libxml2&amp;lt;/code&amp;gt; || Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable outside of the Gnome platform).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libxslt&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.43-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libxslt&amp;lt;/code&amp;gt; || Libxslt is the XSLT C library developed for the GNOME project (but usable outside of the Gnome platform).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libyaml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.2.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/libyaml&amp;lt;/code&amp;gt; || LibYAML is a YAML parser and emitter written in C.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lxml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/lxml&amp;lt;/code&amp;gt; || The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.3-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/lz4&amp;lt;/code&amp;gt; || lz4 1.9.2-gcccore-10.2.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mpi4py&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.4-gompi-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.4-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.0.1-gompi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/mpi4py&amp;lt;/code&amp;gt; || MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for the Python programming language, allowing any Python program to exploit multiple processors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nettle&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nettle&amp;lt;/code&amp;gt; || Nettle is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nspr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.35-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.35-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.37-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nspr&amp;lt;/code&amp;gt; || Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.104-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.114-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.89.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/nss&amp;lt;/code&amp;gt; || Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openjpeg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.5.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/openjpeg&amp;lt;/code&amp;gt; || openjpeg 2.5.0-gcccore-13.2.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pmix&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.5-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.2.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pmix&amp;lt;/code&amp;gt; || Process Management for Exascale Environments PMI Exascale (PMIx) represents an attempt to provide an extended version of the PMI standard specifically designed to support clusters up to and including …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prrte&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.11-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.5-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/prrte&amp;lt;/code&amp;gt; || PRRTE is the PMIx Reference RunTime Environment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;psutil&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;7.0.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/psutil&amp;lt;/code&amp;gt; || A cross-platform process and system utilities module for Python&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pybind11&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.11.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.11.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.0-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.0-gcccore-10.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pybind11&amp;lt;/code&amp;gt; || pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pyyaml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/pyyaml&amp;lt;/code&amp;gt; || PyYAML is a YAML parser and emitter for the Python programming language.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scikit-build&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.17.6-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17.6-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/scikit-build&amp;lt;/code&amp;gt; || scikit-build 0.17.6-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scikit-build-core&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.10.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.11.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/scikit-build-core&amp;lt;/code&amp;gt; || Scikit-build-core is a complete ground-up rewrite of scikit-build on top of modern packaging APIs. It provides a bridge between CMake and the Python build system, allowing you to make Python modules …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sdl2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.28.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.30.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.32.10-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/sdl2&amp;lt;/code&amp;gt; || SDL: Simple DirectMedia Layer, a cross-platform multimedia library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;snappy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.10-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/snappy&amp;lt;/code&amp;gt; || snappy 1.1.10-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tbb&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2021.11.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2021.13.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/tbb&amp;lt;/code&amp;gt; || Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable, composable and have future-proof …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tornado&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.5.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/tornado&amp;lt;/code&amp;gt; || Tornado is a Python web framework and asynchronous networking library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucc&amp;lt;/code&amp;gt; || UCC (Unified Collective Communication) is a collective communication operations API and library that is flexible, complete, and feature-rich for current and emerging programming models and runtimes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ucx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.12.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.19.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.0-gcccore-10.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/ucx&amp;lt;/code&amp;gt; || Unified Communication X An open-source production grade communication framework for data centric and high-performance applications&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.11&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.11-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.3.2-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/zlib&amp;lt;/code&amp;gt; || zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.4.5-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.5.7-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lib/zstd&amp;lt;/code&amp;gt; || zstd 1.4.5-gcccore-10.2.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General Utilities (tools/) (47 software, 168 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;archspec&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2.5-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/archspec&amp;lt;/code&amp;gt; || A library for detecting, labeling, and reasoning about microarchitectures&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.35&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.35-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.38&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.38-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.44&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.44-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/binutils&amp;lt;/code&amp;gt; || binutils: GNU binary utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bzip2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.8-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/bzip2&amp;lt;/code&amp;gt; || bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cffi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.15.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.17.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cffi&amp;lt;/code&amp;gt; || C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;code-server&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.90.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/code-server&amp;lt;/code&amp;gt; || Run VS Code on any machine anywhere and access it in the browser.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cppy&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.2.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cppy&amp;lt;/code&amp;gt; || A small C++ header library which makes it easier to write Python extension modules. The primary feature is a PyObject smart pointer which automatically handles reference counting and provides …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cryptography&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;41.0.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;41.0.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;42.0.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;45.0.5-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/cryptography&amp;lt;/code&amp;gt; || cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;7.72.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7.83.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.0.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.14.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.3.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.7.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/curl&amp;lt;/code&amp;gt; || libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dav1d&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/dav1d&amp;lt;/code&amp;gt; || dav1d is an AV1 cross-platform decoder, open-source, and focused on speed and correctness.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.1.40-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.40-gcccore-11.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/db&amp;lt;/code&amp;gt; || Berkeley DB enables the development of custom data management solutions, without the overhead traditionally associated with such custom projects.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;expat&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.2.9-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.4.8-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.5.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/expat&amp;lt;/code&amp;gt; || Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.12.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/flit&amp;lt;/code&amp;gt; || A simple packaging tool for simple packages.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gettext&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.21&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.21.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.22.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.25&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.25-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gettext&amp;lt;/code&amp;gt; || GNU &#039;gettext&#039; is an important step for the GNU Translation Project, as it is an asset on which we may build many other steps. This package offers to programmers, translators, and even users, a well …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.28.0-gcccore-10.2.0-nodocs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.41.0-gcccore-12.3.0-nodocs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.42.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.45.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.50.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/git&amp;lt;/code&amp;gt; || Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;groff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.22.4-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.22.4-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.22.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.23.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.23.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.23.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/groff&amp;lt;/code&amp;gt; || Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands and produces formatted output.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gsd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.4.2-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gsd&amp;lt;/code&amp;gt; || The GSD file format is the native file format for HOOMD-blue. GSD files store trajectories of the HOOMD-blue system state in a binary file with efficient random access to frames. GSD allows all …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.10-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.14-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/gzip&amp;lt;/code&amp;gt; || gzip (GNU zip) is a popular data compression program as a replacement for compress&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hatch-jupyter-builder&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.9.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hatch-jupyter-builder&amp;lt;/code&amp;gt; || Hatch Jupyter Builder is a plugin for the hatchling Python build backend. It is primarily targeted for package authors who are providing JavaScript as part of their Python packages. Typical use cases …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hatchling&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.27.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hatchling&amp;lt;/code&amp;gt; || Extensible, standards compliant build backend used by Hatch, a modern, extensible Python project manager.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help2man&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.47.16-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.49.3-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/help2man&amp;lt;/code&amp;gt; || help2man produces simple manual pages from the &#039;--help&#039; and &#039;--version&#039; output of other commands.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hypothesis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.41.2-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.103.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.82.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.90.0-gcccore-13.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/hypothesis&amp;lt;/code&amp;gt; || Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized by a source of examples, and then generates simple and comprehensible examples that make your …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ipython&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.4.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/ipython&amp;lt;/code&amp;gt; || IPython provides a rich architecture for interactive computing with: Powerful interactive shells (terminal and Qt-based). A browser-based notebook with support for code, text, mathematical …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jedi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.19.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jedi&amp;lt;/code&amp;gt; || Jedi - an awesome autocompletion, static analysis and refactoring library for Python.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jupyter-server&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.17.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jupyter-server&amp;lt;/code&amp;gt; || The Jupyter Server provides the backend (i.e. the core services, APIs, and REST endpoints) for Jupyter web applications like Jupyter notebook, JupyterLab, and Voila.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jupyterlab&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.4.9-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/jupyterlab&amp;lt;/code&amp;gt; || JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libarchive&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.4.3-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.7.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.7.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libarchive&amp;lt;/code&amp;gt; || Multi-format archive and compression library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libde265&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.16-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libde265&amp;lt;/code&amp;gt; || libde265 is an open source implementation of the h.265 video codec&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libheif&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.20.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/libheif&amp;lt;/code&amp;gt; || libheif is an HEIF and AVIF file format decoder and encoder&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.1.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;18.1.8-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/lit&amp;lt;/code&amp;gt; || lit is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and providing indication of failures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;maturin&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/maturin&amp;lt;/code&amp;gt; || This project is meant as a zero configuration replacement for setuptools-rust and milksnake. It supports building wheels for python 3.5+ on windows, linux, mac and freebsd, can upload them to pypi …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;meson&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.2.3-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/meson&amp;lt;/code&amp;gt; || Meson is a cross-platform build system designed to be both as fast and as user friendly as possible.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;meson-python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.15.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.16.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/meson-python&amp;lt;/code&amp;gt; || Python build backend (PEP 517) for Meson projects&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;networkx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gfbf-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/networkx&amp;lt;/code&amp;gt; || NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ninja&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.11.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.12.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.13.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/ninja&amp;lt;/code&amp;gt; || Ninja is a small build system with a focus on speed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;numactl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.0.13-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.14-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.16-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.18-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0.19-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/numactl&amp;lt;/code&amp;gt; || The numactl program allows you to run your application program on specific cpu&#039;s and memory nodes. It does this by supplying a NUMA memory policy to the operating system before running your program. …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;patchelf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.18.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/patchelf&amp;lt;/code&amp;gt; || PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;poetry&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/poetry&amp;lt;/code&amp;gt; || Python packaging and dependency management made easy. Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;re2c&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/re2c&amp;lt;/code&amp;gt; || re2c is a free and open-source lexer generator for C and C++. Its main goal is generating fast lexers: at least as fast as their reasonably optimized hand-coded counterparts. Instead of using …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;setuptools-rust&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.11.0-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.8.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.9.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/setuptools-rust&amp;lt;/code&amp;gt; || setuptools-rust is a plugin for setuptools to build Rust Python extensions implemented with PyO3 or rust-cpython.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;svt-av1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/svt-av1&amp;lt;/code&amp;gt; || svt-av1 3.1.2-gcccore-14.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;szip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.1-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1.1-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/szip&amp;lt;/code&amp;gt; || Szip compression software, providing lossless compression of scientific data&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;unzip&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/unzip&amp;lt;/code&amp;gt; || UnZip is an extraction utility for archives compressed in .zip format (also called &amp;quot;zipfiles&amp;quot;). Although highly compatible both with PKWARE&#039;s PKZIP and PKUNZIP utilities for MS-DOS and with …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.39-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.39-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.40-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.41-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/util-linux&amp;lt;/code&amp;gt; || Set of Linux utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;virtualenv&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20.23.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.24.6-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.26.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.32.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/virtualenv&amp;lt;/code&amp;gt; || A tool for creating isolated virtual python environments.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xxd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.0.2112-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/xxd&amp;lt;/code&amp;gt; || xxd 9.0.2112-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.5-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.5-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.4.5-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.8.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/xz&amp;lt;/code&amp;gt; || xz: XZ utilities&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;z3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.15.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;tools/z3&amp;lt;/code&amp;gt; || Z3 is a theorem prover from Microsoft Research with support for bitvectors, booleans, arrays, floating point numbers, strings, and other data types. This module includes z3-solver, the Python …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Global Aliases (1 software, 1 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;devel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;miniforge&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;devel&amp;lt;/code&amp;gt; || devel miniforge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Life Sciences &amp;amp; Bioinformatics (bio/) (2 software, 3 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gromacs&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023.3-foss-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;bio/gromacs&amp;lt;/code&amp;gt; || 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. This is a CPU only build, containing …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nest&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.20.2-foss-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;bio/nest&amp;lt;/code&amp;gt; || NEST is a simulator for spiking neural network models that focuses on the dynamics, size and structure of neural systems rather than on the exact morphology of individual neurons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MPI Libraries (mpi/) (3 software, 7 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;impi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2021.13.0-intel-compilers-2024.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/impi&amp;lt;/code&amp;gt; || Intel MPI Library, compatible with MPICH ABI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencoarrays&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.10.2-gompi-2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/opencoarrays&amp;lt;/code&amp;gt; || OpenCoarrays is an open-source software project that supports the coarray Fortran (CAF) parallel programming features of the Fortran 2008 standard and several features proposed for Fortran 2015 in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openmpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.0.5-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1.4-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1.5-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.3-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0.8-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mpi/openmpi&amp;lt;/code&amp;gt; || The Open MPI Project is an open source MPI-3 implementation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mathematics (math/) (9 software, 15 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eigen&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.8-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/eigen&amp;lt;/code&amp;gt; || Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;elpa&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.05.001-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/elpa&amp;lt;/code&amp;gt; || Eigenvalue SoLvers for Petaflop-Applications.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gmp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.2.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.2.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/gmp&amp;lt;/code&amp;gt; || GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libcerf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/libcerf&amp;lt;/code&amp;gt; || libcerf is a self-contained numeric library that provides an efficient and accurate implementation of complex error functions, along with Dawson, Faddeeva, and Voigt functions.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mathematica&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;14.2.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/mathematica&amp;lt;/code&amp;gt; || Mathematica is a computational software program used in many scientific, engineering, mathematical and computing fields.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matlab&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/matlab&amp;lt;/code&amp;gt; || MATLAB is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;qhull&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2020.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/qhull&amp;lt;/code&amp;gt; || Qhull computes the convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, furthest-site Delaunay triangulation, and furthest-site Voronoi diagram. The source code …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scafacos&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.4-foss-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/scafacos&amp;lt;/code&amp;gt; || ScaFaCoS is a library of scalable fast coulomb solvers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;voro++&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.4.6-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;math/voro++&amp;lt;/code&amp;gt; || Voro++ is a software library for carrying out three-dimensional computations of the Voronoi tessellation. A distinguishing feature of the Voro++ library is that it carries out cell-based …&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Numerical Libraries (numlib/) (9 software, 32 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;aocl-blas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.1-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/aocl-blas&amp;lt;/code&amp;gt; || AOCL-BLAS is AMD&#039;s optimized version of BLAS targeted for AMD EPYC and Ryzen CPUs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.9.0-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.9.0-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.9.0-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.0-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/blis&amp;lt;/code&amp;gt; || BLIS is a portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fftw&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.10-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gcc-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.8-gompi-2020b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/fftw&amp;lt;/code&amp;gt; || 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.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fftw.mpi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.10-gompi-2022a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2024a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.3.10-gompi-2025b&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/fftw.mpi&amp;lt;/code&amp;gt; || 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.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gsl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.6-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.8-gcc-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/gsl&amp;lt;/code&amp;gt; || The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imkl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/imkl&amp;lt;/code&amp;gt; || Intel oneAPI Math Kernel Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imkl-fftw&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2024.2.0-iimpi-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/imkl-fftw&amp;lt;/code&amp;gt; || FFTW interfaces using Intel oneAPI Math Kernel Library&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openblas&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.3.12-gcc-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.20-gcc-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.23-gcc-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.24-gcc-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.27-gcc-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.3.30-gcc-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/openblas&amp;lt;/code&amp;gt; || OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scalapack&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1.0-gompi-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gompi-2022a-fb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gompi-2023a-fb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gompi-2024a-fb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.2-gompi-2025b-fb&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;numlib/scalapack&amp;lt;/code&amp;gt; || The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines redesigned for distributed memory MIMD parallel computers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Physics &amp;amp; Materials Science (phys/) (1 software, 1 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hoomd-blue&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.0-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;phys/hoomd-blue&amp;lt;/code&amp;gt; || HOOMD-blue is a general-purpose particle simulation toolkit, implementing molecular dynamics and hard particle Monte Carlo optimized for fast execution on both GPUs and CPUs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Programming Languages &amp;amp; Utilities (lang/) (18 software, 76 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bison&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.7.1-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.2-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/bison&amp;lt;/code&amp;gt; || Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cython&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.0.10-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.10-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.8-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.1.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/cython&amp;lt;/code&amp;gt; || Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flex&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.6.4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.6.4-gcccore-15.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/flex&amp;lt;/code&amp;gt; || Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fribidi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0.12-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.15-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0.16-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/fribidi&amp;lt;/code&amp;gt; || The Free Implementation of the Unicode Bidirectional Algorithm.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;21.0.2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/java&amp;lt;/code&amp;gt; || Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lua&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.4.7-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/lua&amp;lt;/code&amp;gt; || Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;miniforge3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24.11.3-0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/miniforge3&amp;lt;/code&amp;gt; || Miniforge is a free minimal installer for conda and Mamba specific to conda-forge.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nasm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.16.01-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16.01-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16.03-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16.03-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/nasm&amp;lt;/code&amp;gt; || NASM: General-purpose x86 assembler&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nodejs&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;18.17.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20.13.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;22.17.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/nodejs&amp;lt;/code&amp;gt; || nodejs 18.17.1-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.32.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.32.0-gcccore-10.2.0-minimal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.34.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.36.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.40.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/perl&amp;lt;/code&amp;gt; || Larry Wall&#039;s Practical Extraction and Report Language This is a minimal build without any modules. Should only be used for build dependencies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;perl-bundle-cpan&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.36.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.38.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.40.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/perl-bundle-cpan&amp;lt;/code&amp;gt; || A set of common packages from CPAN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.10.4-gcccore-11.3.0-bare&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.11.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.12.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.13.5-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.8.6-gcccore-10.2.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/python&amp;lt;/code&amp;gt; || Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;python-bundle-pypi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2023.06-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023.10-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024.06-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2025.07-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/python-bundle-pypi&amp;lt;/code&amp;gt; || Bundle of Python packages from PyPI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rust&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.70.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.73.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.78.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.83.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.88.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/rust&amp;lt;/code&amp;gt; || Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;scipy-bundle&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2020.11-foss-2020b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023.07-gfbf-2023a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2023.11-gfbf-2023b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2024.05-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/scipy-bundle&amp;lt;/code&amp;gt; || Bundle of Python packages for scientific software&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tcl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.6.10-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.12-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.13-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.14-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/tcl&amp;lt;/code&amp;gt; || Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tkinter&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.11.5-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.12.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/tkinter&amp;lt;/code&amp;gt; || Tkinter module, built with the Python buildsystem&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;yasm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.3.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.3.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;lang/yasm&amp;lt;/code&amp;gt; || Yasm: Complete rewrite of the NASM assembler with BSD license&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== System Software (system/) (6 software, 18 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cuda&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12.9.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/cuda&amp;lt;/code&amp;gt; || CUDA (formerly Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hwloc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.10.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.12.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.2.0-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.7.1-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.9.1-gcccore-12.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/hwloc&amp;lt;/code&amp;gt; || The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libdeflate&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.19-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.20-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/libdeflate&amp;lt;/code&amp;gt; || Heavily optimized library for DEFLATE/zlib/gzip compression and decompression.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libpciaccess&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.16-gcccore-10.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.16-gcccore-11.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.17-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.18.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/libpciaccess&amp;lt;/code&amp;gt; || Generic PCI access library.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openpgm&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.2.122-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/openpgm&amp;lt;/code&amp;gt; || OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol that enables …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;system/openssl&amp;lt;/code&amp;gt; || openssl 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Visualization &amp;amp; Graphics (vis/) (27 software, 60 versions) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Software !! Versions !! Module path !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assimp&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5.4.3-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6.0.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/assimp&amp;lt;/code&amp;gt; || Open Asset Import Library (assimp) is a library to import and export various 3d-model-formats including scene-post-processing to generate missing render data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cairo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.17.8-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.18.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/cairo&amp;lt;/code&amp;gt; || cairo 1.17.8-gcccore-12.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7.0.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/ffmpeg&amp;lt;/code&amp;gt; || A complete, cross-platform solution to record, convert and stream audio and video.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fontconfig&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.14.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.14.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.15.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.17.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/fontconfig&amp;lt;/code&amp;gt; || Fontconfig is a library designed to provide system-wide font configuration, customization and application access.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;freetype&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.13.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.2-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.2-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.13.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/freetype&amp;lt;/code&amp;gt; || FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;freud-analysis&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.3.1-foss-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/freud-analysis&amp;lt;/code&amp;gt; || The freud Python library provides a simple, flexible, powerful set of tools for analyzing trajectories obtained from molecular dynamics or Monte Carlo simulations. High performance, parallelized C++ …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gdk-pixbuf&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.42.12-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/gdk-pixbuf&amp;lt;/code&amp;gt; || The Gdk Pixbuf is a toolkit for image loading and pixel buffer manipulation. It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it was distributed as part of GTK+ 2 but it was …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;glib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.77.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.80.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.85.3-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/glib&amp;lt;/code&amp;gt; || GLib is one of the base libraries of the GTK+ project&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;harfbuzz&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;11.4.1-gcccore-14.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.3.1-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/harfbuzz&amp;lt;/code&amp;gt; || HarfBuzz is an OpenType text shaping engine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jasper&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4.0.0-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.2.4-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/jasper&amp;lt;/code&amp;gt; || The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jbigkit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.1-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/jbigkit&amp;lt;/code&amp;gt; || JBIG-KIT is a software implementation of the JBIG1 data compression standard (ITU-T T.82), which was designed for bi-level image data, such as scanned documents.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libglu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.0.3-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9.0.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/libglu&amp;lt;/code&amp;gt; || The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;libvpx&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.15.2-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/libvpx&amp;lt;/code&amp;gt; || VPx are open and royalty free video compression formats owned by Google.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;littlecms&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.15-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2.16-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/littlecms&amp;lt;/code&amp;gt; || Little CMS intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matplotlib&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.8.2-gfbf-2023b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.9.2-gfbf-2024a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/matplotlib&amp;lt;/code&amp;gt; || matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mesa&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;23.1.4-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;24.1.3-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/mesa&amp;lt;/code&amp;gt; || Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pango&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.54.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pango&amp;lt;/code&amp;gt; || Pango is a library for laying out and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pillow&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.2.0-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pillow&amp;lt;/code&amp;gt; || Pillow is the &#039;friendly PIL fork&#039; by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pillow-simd&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;10.4.0-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pillow-simd&amp;lt;/code&amp;gt; || Pillow is the &#039;friendly PIL fork&#039; by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pixman&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.42.2-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.43.4-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.46.4-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/pixman&amp;lt;/code&amp;gt; || Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tk&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8.6.13-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8.6.14-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/tk&amp;lt;/code&amp;gt; || Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building a graphical user interface (GUI) in many different programming languages.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;turbovnc&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.1.2-gcccore-13.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/turbovnc&amp;lt;/code&amp;gt; || TurboVNC is a derivative of VNC (Virtual Network Computing) that is tuned to provide peak performance for 3D and video workloads.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vtk&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;9.3.0-foss-2023a&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/vtk&amp;lt;/code&amp;gt; || volumetric methods; and advanced modeling techniques such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wayland&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.23.0-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.24.0-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/wayland&amp;lt;/code&amp;gt; || Wayland is a project to define a protocol for a compositor to talk to its clients as well as a library implementation of the protocol. The compositor can be a standalone display server running on …&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x11&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230603-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20231019-gcccore-13.2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20240607-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250608-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x11&amp;lt;/code&amp;gt; || The X Window System (X11) is a windowing system for bitmap displays&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x264&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20230226-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20240513-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;20250831-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x264&amp;lt;/code&amp;gt; || x264 20250831-gcccore-14.3.0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x265&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3.5-gcccore-12.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.6-gcccore-13.3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.1-gcccore-14.3.0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vis/x265&amp;lt;/code&amp;gt; || x265 is a free software library and application for encoding video streams into the H.265 AVC compression format, and is released under the terms of the GNU GPL.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16216</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16216"/>
		<updated>2026-07-16T08:21:38Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Copying Data from NEMO2 While SSH Login is Disabled&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
[[NEMO2/SSH-Login-Disabled-Data-Transfer|Create command SSH keys for rsync]]&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | NEMO2 Status, (Maintenance) Announcements, News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ &#039;&#039;&#039;NEMO2 Status and (Maintenance) Announcements&#039;&#039;&#039;]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16210</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16210"/>
		<updated>2026-07-13T17:30:03Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Copying Data from NEMO2 While SSH Login is Disabled&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
[[NEMO2/SSH-Login-Disabled-Data-Transfer|Create command SSH keys for rsync]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | NEMO2 Status, (Maintenance) Announcements, News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ &#039;&#039;&#039;NEMO2 Status and (Maintenance) Announcements&#039;&#039;&#039;]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16206</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16206"/>
		<updated>2026-07-11T12:02:01Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Step 1: Create a Command SSH Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution. If you need to allow more than one range (e.g. an&lt;br /&gt;
internal and an external one), you can specify multiple IP addresses/ranges at&lt;br /&gt;
once, separated by a comma, e.g. &amp;lt;code&amp;gt;10.x.x.x/y,132.230.0.0/16&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] shows your&lt;br /&gt;
&#039;&#039;&#039;external&#039;&#039;&#039; IP. Inside the university network you usually have an &#039;&#039;&#039;internal&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; address instead — register that one, or use a jump host&lt;br /&gt;
(which has its own external-facing IP) or VPN. If you might use both, register&lt;br /&gt;
both ranges separated by a comma.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lists the restricted base directory (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, as set on the command key)&lt;br /&gt;
itself, so it always works without specifying a path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Why do I need a full path to copy, but not to view?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
The command key restricts &amp;lt;code&amp;gt;rrsync&amp;lt;/code&amp;gt; to the base directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
(as configured in [[#Step_1:_Create_a_Command_SSH_Key|Step 1]]). Any &#039;&#039;&#039;relative&#039;&#039;&#039;&lt;br /&gt;
path you pass (e.g. &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;) is resolved relative to that base&lt;br /&gt;
directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &#039;&#039;&#039;not&#039;&#039;&#039; your home directory — so&lt;br /&gt;
&amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt; would actually be looked up as &amp;lt;code&amp;gt;/myfiles&amp;lt;/code&amp;gt;, which&lt;br /&gt;
does not exist. You must therefore always use the &#039;&#039;&#039;full absolute path&#039;&#039;&#039;, starting&lt;br /&gt;
with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, e.g. your home directory (&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files, use the full absolute path of your home directory (replace&lt;br /&gt;
&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt; with your own):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/home/fr/fr_ab1234/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key. The &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; option&lt;br /&gt;
is required to copy folders recursively — without it, &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; only&lt;br /&gt;
copies top-level files and skips directories. See&lt;br /&gt;
[[#Useful_rsync_Options|Useful rsync Options]] below for what the other options do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace example:&#039;&#039;&#039; To view or copy the contents of a workspace, use its full&lt;br /&gt;
path (&amp;lt;code&amp;gt;/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;&amp;lt;/code&amp;gt;) instead of &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To view the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Useful rsync Options ==&lt;br /&gt;
&lt;br /&gt;
The copy commands above already use these recommended options:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; — archive mode (recursive, preserves permissions/times/symlinks/...)&lt;br /&gt;
* &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; — human-readable sizes in the output&lt;br /&gt;
* &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt; — compress data during transfer (helps on slower connections)&lt;br /&gt;
* &amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; — show progress and allow resuming partially transferred files (equivalent to &amp;lt;code&amp;gt;--partial --progress&amp;lt;/code&amp;gt;, so you don&#039;t need to add &amp;lt;code&amp;gt;--progress&amp;lt;/code&amp;gt; separately)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16205</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16205"/>
		<updated>2026-07-09T16:55:42Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Useful rsync Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
When you visit [https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu], it&lt;br /&gt;
shows your &#039;&#039;&#039;external (public) IP address&#039;&#039;&#039;. However, if you reach NEMO2 over an&lt;br /&gt;
&#039;&#039;&#039;internal IP address&#039;&#039;&#039; (e.g. a &amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; network), you must register&lt;br /&gt;
that internal/local IP address instead. If you want to use your external IP&lt;br /&gt;
address, you need to use the external university network — either via a jump host or&lt;br /&gt;
by activating the &#039;&#039;&#039;VPN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lists the restricted base directory (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, as set on the command key)&lt;br /&gt;
itself, so it always works without specifying a path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Why do I need a full path to copy, but not to view?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
The command key restricts &amp;lt;code&amp;gt;rrsync&amp;lt;/code&amp;gt; to the base directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
(as configured in [[#Step_1:_Create_a_Command_SSH_Key|Step 1]]). Any &#039;&#039;&#039;relative&#039;&#039;&#039;&lt;br /&gt;
path you pass (e.g. &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;) is resolved relative to that base&lt;br /&gt;
directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &#039;&#039;&#039;not&#039;&#039;&#039; your home directory — so&lt;br /&gt;
&amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt; would actually be looked up as &amp;lt;code&amp;gt;/myfiles&amp;lt;/code&amp;gt;, which&lt;br /&gt;
does not exist. You must therefore always use the &#039;&#039;&#039;full absolute path&#039;&#039;&#039;, starting&lt;br /&gt;
with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, e.g. your home directory (&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files, use the full absolute path of your home directory (replace&lt;br /&gt;
&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt; with your own):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/home/fr/fr_ab1234/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key. The &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; option&lt;br /&gt;
is required to copy folders recursively — without it, &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; only&lt;br /&gt;
copies top-level files and skips directories. See&lt;br /&gt;
[[#Useful_rsync_Options|Useful rsync Options]] below for what the other options do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace example:&#039;&#039;&#039; To view or copy the contents of a workspace, use its full&lt;br /&gt;
path (&amp;lt;code&amp;gt;/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;&amp;lt;/code&amp;gt;) instead of &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To view the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Useful rsync Options ==&lt;br /&gt;
&lt;br /&gt;
The copy commands above already use these recommended options:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; — archive mode (recursive, preserves permissions/times/symlinks/...)&lt;br /&gt;
* &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; — human-readable sizes in the output&lt;br /&gt;
* &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt; — compress data during transfer (helps on slower connections)&lt;br /&gt;
* &amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; — show progress and allow resuming partially transferred files (equivalent to &amp;lt;code&amp;gt;--partial --progress&amp;lt;/code&amp;gt;, so you don&#039;t need to add &amp;lt;code&amp;gt;--progress&amp;lt;/code&amp;gt; separately)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16204</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16204"/>
		<updated>2026-07-09T16:52:27Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
When you visit [https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu], it&lt;br /&gt;
shows your &#039;&#039;&#039;external (public) IP address&#039;&#039;&#039;. However, if you reach NEMO2 over an&lt;br /&gt;
&#039;&#039;&#039;internal IP address&#039;&#039;&#039; (e.g. a &amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; network), you must register&lt;br /&gt;
that internal/local IP address instead. If you want to use your external IP&lt;br /&gt;
address, you need to use the external university network — either via a jump host or&lt;br /&gt;
by activating the &#039;&#039;&#039;VPN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lists the restricted base directory (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, as set on the command key)&lt;br /&gt;
itself, so it always works without specifying a path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Why do I need a full path to copy, but not to view?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
The command key restricts &amp;lt;code&amp;gt;rrsync&amp;lt;/code&amp;gt; to the base directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
(as configured in [[#Step_1:_Create_a_Command_SSH_Key|Step 1]]). Any &#039;&#039;&#039;relative&#039;&#039;&#039;&lt;br /&gt;
path you pass (e.g. &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;) is resolved relative to that base&lt;br /&gt;
directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &#039;&#039;&#039;not&#039;&#039;&#039; your home directory — so&lt;br /&gt;
&amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt; would actually be looked up as &amp;lt;code&amp;gt;/myfiles&amp;lt;/code&amp;gt;, which&lt;br /&gt;
does not exist. You must therefore always use the &#039;&#039;&#039;full absolute path&#039;&#039;&#039;, starting&lt;br /&gt;
with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, e.g. your home directory (&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files, use the full absolute path of your home directory (replace&lt;br /&gt;
&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt; with your own):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/home/fr/fr_ab1234/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key. The &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; option&lt;br /&gt;
is required to copy folders recursively — without it, &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; only&lt;br /&gt;
copies top-level files and skips directories. See&lt;br /&gt;
[[#Useful_rsync_Options|Useful rsync Options]] below for what the other options do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace example:&#039;&#039;&#039; To view or copy the contents of a workspace, use its full&lt;br /&gt;
path (&amp;lt;code&amp;gt;/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;&amp;lt;/code&amp;gt;) instead of &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To view the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Useful rsync Options ==&lt;br /&gt;
&lt;br /&gt;
The copy commands above already use these recommended options:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; — archive mode (recursive, preserves permissions/times/symlinks/...)&lt;br /&gt;
* &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; — human-readable sizes in the output&lt;br /&gt;
* &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt; — compress data during transfer (helps on slower connections)&lt;br /&gt;
* &amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; — show progress and allow resuming partially transferred files (equivalent to &amp;lt;code&amp;gt;--partial --progress&amp;lt;/code&amp;gt;, so you don&#039;t need to add &amp;lt;code&amp;gt;--progress&amp;lt;/code&amp;gt; separately)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Not needed on NEMO2 (WEKA storage):&#039;&#039;&#039; &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;--one-file-system&amp;lt;/code&amp;gt;&lt;br /&gt;
prevents rsync from crossing into other mounted filesystems while reading the&lt;br /&gt;
source tree. Your NEMO2 home and workspace directories live entirely on the&lt;br /&gt;
WEKA filesystem, so there are no other mounts nested underneath them — this&lt;br /&gt;
option has no effect here and can be omitted. Also make sure not to pass&lt;br /&gt;
&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; (or any other option) twice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16203</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16203"/>
		<updated>2026-07-09T16:49:39Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
When you visit [https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu], it&lt;br /&gt;
shows your &#039;&#039;&#039;external (public) IP address&#039;&#039;&#039;. However, if you reach NEMO2 over an&lt;br /&gt;
&#039;&#039;&#039;internal IP address&#039;&#039;&#039; (e.g. a &amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; network), you must register&lt;br /&gt;
that internal/local IP address instead. If you want to use your external IP&lt;br /&gt;
address, you need to use the external university network — either via a jump host or&lt;br /&gt;
by activating the &#039;&#039;&#039;VPN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lists the restricted base directory (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, as set on the command key)&lt;br /&gt;
itself, so it always works without specifying a path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Why do I need a full path to copy, but not to view?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
The command key restricts &amp;lt;code&amp;gt;rrsync&amp;lt;/code&amp;gt; to the base directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
(as configured in [[#Step_1:_Create_a_Command_SSH_Key|Step 1]]). Any &#039;&#039;&#039;relative&#039;&#039;&#039;&lt;br /&gt;
path you pass (e.g. &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;) is resolved relative to that base&lt;br /&gt;
directory &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &#039;&#039;&#039;not&#039;&#039;&#039; your home directory — so&lt;br /&gt;
&amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt; would actually be looked up as &amp;lt;code&amp;gt;/myfiles&amp;lt;/code&amp;gt;, which&lt;br /&gt;
does not exist. You must therefore always use the &#039;&#039;&#039;full absolute path&#039;&#039;&#039;, starting&lt;br /&gt;
with &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, e.g. your home directory (&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files, use the full absolute path of your home directory (replace&lt;br /&gt;
&amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt; with your own):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/home/fr/fr_ab1234/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace example:&#039;&#039;&#039; To view or copy the contents of a workspace, use its full&lt;br /&gt;
path (&amp;lt;code&amp;gt;/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;&amp;lt;/code&amp;gt;) instead of &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To view the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Useful rsync Options ==&lt;br /&gt;
&lt;br /&gt;
For larger transfers, the following options are recommended:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ahzP -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/home/fr/fr_ab1234/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; — archive mode (recursive, preserves permissions/times/symlinks/...)&lt;br /&gt;
* &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; — human-readable sizes in the output&lt;br /&gt;
* &amp;lt;code&amp;gt;-z&amp;lt;/code&amp;gt; — compress data during transfer (helps on slower connections)&lt;br /&gt;
* &amp;lt;code&amp;gt;-P&amp;lt;/code&amp;gt; — show progress and allow resuming partially transferred files (equivalent to &amp;lt;code&amp;gt;--partial --progress&amp;lt;/code&amp;gt;, so you don&#039;t need to add &amp;lt;code&amp;gt;--progress&amp;lt;/code&amp;gt; separately)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Not needed on NEMO2 (WEKA storage):&#039;&#039;&#039; &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;--one-file-system&amp;lt;/code&amp;gt;&lt;br /&gt;
prevents rsync from crossing into other mounted filesystems while reading the&lt;br /&gt;
source tree. Your NEMO2 home and workspace directories live entirely on the&lt;br /&gt;
WEKA filesystem, so there are no other mounts nested underneath them — this&lt;br /&gt;
option has no effect here and can be omitted. Also make sure not to pass&lt;br /&gt;
&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; (or any other option) twice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16202</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16202"/>
		<updated>2026-07-09T16:31:44Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Step 2: Use rsync on login2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
When you visit [https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu], it&lt;br /&gt;
shows your &#039;&#039;&#039;external (public) IP address&#039;&#039;&#039;. However, if you reach NEMO2 over an&lt;br /&gt;
&#039;&#039;&#039;internal IP address&#039;&#039;&#039; (e.g. a &amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; network), you must register&lt;br /&gt;
that internal/local IP address instead. If you want to use your external IP&lt;br /&gt;
address, you need to use the external university network — either via a jump host or&lt;br /&gt;
by activating the &#039;&#039;&#039;VPN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:myfiles/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace example:&#039;&#039;&#039; To view or copy the contents of a workspace, use its full&lt;br /&gt;
path (&amp;lt;code&amp;gt;/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;&amp;lt;/code&amp;gt;) instead of &amp;lt;code&amp;gt;myfiles/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To view the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy the workspace contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:/work/classic/&amp;lt;USER&amp;gt;-&amp;lt;WS_NAME&amp;gt;/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16201</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16201"/>
		<updated>2026-07-09T16:26:52Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Copying Data from NEMO2 While SSH Login is Disabled&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
[[NEMO2/SSH-Login-Disabled-Data-Transfer|Create command SSH keys for rsync]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ NEMO Status, Usage and (Maintenance) Announcements]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16200</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16200"/>
		<updated>2026-07-09T16:19:28Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: M Janczyk moved page SSH-Login-Disabled-Data-Transfer to NEMO2/SSH-Login-Disabled-Data-Transfer without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
When you visit [https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu], it&lt;br /&gt;
shows your &#039;&#039;&#039;external (public) IP address&#039;&#039;&#039;. However, if you reach NEMO2 over an&lt;br /&gt;
&#039;&#039;&#039;internal IP address&#039;&#039;&#039; (e.g. a &amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; network), you must register&lt;br /&gt;
that internal/local IP address instead. If you want to use your external IP&lt;br /&gt;
address, you need to use the external university network — either via a jump host or&lt;br /&gt;
by activating the &#039;&#039;&#039;VPN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:myfiles/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16199</id>
		<title>NEMO2/SSH-Login-Disabled-Data-Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/SSH-Login-Disabled-Data-Transfer&amp;diff=16199"/>
		<updated>2026-07-09T16:18:57Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: Created page with &amp;quot;= Copying Data from NEMO2 While SSH Login is Disabled =  While interactive SSH login is temporarily disabled, you can still transfer data to and from NEMO2 by registering a &amp;#039;&amp;#039;&amp;#039;command SSH key&amp;#039;&amp;#039;&amp;#039; restricted to &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.  &amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt; &amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt; * This only works on &amp;#039;&amp;#039;&amp;#039;login2&amp;#039;&amp;#039;&amp;#039;. * Your runni...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Copying Data from NEMO2 While SSH Login is Disabled =&lt;br /&gt;
&lt;br /&gt;
While interactive SSH login is temporarily disabled, you can still transfer data&lt;br /&gt;
to and from NEMO2 by registering a &#039;&#039;&#039;command SSH key&#039;&#039;&#039; restricted to&lt;br /&gt;
&amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;. This page walks you through the setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* This only works on &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
* Your running jobs are &#039;&#039;&#039;not affected&#039;&#039;&#039; and continue to run normally.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create a Command SSH Key ==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for registering a [[Registration/SSH#Step_2B:_Register_Command_Key|Command Key]], using&lt;br /&gt;
[[Registration/SSH/rrsync|rrsync]] to restrict the key to read-only access. With&lt;br /&gt;
&amp;lt;code&amp;gt;-ro&amp;lt;/code&amp;gt;, the key only allows &#039;&#039;&#039;downloading&#039;&#039;&#039; (copying) data from NEMO2 to&lt;br /&gt;
your local machine; uploading data to NEMO2 with this key is not possible.&lt;br /&gt;
&lt;br /&gt;
Use the following values when registering the key:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Command || &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| From (IP range) || University IP range &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Replace &amp;lt;code&amp;gt;X.X.0.0/16&amp;lt;/code&amp;gt; with the actual IP range of your own&lt;br /&gt;
university/institution.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can look up your current IP address at&lt;br /&gt;
[https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu] to determine the&lt;br /&gt;
correct range for your institution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;University of Freiburg users:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
When you visit [https://wieistmeineip.scc.kit.edu/ wieistmeineip.scc.kit.edu], it&lt;br /&gt;
shows your &#039;&#039;&#039;external (public) IP address&#039;&#039;&#039;. However, if you reach NEMO2 over an&lt;br /&gt;
&#039;&#039;&#039;internal IP address&#039;&#039;&#039; (e.g. a &amp;lt;code&amp;gt;10.x.x.x&amp;lt;/code&amp;gt; network), you must register&lt;br /&gt;
that internal/local IP address instead. If you want to use your external IP&lt;br /&gt;
address, you need to use the external university network — either via a jump host or&lt;br /&gt;
by activating the &#039;&#039;&#039;VPN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Use rsync on login2 ==&lt;br /&gt;
&lt;br /&gt;
Once your command key has been approved, you can use it with &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt;&lt;br /&gt;
on &#039;&#039;&#039;login2&#039;&#039;&#039; as follows.&lt;br /&gt;
&lt;br /&gt;
To view the available files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To copy files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -e &amp;quot;ssh -i ~/.ssh/id_ed25519_rrsync&amp;quot; &amp;lt;USER&amp;gt;@login2.nemo.uni-freiburg.de:myfiles/ myfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt; with your username and &amp;lt;code&amp;gt;id_ed25519_rrsync&amp;lt;/code&amp;gt;&lt;br /&gt;
with the private key you registered as the command key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Passphrase-protected key?&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
If your private key is protected with a passphrase, add it to your local&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-agent&amp;lt;/code&amp;gt; once before running the commands above, otherwise you&lt;br /&gt;
will be prompted for the passphrase on every &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-add ~/.ssh/id_ed25519_rrsync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can also configure a matching entry in your &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt;&lt;br /&gt;
instead of passing &amp;lt;code&amp;gt;-e &amp;quot;ssh -i ...&amp;quot;&amp;lt;/code&amp;gt; on every command. Remember that this&lt;br /&gt;
only works with &#039;&#039;&#039;login2&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16141</id>
		<title>NEMO2/Easybuild Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16141"/>
		<updated>2026-06-16T15:16:17Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Physical vs. Symbolic Architectures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= EasyBuild on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
EasyBuild is a software build and installation framework designed to manage scientific software on High-Performance Computing (HPC) systems. It automates the process of building and installing software, ensuring reproducibility and consistency across environments. EasyBuild uses &amp;quot;easyconfig&amp;quot; files (with &amp;lt;code&amp;gt;.eb&amp;lt;/code&amp;gt; extension) to define build parameters, dependencies, and configurations, simplifying the management of complex software stacks.&lt;br /&gt;
&lt;br /&gt;
NEMO2 uses EasyBuild exclusively to manage its software modules. All available software on NEMO2 is provided as EasyBuild modules.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Building your own modules:&#039;&#039;&#039; [[NEMO2/Easybuild Modules/EB Build Module]] - Complete guide for the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script&lt;br /&gt;
* &#039;&#039;&#039;Available modules:&#039;&#039;&#039; [https://www.nemo.uni-freiburg.de/easybuild-modules/ NEMO EasyBuild Modules List]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild official website:&#039;&#039;&#039; https://easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild GitHub:&#039;&#039;&#039; https://github.com/easybuilders/easybuild&lt;br /&gt;
&lt;br /&gt;
= Understanding Architectures on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
NEMO2 has different CPU and GPU hardware architectures, and software modules are compiled specifically for each architecture to achieve optimal performance (see [[NEMO2/Hardware]] for hardware details).&lt;br /&gt;
&lt;br /&gt;
== Available Architecture Modules ==&lt;br /&gt;
&lt;br /&gt;
You can see all available architectures by running:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail arch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show five architecture options:&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/milan&amp;lt;/code&amp;gt; - AMD EPYC Milan CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt; - AMD EPYC Genoa CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/mi300a&amp;lt;/code&amp;gt; - AMD MI300A APU (Accelerated Processing Unit - combined CPU+GPU)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/l40s&amp;lt;/code&amp;gt; - NVIDIA L40S GPUs (Intel-based nodes)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/h200&amp;lt;/code&amp;gt; - NVIDIA H200 GPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/rtx&amp;lt;/code&amp;gt; - NVIDIA RTX PRO 6000 Blackwell GPUs&lt;br /&gt;
&lt;br /&gt;
== Physical vs. Symbolic Architectures ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; While five architecture modules are available, there are only &#039;&#039;&#039;three physical architectures&#039;&#039;&#039; on NEMO2:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Architecture Module !! Physical Hardware !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milan&amp;lt;/code&amp;gt; || AMD EPYC Milan CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; || AMD EPYC Genoa CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; || AMD MI300A APU (CPU+GPU) || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l40s&amp;lt;/code&amp;gt; || Intel CPUs + NVIDIA L40S GPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; || AMD Genoa CPUs + NVIDIA H200 GPUs || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rtx&amp;lt;/code&amp;gt; || AMD Genoa CPUs + NVIDIA RTX PRO 6000 Blackwell GPUs || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;):&#039;&#039;&#039; The global NEMO2 modules use symbolic links, so modules for &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rtx&amp;lt;/code&amp;gt; are actually stored in the &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; directory. This is because these GPU nodes use AMD Genoa CPUs as their host processors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for self-built modules:&#039;&#039;&#039; When you build your own modules with &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt;, each architecture gets its own separate directory by default:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/rtx/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optional:&#039;&#039;&#039; You can manually create symbolic links (&amp;lt;code&amp;gt;mi300a → genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200 → genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rtx → genoa&amp;lt;/code&amp;gt;) to mirror the global structure, but this is not required. See [[NEMO2/Easybuild_Modules/EB_Build_Module#Architecture_Support|Architecture Support]] for details.&lt;br /&gt;
&lt;br /&gt;
== Viewing Modules for Specific Architectures ==&lt;br /&gt;
&lt;br /&gt;
By default, the login nodes use Genoa CPUs and display only Genoa modules. To see modules for a different architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load a specific architecture&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now module avail will show milan modules&lt;br /&gt;
module avail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable is automatically set when you load an architecture:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
echo $MODULE_ARCH  # Output: genoa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Architecture Compatibility =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important for beginners:&#039;&#039;&#039; Different architectures may not be compatible with each other. Software compiled for one architecture may not work optimally (or at all) on another.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General compatibility rules:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;milan → genoa:&#039;&#039;&#039; Software compiled for Milan will usually work on Genoa (but may not be optimally tuned)&lt;br /&gt;
* &#039;&#039;&#039;genoa → milan:&#039;&#039;&#039; Software compiled for Genoa may &#039;&#039;&#039;not&#039;&#039;&#039; work on Milan&lt;br /&gt;
* &#039;&#039;&#039;GPU architectures:&#039;&#039;&#039; Always use architecture-specific builds for GPU software&lt;br /&gt;
&lt;br /&gt;
When in doubt, build separate versions for each architecture you plan to use.&lt;br /&gt;
&lt;br /&gt;
= Building Your Own EasyBuild Modules =&lt;br /&gt;
&lt;br /&gt;
If you need software that is not yet available as a module on NEMO2, you can build your own EasyBuild modules. NEMO2 provides the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script that makes this process straightforward.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For complete documentation, see:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
&lt;br /&gt;
== Why Build Your Own Modules? ==&lt;br /&gt;
&lt;br /&gt;
* Software you need is not available in the system-wide modules&lt;br /&gt;
* You need a different version than what&#039;s provided&lt;br /&gt;
* You want to customize build options or dependencies&lt;br /&gt;
* You&#039;re testing software before requesting a system-wide installation&lt;br /&gt;
&lt;br /&gt;
== Quick Start Guide ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Search for available easyconfig files (these define how to build software):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -s Python&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Preview what will be built (dry-run - highly recommended for beginners):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -d -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows all dependencies that will be built without actually building anything.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Build the module with default settings (20 cores, 12 hours, genoa architecture):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Use your newly built module:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa  # If not already loaded&lt;br /&gt;
module avail python     # Your module will appear here (lowercase)&lt;br /&gt;
module load lang/python/3.11.3-gcccore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names are lowercase due to NEMO2&#039;s naming scheme, even though you build with &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Building for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
To build for a specific architecture (important if you&#039;ll run jobs on specific hardware):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# For Genoa CPUs&lt;br /&gt;
eb-build-module.sh -a genoa -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# For MI300A APUs (creates separate mi300a directory)&lt;br /&gt;
eb-build-module.sh -a mi300a -m PyTorch-2.1.2-foss-2023a&lt;br /&gt;
&lt;br /&gt;
# For L40S GPUs (Intel-based, uses CUDA)&lt;br /&gt;
eb-build-module.sh -a l40s -m CUDA-12.0.0&lt;br /&gt;
&lt;br /&gt;
# For H200 GPUs (creates separate h200 directory)&lt;br /&gt;
eb-build-module.sh -a h200 -m CUDA-12.0.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you plan to use software on multiple architectures, you need to build it separately for each one.&lt;br /&gt;
&lt;br /&gt;
== Key Script Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Architecture support:&#039;&#039;&#039; Automatically configures builds for milan, genoa, mi300a, l40s, or h200&lt;br /&gt;
* &#039;&#039;&#039;GPU detection:&#039;&#039;&#039; Allocates GPUs automatically when building GPU software&lt;br /&gt;
* &#039;&#039;&#039;Flexible options:&#039;&#039;&#039; Customize cores (&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;), walltime (&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;), and installation prefix (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Build modes:&#039;&#039;&#039; &lt;br /&gt;
** Standard build (default)&lt;br /&gt;
** Rebuild (&amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;) - force rebuild even if already exists&lt;br /&gt;
** Module-only (&amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt;) - generate module file without building&lt;br /&gt;
** Dry-run (&amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;) - preview without building&lt;br /&gt;
* &#039;&#039;&#039;Search function:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; to find available easyconfig files&lt;br /&gt;
* &#039;&#039;&#039;Pass-through options:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; to pass additional EasyBuild options directly&lt;br /&gt;
&lt;br /&gt;
== Where Are Modules Installed? ==&lt;br /&gt;
&lt;br /&gt;
By default, modules are installed to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example (each architecture gets its own directory):&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt; - Milan-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt; - Genoa-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt; - MI300A-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt; - L40S-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt; - H200-specific modules&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Unlike the global system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;), your self-built modules do &#039;&#039;&#039;not&#039;&#039;&#039; use symbolic links by default. Each architecture gets its own separate directory. You can manually create symlinks if desired to mirror the global structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module files location:&#039;&#039;&#039; The actual module files that you load with &amp;lt;code&amp;gt;module load&amp;lt;/code&amp;gt; are placed in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/          # Architecture-independent modules&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/modules/all/   # Architecture-specific modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example module paths:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/genoa/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/mi300a/modules/all/ai/pytorch/2.1.2-foss-2023a.lua&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; On NEMO2, the module naming scheme converts all names to lowercase. While EasyBuild uses files like &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;, the resulting modules are named in lowercase: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;. This applies to all modules including compilers (&amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt;), libraries, etc.&lt;br /&gt;
&lt;br /&gt;
These paths are automatically added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt; when you load an architecture with &amp;lt;code&amp;gt;module load arch/&amp;amp;lt;arch&amp;amp;gt;&amp;lt;/code&amp;gt;, making your custom modules visible with &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can change the installation location with the &amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt; option or by setting the &amp;lt;code&amp;gt;PREFIX&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using Your Custom Modules ==&lt;br /&gt;
&lt;br /&gt;
After building, your modules are automatically available when you load the corresponding architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load the architecture you built for&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
&lt;br /&gt;
# Your custom modules now appear alongside system modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# Load your custom module (remember: lowercase names)&lt;br /&gt;
module load category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How it works:&#039;&#039;&#039; When you load &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt;, the following paths are added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/modules/all/&amp;lt;/code&amp;gt; - for architecture-independent modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/modules/all/&amp;lt;/code&amp;gt; - for genoa-specific modules&lt;br /&gt;
&lt;br /&gt;
This makes your custom-built modules visible alongside system modules when you run &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names appear in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;) due to NEMO2&#039;s naming scheme, even though the easyconfig files use capitalized names.&lt;br /&gt;
&lt;br /&gt;
== Common Build Options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Build with more cores for faster compilation (large packages)&lt;br /&gt;
eb-build-module.sh -c 64 -w 24 -m GCC-13.2.0&lt;br /&gt;
&lt;br /&gt;
# Rebuild an existing module&lt;br /&gt;
eb-build-module.sh -r -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# Pass additional EasyBuild options&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0 -- --force --debug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Need Help? ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Full script documentation:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
* &#039;&#039;&#039;Script options:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Options|Command-line options]]&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Examples|Usage examples]]&lt;br /&gt;
* &#039;&#039;&#039;Troubleshooting:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Troubleshooting|Common issues and solutions]]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;Available easyconfigs:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;eb-build-module.sh -s pattern&amp;lt;/code&amp;gt; to search&lt;br /&gt;
&lt;br /&gt;
= Compiling Your Own Software (Non-EasyBuild) =&lt;br /&gt;
&lt;br /&gt;
If you compile your own applications outside of EasyBuild (e.g., custom C/C++/Fortran code), you should create architecture-specific builds using the &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using $MODULE_ARCH in Your Workflows ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; variable is automatically set when you load an architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/milan&lt;br /&gt;
echo $MODULE_ARCH  # Output: milan&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use this in your directory structure:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Organize binaries by architecture&lt;br /&gt;
$HOME/software/$MODULE_ARCH/myapp/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Example paths for different architectures:&lt;br /&gt;
# ~/.local/software/milan/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/genoa/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/l40s/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Compile for Milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
gcc -O3 -march=znver3 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Compile for Genoa&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
gcc -O3 -march=znver4 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Cross-Architecture Binaries ==&lt;br /&gt;
&lt;br /&gt;
If you compile for one architecture but run on another, you must load the correct architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Request a Genoa node but run Milan-compiled code&lt;br /&gt;
salloc -n1 -p genoa&lt;br /&gt;
&lt;br /&gt;
# Load the architecture the code was compiled for&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now run your Milan-compiled binary on the Genoa node&lt;br /&gt;
$HOME/software/milan/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; This should only be done when Milan code is compatible with Genoa. Genoa code will likely not work on Milan nodes.&lt;br /&gt;
&lt;br /&gt;
= Testing Modules and Software =&lt;br /&gt;
&lt;br /&gt;
== Interactive Testing ==&lt;br /&gt;
&lt;br /&gt;
You can test modules and software interactively using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;salloc&amp;lt;/code&amp;gt; (see [[NEMO2/Slurm#Interactive_Jobs|Interactive Jobs]] and [[NEMO2/Slurm#Partitions|Partitions]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick tests on login nodes (up to 15 minutes):&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
srun -p login &amp;lt;command&amp;gt;&lt;br /&gt;
# or&lt;br /&gt;
salloc -p login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Testing on specific architecture:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Interactive session on Milan partition&lt;br /&gt;
salloc -n1 -p milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
module load YourModule&lt;br /&gt;
&amp;lt;your-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with AMD MI300A APU&lt;br /&gt;
salloc -n1 -p mi300a --gres=gpu:1&lt;br /&gt;
module load arch/mi300a&lt;br /&gt;
module load system/rocm  # ROCm for AMD GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with NVIDIA GPU (L40S example)&lt;br /&gt;
salloc -n1 -p l40s --gres=gpu:1&lt;br /&gt;
module load arch/l40s&lt;br /&gt;
module load system/cuda  # CUDA for NVIDIA GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you get MPI or memory errors, try using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; to launch your program: &amp;lt;code&amp;gt;srun &amp;lt;program&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Working with Module Listings =&lt;br /&gt;
&lt;br /&gt;
== Viewing Available Modules ==&lt;br /&gt;
&lt;br /&gt;
Basic module commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List all available modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# List modules for a specific category&lt;br /&gt;
module avail compiler&lt;br /&gt;
module avail math&lt;br /&gt;
module avail chem&lt;br /&gt;
&lt;br /&gt;
# Search for a specific module&lt;br /&gt;
module avail python&lt;br /&gt;
module avail gcc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing Long Module Lists ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; produces a very long list, use these techniques:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Get an overview:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module overview&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows a condensed summary of available modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Filter by category or name:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail compiler   # Show only compiler modules&lt;br /&gt;
module avail llvm       # Show only LLVM-related modules&lt;br /&gt;
module avail python     # Show only Python-related modules&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Hide module extensions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Many modules have extensions (additional packages/libraries). To hide these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Hide extensions for one command&lt;br /&gt;
module --nx avail&lt;br /&gt;
# or&lt;br /&gt;
module --no_extensions avail&lt;br /&gt;
&lt;br /&gt;
# Hide extensions permanently&lt;br /&gt;
export LMOD_AVAIL_EXTENSIONS=no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the export command to your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; to make it permanent.&lt;br /&gt;
&lt;br /&gt;
== Understanding Module Names ==&lt;br /&gt;
&lt;br /&gt;
EasyBuild module names on NEMO2 follow a specific format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All components are lowercase due to NEMO2&#039;s naming scheme.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; lang (programming language)&lt;br /&gt;
* &#039;&#039;&#039;Software:&#039;&#039;&#039; python (lowercase)&lt;br /&gt;
* &#039;&#039;&#039;Version:&#039;&#039;&#039; 3.11.3&lt;br /&gt;
* &#039;&#039;&#039;Toolchain:&#039;&#039;&#039; gcccore-12.3.0 (the compiler/libraries used to build it, also lowercase)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When building, you use the EasyBuild file with capitalized names (e.g., &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;), but the resulting module will be in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;). This applies to all parts: software names (python, not Python), toolchain components (gcccore, not GCCcore), and everything else.&lt;br /&gt;
&lt;br /&gt;
Common categories include:&lt;br /&gt;
* &amp;lt;code&amp;gt;lang/&amp;lt;/code&amp;gt; - Programming languages (python, r, julia, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;compiler/&amp;lt;/code&amp;gt; - Compilers (gcc, intel, llvm, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;system/&amp;lt;/code&amp;gt; - System software (cuda, mpi, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;bio/&amp;lt;/code&amp;gt; - Biology/Bioinformatics software&lt;br /&gt;
* &amp;lt;code&amp;gt;chem/&amp;lt;/code&amp;gt; - Chemistry software&lt;br /&gt;
* &amp;lt;code&amp;gt;math/&amp;lt;/code&amp;gt; - Mathematical software&lt;br /&gt;
* &amp;lt;code&amp;gt;ai/&amp;lt;/code&amp;gt; - Artificial Intelligence/Machine Learning&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt; - Libraries&lt;br /&gt;
* &amp;lt;code&amp;gt;devel/&amp;lt;/code&amp;gt; - Development tools&lt;br /&gt;
&lt;br /&gt;
When building your own modules, use the same naming convention for consistency.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16140</id>
		<title>NEMO2/Easybuild Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16140"/>
		<updated>2026-06-16T15:13:58Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Physical vs. Symbolic Architectures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= EasyBuild on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
EasyBuild is a software build and installation framework designed to manage scientific software on High-Performance Computing (HPC) systems. It automates the process of building and installing software, ensuring reproducibility and consistency across environments. EasyBuild uses &amp;quot;easyconfig&amp;quot; files (with &amp;lt;code&amp;gt;.eb&amp;lt;/code&amp;gt; extension) to define build parameters, dependencies, and configurations, simplifying the management of complex software stacks.&lt;br /&gt;
&lt;br /&gt;
NEMO2 uses EasyBuild exclusively to manage its software modules. All available software on NEMO2 is provided as EasyBuild modules.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Building your own modules:&#039;&#039;&#039; [[NEMO2/Easybuild Modules/EB Build Module]] - Complete guide for the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script&lt;br /&gt;
* &#039;&#039;&#039;Available modules:&#039;&#039;&#039; [https://www.nemo.uni-freiburg.de/easybuild-modules/ NEMO EasyBuild Modules List]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild official website:&#039;&#039;&#039; https://easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild GitHub:&#039;&#039;&#039; https://github.com/easybuilders/easybuild&lt;br /&gt;
&lt;br /&gt;
= Understanding Architectures on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
NEMO2 has different CPU and GPU hardware architectures, and software modules are compiled specifically for each architecture to achieve optimal performance (see [[NEMO2/Hardware]] for hardware details).&lt;br /&gt;
&lt;br /&gt;
== Available Architecture Modules ==&lt;br /&gt;
&lt;br /&gt;
You can see all available architectures by running:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail arch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show five architecture options:&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/milan&amp;lt;/code&amp;gt; - AMD EPYC Milan CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt; - AMD EPYC Genoa CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/mi300a&amp;lt;/code&amp;gt; - AMD MI300A APU (Accelerated Processing Unit - combined CPU+GPU)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/l40s&amp;lt;/code&amp;gt; - NVIDIA L40S GPUs (Intel-based nodes)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/h200&amp;lt;/code&amp;gt; - NVIDIA H200 GPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/rtx&amp;lt;/code&amp;gt; - NVIDIA RTX PRO 6000 Blackwell GPUs&lt;br /&gt;
&lt;br /&gt;
== Physical vs. Symbolic Architectures ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; While five architecture modules are available, there are only &#039;&#039;&#039;three physical architectures&#039;&#039;&#039; on NEMO2:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Architecture Module !! Physical Hardware !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milan&amp;lt;/code&amp;gt; || AMD EPYC Milan CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; || AMD EPYC Genoa CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; || AMD MI300A APU (CPU+GPU) || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l40s&amp;lt;/code&amp;gt; || Intel CPUs + NVIDIA L40S GPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; || AMD Genoa CPUs + NVIDIA H200 GPUs || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rtx&amp;lt;/code&amp;gt; || AMD Genoa CPUs + NVIDIA RTX PRO 6000 Blackwell GPUs || &#039;&#039;&#039;Symbolic link → h200&#039;&#039;&#039; || Uses h200 installation directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;):&#039;&#039;&#039; The global NEMO2 modules use symbolic links, so modules for &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rtx&amp;lt;/code&amp;gt; are actually stored in the &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; directory. This is because these GPU nodes use AMD Genoa CPUs as their host processors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for self-built modules:&#039;&#039;&#039; When you build your own modules with &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt;, each architecture gets its own separate directory by default:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/rtx/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optional:&#039;&#039;&#039; You can manually create symbolic links (&amp;lt;code&amp;gt;mi300a → genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200 → genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rtx → h200&amp;lt;/code&amp;gt;) to mirror the global structure, but this is not required. See [[NEMO2/Easybuild_Modules/EB_Build_Module#Architecture_Support|Architecture Support]] for details.&lt;br /&gt;
&lt;br /&gt;
== Viewing Modules for Specific Architectures ==&lt;br /&gt;
&lt;br /&gt;
By default, the login nodes use Genoa CPUs and display only Genoa modules. To see modules for a different architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load a specific architecture&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now module avail will show milan modules&lt;br /&gt;
module avail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable is automatically set when you load an architecture:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
echo $MODULE_ARCH  # Output: genoa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Architecture Compatibility =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important for beginners:&#039;&#039;&#039; Different architectures may not be compatible with each other. Software compiled for one architecture may not work optimally (or at all) on another.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General compatibility rules:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;milan → genoa:&#039;&#039;&#039; Software compiled for Milan will usually work on Genoa (but may not be optimally tuned)&lt;br /&gt;
* &#039;&#039;&#039;genoa → milan:&#039;&#039;&#039; Software compiled for Genoa may &#039;&#039;&#039;not&#039;&#039;&#039; work on Milan&lt;br /&gt;
* &#039;&#039;&#039;GPU architectures:&#039;&#039;&#039; Always use architecture-specific builds for GPU software&lt;br /&gt;
&lt;br /&gt;
When in doubt, build separate versions for each architecture you plan to use.&lt;br /&gt;
&lt;br /&gt;
= Building Your Own EasyBuild Modules =&lt;br /&gt;
&lt;br /&gt;
If you need software that is not yet available as a module on NEMO2, you can build your own EasyBuild modules. NEMO2 provides the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script that makes this process straightforward.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For complete documentation, see:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
&lt;br /&gt;
== Why Build Your Own Modules? ==&lt;br /&gt;
&lt;br /&gt;
* Software you need is not available in the system-wide modules&lt;br /&gt;
* You need a different version than what&#039;s provided&lt;br /&gt;
* You want to customize build options or dependencies&lt;br /&gt;
* You&#039;re testing software before requesting a system-wide installation&lt;br /&gt;
&lt;br /&gt;
== Quick Start Guide ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Search for available easyconfig files (these define how to build software):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -s Python&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Preview what will be built (dry-run - highly recommended for beginners):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -d -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows all dependencies that will be built without actually building anything.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Build the module with default settings (20 cores, 12 hours, genoa architecture):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Use your newly built module:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa  # If not already loaded&lt;br /&gt;
module avail python     # Your module will appear here (lowercase)&lt;br /&gt;
module load lang/python/3.11.3-gcccore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names are lowercase due to NEMO2&#039;s naming scheme, even though you build with &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Building for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
To build for a specific architecture (important if you&#039;ll run jobs on specific hardware):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# For Genoa CPUs&lt;br /&gt;
eb-build-module.sh -a genoa -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# For MI300A APUs (creates separate mi300a directory)&lt;br /&gt;
eb-build-module.sh -a mi300a -m PyTorch-2.1.2-foss-2023a&lt;br /&gt;
&lt;br /&gt;
# For L40S GPUs (Intel-based, uses CUDA)&lt;br /&gt;
eb-build-module.sh -a l40s -m CUDA-12.0.0&lt;br /&gt;
&lt;br /&gt;
# For H200 GPUs (creates separate h200 directory)&lt;br /&gt;
eb-build-module.sh -a h200 -m CUDA-12.0.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you plan to use software on multiple architectures, you need to build it separately for each one.&lt;br /&gt;
&lt;br /&gt;
== Key Script Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Architecture support:&#039;&#039;&#039; Automatically configures builds for milan, genoa, mi300a, l40s, or h200&lt;br /&gt;
* &#039;&#039;&#039;GPU detection:&#039;&#039;&#039; Allocates GPUs automatically when building GPU software&lt;br /&gt;
* &#039;&#039;&#039;Flexible options:&#039;&#039;&#039; Customize cores (&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;), walltime (&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;), and installation prefix (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Build modes:&#039;&#039;&#039; &lt;br /&gt;
** Standard build (default)&lt;br /&gt;
** Rebuild (&amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;) - force rebuild even if already exists&lt;br /&gt;
** Module-only (&amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt;) - generate module file without building&lt;br /&gt;
** Dry-run (&amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;) - preview without building&lt;br /&gt;
* &#039;&#039;&#039;Search function:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; to find available easyconfig files&lt;br /&gt;
* &#039;&#039;&#039;Pass-through options:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; to pass additional EasyBuild options directly&lt;br /&gt;
&lt;br /&gt;
== Where Are Modules Installed? ==&lt;br /&gt;
&lt;br /&gt;
By default, modules are installed to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example (each architecture gets its own directory):&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt; - Milan-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt; - Genoa-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt; - MI300A-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt; - L40S-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt; - H200-specific modules&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Unlike the global system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;), your self-built modules do &#039;&#039;&#039;not&#039;&#039;&#039; use symbolic links by default. Each architecture gets its own separate directory. You can manually create symlinks if desired to mirror the global structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module files location:&#039;&#039;&#039; The actual module files that you load with &amp;lt;code&amp;gt;module load&amp;lt;/code&amp;gt; are placed in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/          # Architecture-independent modules&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/modules/all/   # Architecture-specific modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example module paths:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/genoa/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/mi300a/modules/all/ai/pytorch/2.1.2-foss-2023a.lua&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; On NEMO2, the module naming scheme converts all names to lowercase. While EasyBuild uses files like &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;, the resulting modules are named in lowercase: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;. This applies to all modules including compilers (&amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt;), libraries, etc.&lt;br /&gt;
&lt;br /&gt;
These paths are automatically added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt; when you load an architecture with &amp;lt;code&amp;gt;module load arch/&amp;amp;lt;arch&amp;amp;gt;&amp;lt;/code&amp;gt;, making your custom modules visible with &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can change the installation location with the &amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt; option or by setting the &amp;lt;code&amp;gt;PREFIX&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using Your Custom Modules ==&lt;br /&gt;
&lt;br /&gt;
After building, your modules are automatically available when you load the corresponding architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load the architecture you built for&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
&lt;br /&gt;
# Your custom modules now appear alongside system modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# Load your custom module (remember: lowercase names)&lt;br /&gt;
module load category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How it works:&#039;&#039;&#039; When you load &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt;, the following paths are added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/modules/all/&amp;lt;/code&amp;gt; - for architecture-independent modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/modules/all/&amp;lt;/code&amp;gt; - for genoa-specific modules&lt;br /&gt;
&lt;br /&gt;
This makes your custom-built modules visible alongside system modules when you run &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names appear in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;) due to NEMO2&#039;s naming scheme, even though the easyconfig files use capitalized names.&lt;br /&gt;
&lt;br /&gt;
== Common Build Options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Build with more cores for faster compilation (large packages)&lt;br /&gt;
eb-build-module.sh -c 64 -w 24 -m GCC-13.2.0&lt;br /&gt;
&lt;br /&gt;
# Rebuild an existing module&lt;br /&gt;
eb-build-module.sh -r -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# Pass additional EasyBuild options&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0 -- --force --debug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Need Help? ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Full script documentation:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
* &#039;&#039;&#039;Script options:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Options|Command-line options]]&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Examples|Usage examples]]&lt;br /&gt;
* &#039;&#039;&#039;Troubleshooting:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Troubleshooting|Common issues and solutions]]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;Available easyconfigs:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;eb-build-module.sh -s pattern&amp;lt;/code&amp;gt; to search&lt;br /&gt;
&lt;br /&gt;
= Compiling Your Own Software (Non-EasyBuild) =&lt;br /&gt;
&lt;br /&gt;
If you compile your own applications outside of EasyBuild (e.g., custom C/C++/Fortran code), you should create architecture-specific builds using the &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using $MODULE_ARCH in Your Workflows ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; variable is automatically set when you load an architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/milan&lt;br /&gt;
echo $MODULE_ARCH  # Output: milan&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use this in your directory structure:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Organize binaries by architecture&lt;br /&gt;
$HOME/software/$MODULE_ARCH/myapp/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Example paths for different architectures:&lt;br /&gt;
# ~/.local/software/milan/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/genoa/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/l40s/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Compile for Milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
gcc -O3 -march=znver3 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Compile for Genoa&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
gcc -O3 -march=znver4 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Cross-Architecture Binaries ==&lt;br /&gt;
&lt;br /&gt;
If you compile for one architecture but run on another, you must load the correct architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Request a Genoa node but run Milan-compiled code&lt;br /&gt;
salloc -n1 -p genoa&lt;br /&gt;
&lt;br /&gt;
# Load the architecture the code was compiled for&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now run your Milan-compiled binary on the Genoa node&lt;br /&gt;
$HOME/software/milan/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; This should only be done when Milan code is compatible with Genoa. Genoa code will likely not work on Milan nodes.&lt;br /&gt;
&lt;br /&gt;
= Testing Modules and Software =&lt;br /&gt;
&lt;br /&gt;
== Interactive Testing ==&lt;br /&gt;
&lt;br /&gt;
You can test modules and software interactively using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;salloc&amp;lt;/code&amp;gt; (see [[NEMO2/Slurm#Interactive_Jobs|Interactive Jobs]] and [[NEMO2/Slurm#Partitions|Partitions]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick tests on login nodes (up to 15 minutes):&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
srun -p login &amp;lt;command&amp;gt;&lt;br /&gt;
# or&lt;br /&gt;
salloc -p login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Testing on specific architecture:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Interactive session on Milan partition&lt;br /&gt;
salloc -n1 -p milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
module load YourModule&lt;br /&gt;
&amp;lt;your-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with AMD MI300A APU&lt;br /&gt;
salloc -n1 -p mi300a --gres=gpu:1&lt;br /&gt;
module load arch/mi300a&lt;br /&gt;
module load system/rocm  # ROCm for AMD GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with NVIDIA GPU (L40S example)&lt;br /&gt;
salloc -n1 -p l40s --gres=gpu:1&lt;br /&gt;
module load arch/l40s&lt;br /&gt;
module load system/cuda  # CUDA for NVIDIA GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you get MPI or memory errors, try using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; to launch your program: &amp;lt;code&amp;gt;srun &amp;lt;program&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Working with Module Listings =&lt;br /&gt;
&lt;br /&gt;
== Viewing Available Modules ==&lt;br /&gt;
&lt;br /&gt;
Basic module commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List all available modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# List modules for a specific category&lt;br /&gt;
module avail compiler&lt;br /&gt;
module avail math&lt;br /&gt;
module avail chem&lt;br /&gt;
&lt;br /&gt;
# Search for a specific module&lt;br /&gt;
module avail python&lt;br /&gt;
module avail gcc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing Long Module Lists ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; produces a very long list, use these techniques:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Get an overview:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module overview&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows a condensed summary of available modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Filter by category or name:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail compiler   # Show only compiler modules&lt;br /&gt;
module avail llvm       # Show only LLVM-related modules&lt;br /&gt;
module avail python     # Show only Python-related modules&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Hide module extensions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Many modules have extensions (additional packages/libraries). To hide these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Hide extensions for one command&lt;br /&gt;
module --nx avail&lt;br /&gt;
# or&lt;br /&gt;
module --no_extensions avail&lt;br /&gt;
&lt;br /&gt;
# Hide extensions permanently&lt;br /&gt;
export LMOD_AVAIL_EXTENSIONS=no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the export command to your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; to make it permanent.&lt;br /&gt;
&lt;br /&gt;
== Understanding Module Names ==&lt;br /&gt;
&lt;br /&gt;
EasyBuild module names on NEMO2 follow a specific format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All components are lowercase due to NEMO2&#039;s naming scheme.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; lang (programming language)&lt;br /&gt;
* &#039;&#039;&#039;Software:&#039;&#039;&#039; python (lowercase)&lt;br /&gt;
* &#039;&#039;&#039;Version:&#039;&#039;&#039; 3.11.3&lt;br /&gt;
* &#039;&#039;&#039;Toolchain:&#039;&#039;&#039; gcccore-12.3.0 (the compiler/libraries used to build it, also lowercase)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When building, you use the EasyBuild file with capitalized names (e.g., &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;), but the resulting module will be in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;). This applies to all parts: software names (python, not Python), toolchain components (gcccore, not GCCcore), and everything else.&lt;br /&gt;
&lt;br /&gt;
Common categories include:&lt;br /&gt;
* &amp;lt;code&amp;gt;lang/&amp;lt;/code&amp;gt; - Programming languages (python, r, julia, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;compiler/&amp;lt;/code&amp;gt; - Compilers (gcc, intel, llvm, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;system/&amp;lt;/code&amp;gt; - System software (cuda, mpi, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;bio/&amp;lt;/code&amp;gt; - Biology/Bioinformatics software&lt;br /&gt;
* &amp;lt;code&amp;gt;chem/&amp;lt;/code&amp;gt; - Chemistry software&lt;br /&gt;
* &amp;lt;code&amp;gt;math/&amp;lt;/code&amp;gt; - Mathematical software&lt;br /&gt;
* &amp;lt;code&amp;gt;ai/&amp;lt;/code&amp;gt; - Artificial Intelligence/Machine Learning&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt; - Libraries&lt;br /&gt;
* &amp;lt;code&amp;gt;devel/&amp;lt;/code&amp;gt; - Development tools&lt;br /&gt;
&lt;br /&gt;
When building your own modules, use the same naming convention for consistency.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16139</id>
		<title>NEMO2/Easybuild Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16139"/>
		<updated>2026-06-16T15:11:35Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Available Architecture Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= EasyBuild on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
EasyBuild is a software build and installation framework designed to manage scientific software on High-Performance Computing (HPC) systems. It automates the process of building and installing software, ensuring reproducibility and consistency across environments. EasyBuild uses &amp;quot;easyconfig&amp;quot; files (with &amp;lt;code&amp;gt;.eb&amp;lt;/code&amp;gt; extension) to define build parameters, dependencies, and configurations, simplifying the management of complex software stacks.&lt;br /&gt;
&lt;br /&gt;
NEMO2 uses EasyBuild exclusively to manage its software modules. All available software on NEMO2 is provided as EasyBuild modules.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Building your own modules:&#039;&#039;&#039; [[NEMO2/Easybuild Modules/EB Build Module]] - Complete guide for the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script&lt;br /&gt;
* &#039;&#039;&#039;Available modules:&#039;&#039;&#039; [https://www.nemo.uni-freiburg.de/easybuild-modules/ NEMO EasyBuild Modules List]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild official website:&#039;&#039;&#039; https://easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild GitHub:&#039;&#039;&#039; https://github.com/easybuilders/easybuild&lt;br /&gt;
&lt;br /&gt;
= Understanding Architectures on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
NEMO2 has different CPU and GPU hardware architectures, and software modules are compiled specifically for each architecture to achieve optimal performance (see [[NEMO2/Hardware]] for hardware details).&lt;br /&gt;
&lt;br /&gt;
== Available Architecture Modules ==&lt;br /&gt;
&lt;br /&gt;
You can see all available architectures by running:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail arch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show five architecture options:&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/milan&amp;lt;/code&amp;gt; - AMD EPYC Milan CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt; - AMD EPYC Genoa CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/mi300a&amp;lt;/code&amp;gt; - AMD MI300A APU (Accelerated Processing Unit - combined CPU+GPU)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/l40s&amp;lt;/code&amp;gt; - NVIDIA L40S GPUs (Intel-based nodes)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/h200&amp;lt;/code&amp;gt; - NVIDIA H200 GPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/rtx&amp;lt;/code&amp;gt; - NVIDIA RTX PRO 6000 Blackwell GPUs&lt;br /&gt;
&lt;br /&gt;
== Physical vs. Symbolic Architectures ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; While five architecture modules are available, there are only &#039;&#039;&#039;three physical architectures&#039;&#039;&#039; on NEMO2:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Architecture Module !! Physical Hardware !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milan&amp;lt;/code&amp;gt; || AMD EPYC Milan CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; || AMD EPYC Genoa CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; || AMD MI300A APU (CPU+GPU) || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l40s&amp;lt;/code&amp;gt; || Intel CPUs + NVIDIA L40S GPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; || AMD Genoa CPUs + NVIDIA H200 GPUs || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;):&#039;&#039;&#039; The global NEMO2 modules use symbolic links, so modules for &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; are actually stored in the &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; directory. This is because these GPU nodes use AMD Genoa CPUs as their host processors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for self-built modules:&#039;&#039;&#039; When you build your own modules with &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt;, each architecture gets its own separate directory by default:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optional:&#039;&#039;&#039; You can manually create symbolic links (&amp;lt;code&amp;gt;mi300a → genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200 → genoa&amp;lt;/code&amp;gt;) to mirror the global structure, but this is not required. See [[NEMO2/Easybuild_Modules/EB_Build_Module#Architecture_Support|Architecture Support]] for details.&lt;br /&gt;
&lt;br /&gt;
== Viewing Modules for Specific Architectures ==&lt;br /&gt;
&lt;br /&gt;
By default, the login nodes use Genoa CPUs and display only Genoa modules. To see modules for a different architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load a specific architecture&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now module avail will show milan modules&lt;br /&gt;
module avail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable is automatically set when you load an architecture:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
echo $MODULE_ARCH  # Output: genoa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Architecture Compatibility =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important for beginners:&#039;&#039;&#039; Different architectures may not be compatible with each other. Software compiled for one architecture may not work optimally (or at all) on another.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General compatibility rules:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;milan → genoa:&#039;&#039;&#039; Software compiled for Milan will usually work on Genoa (but may not be optimally tuned)&lt;br /&gt;
* &#039;&#039;&#039;genoa → milan:&#039;&#039;&#039; Software compiled for Genoa may &#039;&#039;&#039;not&#039;&#039;&#039; work on Milan&lt;br /&gt;
* &#039;&#039;&#039;GPU architectures:&#039;&#039;&#039; Always use architecture-specific builds for GPU software&lt;br /&gt;
&lt;br /&gt;
When in doubt, build separate versions for each architecture you plan to use.&lt;br /&gt;
&lt;br /&gt;
= Building Your Own EasyBuild Modules =&lt;br /&gt;
&lt;br /&gt;
If you need software that is not yet available as a module on NEMO2, you can build your own EasyBuild modules. NEMO2 provides the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script that makes this process straightforward.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For complete documentation, see:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
&lt;br /&gt;
== Why Build Your Own Modules? ==&lt;br /&gt;
&lt;br /&gt;
* Software you need is not available in the system-wide modules&lt;br /&gt;
* You need a different version than what&#039;s provided&lt;br /&gt;
* You want to customize build options or dependencies&lt;br /&gt;
* You&#039;re testing software before requesting a system-wide installation&lt;br /&gt;
&lt;br /&gt;
== Quick Start Guide ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Search for available easyconfig files (these define how to build software):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -s Python&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Preview what will be built (dry-run - highly recommended for beginners):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -d -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows all dependencies that will be built without actually building anything.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Build the module with default settings (20 cores, 12 hours, genoa architecture):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Use your newly built module:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa  # If not already loaded&lt;br /&gt;
module avail python     # Your module will appear here (lowercase)&lt;br /&gt;
module load lang/python/3.11.3-gcccore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names are lowercase due to NEMO2&#039;s naming scheme, even though you build with &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Building for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
To build for a specific architecture (important if you&#039;ll run jobs on specific hardware):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# For Genoa CPUs&lt;br /&gt;
eb-build-module.sh -a genoa -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# For MI300A APUs (creates separate mi300a directory)&lt;br /&gt;
eb-build-module.sh -a mi300a -m PyTorch-2.1.2-foss-2023a&lt;br /&gt;
&lt;br /&gt;
# For L40S GPUs (Intel-based, uses CUDA)&lt;br /&gt;
eb-build-module.sh -a l40s -m CUDA-12.0.0&lt;br /&gt;
&lt;br /&gt;
# For H200 GPUs (creates separate h200 directory)&lt;br /&gt;
eb-build-module.sh -a h200 -m CUDA-12.0.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you plan to use software on multiple architectures, you need to build it separately for each one.&lt;br /&gt;
&lt;br /&gt;
== Key Script Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Architecture support:&#039;&#039;&#039; Automatically configures builds for milan, genoa, mi300a, l40s, or h200&lt;br /&gt;
* &#039;&#039;&#039;GPU detection:&#039;&#039;&#039; Allocates GPUs automatically when building GPU software&lt;br /&gt;
* &#039;&#039;&#039;Flexible options:&#039;&#039;&#039; Customize cores (&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;), walltime (&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;), and installation prefix (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Build modes:&#039;&#039;&#039; &lt;br /&gt;
** Standard build (default)&lt;br /&gt;
** Rebuild (&amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;) - force rebuild even if already exists&lt;br /&gt;
** Module-only (&amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt;) - generate module file without building&lt;br /&gt;
** Dry-run (&amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;) - preview without building&lt;br /&gt;
* &#039;&#039;&#039;Search function:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; to find available easyconfig files&lt;br /&gt;
* &#039;&#039;&#039;Pass-through options:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; to pass additional EasyBuild options directly&lt;br /&gt;
&lt;br /&gt;
== Where Are Modules Installed? ==&lt;br /&gt;
&lt;br /&gt;
By default, modules are installed to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example (each architecture gets its own directory):&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt; - Milan-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt; - Genoa-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt; - MI300A-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt; - L40S-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt; - H200-specific modules&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Unlike the global system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;), your self-built modules do &#039;&#039;&#039;not&#039;&#039;&#039; use symbolic links by default. Each architecture gets its own separate directory. You can manually create symlinks if desired to mirror the global structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module files location:&#039;&#039;&#039; The actual module files that you load with &amp;lt;code&amp;gt;module load&amp;lt;/code&amp;gt; are placed in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/          # Architecture-independent modules&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/modules/all/   # Architecture-specific modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example module paths:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/genoa/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/mi300a/modules/all/ai/pytorch/2.1.2-foss-2023a.lua&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; On NEMO2, the module naming scheme converts all names to lowercase. While EasyBuild uses files like &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;, the resulting modules are named in lowercase: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;. This applies to all modules including compilers (&amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt;), libraries, etc.&lt;br /&gt;
&lt;br /&gt;
These paths are automatically added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt; when you load an architecture with &amp;lt;code&amp;gt;module load arch/&amp;amp;lt;arch&amp;amp;gt;&amp;lt;/code&amp;gt;, making your custom modules visible with &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can change the installation location with the &amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt; option or by setting the &amp;lt;code&amp;gt;PREFIX&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using Your Custom Modules ==&lt;br /&gt;
&lt;br /&gt;
After building, your modules are automatically available when you load the corresponding architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load the architecture you built for&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
&lt;br /&gt;
# Your custom modules now appear alongside system modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# Load your custom module (remember: lowercase names)&lt;br /&gt;
module load category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How it works:&#039;&#039;&#039; When you load &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt;, the following paths are added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/modules/all/&amp;lt;/code&amp;gt; - for architecture-independent modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/modules/all/&amp;lt;/code&amp;gt; - for genoa-specific modules&lt;br /&gt;
&lt;br /&gt;
This makes your custom-built modules visible alongside system modules when you run &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names appear in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;) due to NEMO2&#039;s naming scheme, even though the easyconfig files use capitalized names.&lt;br /&gt;
&lt;br /&gt;
== Common Build Options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Build with more cores for faster compilation (large packages)&lt;br /&gt;
eb-build-module.sh -c 64 -w 24 -m GCC-13.2.0&lt;br /&gt;
&lt;br /&gt;
# Rebuild an existing module&lt;br /&gt;
eb-build-module.sh -r -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# Pass additional EasyBuild options&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0 -- --force --debug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Need Help? ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Full script documentation:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
* &#039;&#039;&#039;Script options:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Options|Command-line options]]&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Examples|Usage examples]]&lt;br /&gt;
* &#039;&#039;&#039;Troubleshooting:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Troubleshooting|Common issues and solutions]]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;Available easyconfigs:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;eb-build-module.sh -s pattern&amp;lt;/code&amp;gt; to search&lt;br /&gt;
&lt;br /&gt;
= Compiling Your Own Software (Non-EasyBuild) =&lt;br /&gt;
&lt;br /&gt;
If you compile your own applications outside of EasyBuild (e.g., custom C/C++/Fortran code), you should create architecture-specific builds using the &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using $MODULE_ARCH in Your Workflows ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; variable is automatically set when you load an architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/milan&lt;br /&gt;
echo $MODULE_ARCH  # Output: milan&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use this in your directory structure:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Organize binaries by architecture&lt;br /&gt;
$HOME/software/$MODULE_ARCH/myapp/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Example paths for different architectures:&lt;br /&gt;
# ~/.local/software/milan/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/genoa/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/l40s/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Compile for Milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
gcc -O3 -march=znver3 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Compile for Genoa&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
gcc -O3 -march=znver4 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Cross-Architecture Binaries ==&lt;br /&gt;
&lt;br /&gt;
If you compile for one architecture but run on another, you must load the correct architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Request a Genoa node but run Milan-compiled code&lt;br /&gt;
salloc -n1 -p genoa&lt;br /&gt;
&lt;br /&gt;
# Load the architecture the code was compiled for&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now run your Milan-compiled binary on the Genoa node&lt;br /&gt;
$HOME/software/milan/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; This should only be done when Milan code is compatible with Genoa. Genoa code will likely not work on Milan nodes.&lt;br /&gt;
&lt;br /&gt;
= Testing Modules and Software =&lt;br /&gt;
&lt;br /&gt;
== Interactive Testing ==&lt;br /&gt;
&lt;br /&gt;
You can test modules and software interactively using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;salloc&amp;lt;/code&amp;gt; (see [[NEMO2/Slurm#Interactive_Jobs|Interactive Jobs]] and [[NEMO2/Slurm#Partitions|Partitions]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick tests on login nodes (up to 15 minutes):&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
srun -p login &amp;lt;command&amp;gt;&lt;br /&gt;
# or&lt;br /&gt;
salloc -p login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Testing on specific architecture:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Interactive session on Milan partition&lt;br /&gt;
salloc -n1 -p milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
module load YourModule&lt;br /&gt;
&amp;lt;your-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with AMD MI300A APU&lt;br /&gt;
salloc -n1 -p mi300a --gres=gpu:1&lt;br /&gt;
module load arch/mi300a&lt;br /&gt;
module load system/rocm  # ROCm for AMD GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with NVIDIA GPU (L40S example)&lt;br /&gt;
salloc -n1 -p l40s --gres=gpu:1&lt;br /&gt;
module load arch/l40s&lt;br /&gt;
module load system/cuda  # CUDA for NVIDIA GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you get MPI or memory errors, try using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; to launch your program: &amp;lt;code&amp;gt;srun &amp;lt;program&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Working with Module Listings =&lt;br /&gt;
&lt;br /&gt;
== Viewing Available Modules ==&lt;br /&gt;
&lt;br /&gt;
Basic module commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List all available modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# List modules for a specific category&lt;br /&gt;
module avail compiler&lt;br /&gt;
module avail math&lt;br /&gt;
module avail chem&lt;br /&gt;
&lt;br /&gt;
# Search for a specific module&lt;br /&gt;
module avail python&lt;br /&gt;
module avail gcc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing Long Module Lists ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; produces a very long list, use these techniques:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Get an overview:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module overview&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows a condensed summary of available modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Filter by category or name:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail compiler   # Show only compiler modules&lt;br /&gt;
module avail llvm       # Show only LLVM-related modules&lt;br /&gt;
module avail python     # Show only Python-related modules&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Hide module extensions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Many modules have extensions (additional packages/libraries). To hide these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Hide extensions for one command&lt;br /&gt;
module --nx avail&lt;br /&gt;
# or&lt;br /&gt;
module --no_extensions avail&lt;br /&gt;
&lt;br /&gt;
# Hide extensions permanently&lt;br /&gt;
export LMOD_AVAIL_EXTENSIONS=no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the export command to your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; to make it permanent.&lt;br /&gt;
&lt;br /&gt;
== Understanding Module Names ==&lt;br /&gt;
&lt;br /&gt;
EasyBuild module names on NEMO2 follow a specific format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All components are lowercase due to NEMO2&#039;s naming scheme.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; lang (programming language)&lt;br /&gt;
* &#039;&#039;&#039;Software:&#039;&#039;&#039; python (lowercase)&lt;br /&gt;
* &#039;&#039;&#039;Version:&#039;&#039;&#039; 3.11.3&lt;br /&gt;
* &#039;&#039;&#039;Toolchain:&#039;&#039;&#039; gcccore-12.3.0 (the compiler/libraries used to build it, also lowercase)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When building, you use the EasyBuild file with capitalized names (e.g., &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;), but the resulting module will be in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;). This applies to all parts: software names (python, not Python), toolchain components (gcccore, not GCCcore), and everything else.&lt;br /&gt;
&lt;br /&gt;
Common categories include:&lt;br /&gt;
* &amp;lt;code&amp;gt;lang/&amp;lt;/code&amp;gt; - Programming languages (python, r, julia, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;compiler/&amp;lt;/code&amp;gt; - Compilers (gcc, intel, llvm, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;system/&amp;lt;/code&amp;gt; - System software (cuda, mpi, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;bio/&amp;lt;/code&amp;gt; - Biology/Bioinformatics software&lt;br /&gt;
* &amp;lt;code&amp;gt;chem/&amp;lt;/code&amp;gt; - Chemistry software&lt;br /&gt;
* &amp;lt;code&amp;gt;math/&amp;lt;/code&amp;gt; - Mathematical software&lt;br /&gt;
* &amp;lt;code&amp;gt;ai/&amp;lt;/code&amp;gt; - Artificial Intelligence/Machine Learning&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt; - Libraries&lt;br /&gt;
* &amp;lt;code&amp;gt;devel/&amp;lt;/code&amp;gt; - Development tools&lt;br /&gt;
&lt;br /&gt;
When building your own modules, use the same naming convention for consistency.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Hardware&amp;diff=16138</id>
		<title>NEMO2/Hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Hardware&amp;diff=16138"/>
		<updated>2026-06-16T15:09:53Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Operating System and Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Operating System and Software ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Operating System&lt;br /&gt;
| [https://rockylinux.org Rocky Linux 9]  (similar to RHEL 9)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Queuing System&lt;br /&gt;
| [https://slurm.schedmd.com SLURM] (see [[NEMO2/Slurm]] for help)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | (Scientific) Libraries and Software&lt;br /&gt;
| [[Environment Modules]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Own Software Modules using EasyBuild and Spack&lt;br /&gt;
| [[NEMO2/Easybuild_Modules| Easybuild]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Own (Python) Environments with Conda&lt;br /&gt;
| [[Conda]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Containers with Apptainer/Singularity (and enroot in the future)&lt;br /&gt;
| [[Development/Containers]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Compute and Special Purpose Nodes ==&lt;br /&gt;
&lt;br /&gt;
For researchers from the scientific fields &#039;&#039;&#039;N&#039;&#039;&#039;euroscience, &#039;&#039;&#039;E&#039;&#039;&#039;lementary Particle Physics, &#039;&#039;&#039;M&#039;&#039;&#039;icrosystems Engineering and &#039;&#039;&#039;M&#039;&#039;&#039;aterials Science the bwForCluster &#039;&#039;&#039;NEMO&#039;&#039;&#039; offers about 260 compute nodes plus several special purpose nodes for login, interactive jobs, visualization, machine learning and ai.&lt;br /&gt;
&lt;br /&gt;
Node specification (see [[NEMO2/Slurm]] for slurm partitons):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;|&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Genoa Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Milan Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| L40S Partition&lt;br /&gt;
! style=&amp;quot;width:12%&amp;quot;| MI300A Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| H200 Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| RTX Partition&lt;br /&gt;
! style=&amp;quot;width:12%&amp;quot;| Login Partition&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| Quantity&lt;br /&gt;
| 106&lt;br /&gt;
| 137&lt;br /&gt;
| 9&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Processors / APU/GPU&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9654.html AMD EPYC 9654 (Genoa)]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/7003-series/amd-epyc-7763.html AMD EPYC 7763 (Milan)]&lt;br /&gt;
| 2x [https://www.intel.com/content/www/us/en/products/sku/237558/intel-xeon-platinum-8562y-processor-60m-cache-2-80-ghz/specifications.html Intel Xeon Platinum 8562Y+ (5th Gen)]&lt;br /&gt;
4x [https://www.nvidia.com/en-us/data-center/l40s/ NVIDIA L40S]&lt;br /&gt;
| 4x [https://www.amd.com/en/products/accelerators/instinct/mi300/mi300a.html AMD Instinct MI300A]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9654.html AMD EPYC 9654 (Genoa)]&lt;br /&gt;
8x [https://www.nvidia.com/en-us/data-center/h200/ NVIDIA H200]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/9005-series/amd-epyc-9655.html AMD EPYC 9655 (Turin)]&lt;br /&gt;
4x [https://www.nvidia.com/en-us/data-center/rtx-pro-6000-blackwell-server-edition/ NVIDIA RTX PRO 6000 Blackwell Server Edition]&lt;br /&gt;
| 1x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9354.html AMD EPYC 9354 (Genoa)]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Base Frequency/Boost Frequency (GHz) / APU/GPU Performance (TFLOPs/TOPs)&lt;br /&gt;
| 2.4/3.55&lt;br /&gt;
| 2.45/3.5&lt;br /&gt;
| 2.8/3.8&lt;br /&gt;
91.6 (FP32) / 733 (INT8)&lt;br /&gt;
| -/3.7&lt;br /&gt;
61.3 (FP64) / 122.6 (FP32) / 1960 (INT8)&lt;br /&gt;
| 2.4/3.55&lt;br /&gt;
34 (FP64) / 67 (FP32) / 3958 (INT8)&lt;br /&gt;
| 2.6/4.1&lt;br /&gt;
120 (FP32) / 4000 (FP4)&lt;br /&gt;
| 3.25/3.75&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | CPU Cores per Node&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 128&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 126&#039;&#039;&#039;&lt;br /&gt;
| 64&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 62&#039;&#039;&#039;&lt;br /&gt;
| 4x 24&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 92&#039;&#039;&#039;&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 32 (SMT on)&lt;br /&gt;
&#039;&#039;&#039;Usable for Users: 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | CPU Cores per APU/GPU&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| 15&lt;br /&gt;
| 23&lt;br /&gt;
| 23&lt;br /&gt;
| 47&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Memory&lt;br /&gt;
| 768 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 727 GiB, 745000 MiB, per Core: 3900 MiB&#039;&#039;&#039;&lt;br /&gt;
| 512 GiB, 3.2 GHZ (DDR4)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 4000 MiB&#039;&#039;&#039;&lt;br /&gt;
| 512 GiB, 5.6 GHz (DDR5)&lt;br /&gt;
4x 48 GB, 864 GB/s (GDDR6)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 8100 MiB&#039;&#039;&#039;&lt;br /&gt;
| 4x 128 GB, 5300 GB/s (HBM3)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 5300 MiB&#039;&#039;&#039;&lt;br /&gt;
| 1536 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
8x 141 GB, 4813 GB/s (HBM3e)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 1459 GiB, 1495000 MiB, per Core:7800 MiB&#039;&#039;&#039;&lt;br /&gt;
| 1536 GiB, 6 GHz (DDR5)&lt;br /&gt;
4x 96 GB, 1597 GB/s (GDDR7)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 1459 GiB, 1495000 MiB, per Core:7800 MiB&#039;&#039;&#039;&lt;br /&gt;
| 384 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
&#039;&#039;&#039;Usable for Users: 50 GiB, 51200 MiB, per Core: 12800 MiB&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Local NVMe (GB)&lt;br /&gt;
| 3840&lt;br /&gt;
| 1920&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 480&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Interconnect&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| Omni-Path 100&lt;br /&gt;
100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Genoa Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=genoa --ntasks=190 --mem=727GB # or: --mem=745000MB, or: --mem-per-cpu=3900MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Milan Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=milan --ntasks=126 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=4000MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example L40S Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=l40s --ntasks=62 --gres=gpu:4 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=8100MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example MI300A Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=mi300a --ntasks=92 --gres=gpu:4 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=5300MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example H200 Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=h200 --ntasks=190 --gres=gpu:8 --mem=1459GB # or: --mem=1495000MB, or: --mem-per-cpu=7800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example RTX Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=rtx --ntasks=190 --gres=gpu:4 --mem=1459GB # or: --mem=1495000MB, or: --mem-per-cpu=7800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Login Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=login --ntasks=4 --time=15:00 --mem=50GB + or: --mem=51200MB, or: --mem-per-cpu=12800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
(*) Slurm internally uses Mebi- (MiB) and Gibibyte (GiB), please multiply/divide with 1024 for (M/G).&lt;br /&gt;
&lt;br /&gt;
== File Systems ==&lt;br /&gt;
&lt;br /&gt;
NEMO2 offers a fast [https://docs.weka.io/ Weka] parallel filesystem, which is only limited by the uplink to this storage (&amp;gt;90GB/s).&lt;br /&gt;
The storage is used for &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; and &#039;&#039;&#039;[[workspace]]s&#039;&#039;&#039;.&lt;br /&gt;
There will be no backups. Snapshots for &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; are available (see below).&lt;br /&gt;
Additionally, each compute node provides temporary storage on the node-local NVMe disk.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;|&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| [[Workspace]]s&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| NVMe&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Visibility&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| global (100 GbE)&lt;br /&gt;
| node local&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Lifetime&lt;br /&gt;
| permanent&lt;br /&gt;
| workspace lifetime&lt;br /&gt;
(max. 100 days, extensions possible)&lt;br /&gt;
| batch job walltime&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Capacity&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| 1 PB&lt;br /&gt;
| 1.92/3.84 TB (logins 480 GB)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Quotas per &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;/Workspace&lt;br /&gt;
| 100 GB&lt;br /&gt;
| 5 TB (per workspace)&lt;br /&gt;
| --- &lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Snapshots&lt;br /&gt;
| hourly / daily / weekly [https://www.nemo.uni-freiburg.de/news/2025/11/17/snaphots-home/]&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Backups&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| &#039;&#039;&#039;There is NO storage backup!&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  global             : all nodes access the same file system&lt;br /&gt;
  local              : each node has its own file system&lt;br /&gt;
  permanent          : files are stored permanently&lt;br /&gt;
                       however, if an account has lost access,&lt;br /&gt;
                       the remaining data will be deleted after 6 months&lt;br /&gt;
  batch job walltime : files are removed at end of the batch job&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to Access Your Snapshots ===&lt;br /&gt;
&lt;br /&gt;
Your snapshots are available in the &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt; directory. To access your personal snapshots:&lt;br /&gt;
&lt;br /&gt;
# Navigate to &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt;&lt;br /&gt;
# Find the snapshot directory (e.g., &amp;lt;code&amp;gt;@GMT-2025.11.17-14.05.01&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Locate your user directory within the snapshot&lt;br /&gt;
&lt;br /&gt;
Example: If your home directory is &amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;, your snapshots are located at:&lt;br /&gt;
&amp;lt;code&amp;gt;/home/.snapshots/@GMT-2025.11.17-14.05.01/fr/fr_ab1234&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing File System Quotas ===&lt;br /&gt;
&lt;br /&gt;
You can list the quotas for your user using &amp;lt;code&amp;gt;nemoquota&amp;lt;/code&amp;gt; (prints &amp;lt;code&amp;gt;df --si&amp;lt;/code&amp;gt;) or &amp;lt;code&amp;gt;df &amp;lt;path_to_directory&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nemoquota&lt;br /&gt;
HOME / WORKSPACE          Used%       Used       Free      Quota&lt;br /&gt;
HOME                         8%       7.5G        93G       101G&lt;br /&gt;
conda                        2%        59G       5.0T       5.0T&lt;br /&gt;
container                    6%       252G       4.8T       5.0T&lt;br /&gt;
&lt;br /&gt;
$ df --si $HOME&lt;br /&gt;
Filesystem        Size  Used Avail Use% Mounted on&lt;br /&gt;
10.14.101.1/home  101G  7.5G   93G   8% /home&lt;br /&gt;
&lt;br /&gt;
$ df --si $(ws_find conda)&lt;br /&gt;
Filesystem        Size  Used Avail Use% Mounted on&lt;br /&gt;
10.14.101.1/work  5.0T   59G  5.0T   2% /work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Hardware&amp;diff=16137</id>
		<title>NEMO2/Hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Hardware&amp;diff=16137"/>
		<updated>2026-06-16T15:09:12Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Operating System and Software ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Operating System&lt;br /&gt;
| [https://rockylinux.org Rocky Linux 9]  (similar to RHEL 9)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Queuing System&lt;br /&gt;
| [https://slurm.schedmd.com SLURM] (see [[NEMO2/Slurm]] for help)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | (Scientific) Libraries and Software&lt;br /&gt;
| [[Environment Modules]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Own Software Modules using EasyBuild and Spack&lt;br /&gt;
| [[Easybuild Modules]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Own (Python) Environments with Conda&lt;br /&gt;
| [[Conda]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Containers with Apptainer/Singularity (and enroot in the future)&lt;br /&gt;
| [[Development/Containers]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compute and Special Purpose Nodes ==&lt;br /&gt;
&lt;br /&gt;
For researchers from the scientific fields &#039;&#039;&#039;N&#039;&#039;&#039;euroscience, &#039;&#039;&#039;E&#039;&#039;&#039;lementary Particle Physics, &#039;&#039;&#039;M&#039;&#039;&#039;icrosystems Engineering and &#039;&#039;&#039;M&#039;&#039;&#039;aterials Science the bwForCluster &#039;&#039;&#039;NEMO&#039;&#039;&#039; offers about 260 compute nodes plus several special purpose nodes for login, interactive jobs, visualization, machine learning and ai.&lt;br /&gt;
&lt;br /&gt;
Node specification (see [[NEMO2/Slurm]] for slurm partitons):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;|&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Genoa Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Milan Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| L40S Partition&lt;br /&gt;
! style=&amp;quot;width:12%&amp;quot;| MI300A Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| H200 Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| RTX Partition&lt;br /&gt;
! style=&amp;quot;width:12%&amp;quot;| Login Partition&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| Quantity&lt;br /&gt;
| 106&lt;br /&gt;
| 137&lt;br /&gt;
| 9&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Processors / APU/GPU&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9654.html AMD EPYC 9654 (Genoa)]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/7003-series/amd-epyc-7763.html AMD EPYC 7763 (Milan)]&lt;br /&gt;
| 2x [https://www.intel.com/content/www/us/en/products/sku/237558/intel-xeon-platinum-8562y-processor-60m-cache-2-80-ghz/specifications.html Intel Xeon Platinum 8562Y+ (5th Gen)]&lt;br /&gt;
4x [https://www.nvidia.com/en-us/data-center/l40s/ NVIDIA L40S]&lt;br /&gt;
| 4x [https://www.amd.com/en/products/accelerators/instinct/mi300/mi300a.html AMD Instinct MI300A]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9654.html AMD EPYC 9654 (Genoa)]&lt;br /&gt;
8x [https://www.nvidia.com/en-us/data-center/h200/ NVIDIA H200]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/9005-series/amd-epyc-9655.html AMD EPYC 9655 (Turin)]&lt;br /&gt;
4x [https://www.nvidia.com/en-us/data-center/rtx-pro-6000-blackwell-server-edition/ NVIDIA RTX PRO 6000 Blackwell Server Edition]&lt;br /&gt;
| 1x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9354.html AMD EPYC 9354 (Genoa)]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Base Frequency/Boost Frequency (GHz) / APU/GPU Performance (TFLOPs/TOPs)&lt;br /&gt;
| 2.4/3.55&lt;br /&gt;
| 2.45/3.5&lt;br /&gt;
| 2.8/3.8&lt;br /&gt;
91.6 (FP32) / 733 (INT8)&lt;br /&gt;
| -/3.7&lt;br /&gt;
61.3 (FP64) / 122.6 (FP32) / 1960 (INT8)&lt;br /&gt;
| 2.4/3.55&lt;br /&gt;
34 (FP64) / 67 (FP32) / 3958 (INT8)&lt;br /&gt;
| 2.6/4.1&lt;br /&gt;
120 (FP32) / 4000 (FP4)&lt;br /&gt;
| 3.25/3.75&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | CPU Cores per Node&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 128&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 126&#039;&#039;&#039;&lt;br /&gt;
| 64&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 62&#039;&#039;&#039;&lt;br /&gt;
| 4x 24&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 92&#039;&#039;&#039;&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 32 (SMT on)&lt;br /&gt;
&#039;&#039;&#039;Usable for Users: 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | CPU Cores per APU/GPU&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| 15&lt;br /&gt;
| 23&lt;br /&gt;
| 23&lt;br /&gt;
| 47&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Memory&lt;br /&gt;
| 768 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 727 GiB, 745000 MiB, per Core: 3900 MiB&#039;&#039;&#039;&lt;br /&gt;
| 512 GiB, 3.2 GHZ (DDR4)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 4000 MiB&#039;&#039;&#039;&lt;br /&gt;
| 512 GiB, 5.6 GHz (DDR5)&lt;br /&gt;
4x 48 GB, 864 GB/s (GDDR6)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 8100 MiB&#039;&#039;&#039;&lt;br /&gt;
| 4x 128 GB, 5300 GB/s (HBM3)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 5300 MiB&#039;&#039;&#039;&lt;br /&gt;
| 1536 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
8x 141 GB, 4813 GB/s (HBM3e)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 1459 GiB, 1495000 MiB, per Core:7800 MiB&#039;&#039;&#039;&lt;br /&gt;
| 1536 GiB, 6 GHz (DDR5)&lt;br /&gt;
4x 96 GB, 1597 GB/s (GDDR7)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 1459 GiB, 1495000 MiB, per Core:7800 MiB&#039;&#039;&#039;&lt;br /&gt;
| 384 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
&#039;&#039;&#039;Usable for Users: 50 GiB, 51200 MiB, per Core: 12800 MiB&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Local NVMe (GB)&lt;br /&gt;
| 3840&lt;br /&gt;
| 1920&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 480&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Interconnect&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| Omni-Path 100&lt;br /&gt;
100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Genoa Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=genoa --ntasks=190 --mem=727GB # or: --mem=745000MB, or: --mem-per-cpu=3900MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Milan Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=milan --ntasks=126 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=4000MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example L40S Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=l40s --ntasks=62 --gres=gpu:4 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=8100MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example MI300A Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=mi300a --ntasks=92 --gres=gpu:4 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=5300MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example H200 Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=h200 --ntasks=190 --gres=gpu:8 --mem=1459GB # or: --mem=1495000MB, or: --mem-per-cpu=7800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example RTX Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=rtx --ntasks=190 --gres=gpu:4 --mem=1459GB # or: --mem=1495000MB, or: --mem-per-cpu=7800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Login Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=login --ntasks=4 --time=15:00 --mem=50GB + or: --mem=51200MB, or: --mem-per-cpu=12800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
(*) Slurm internally uses Mebi- (MiB) and Gibibyte (GiB), please multiply/divide with 1024 for (M/G).&lt;br /&gt;
&lt;br /&gt;
== File Systems ==&lt;br /&gt;
&lt;br /&gt;
NEMO2 offers a fast [https://docs.weka.io/ Weka] parallel filesystem, which is only limited by the uplink to this storage (&amp;gt;90GB/s).&lt;br /&gt;
The storage is used for &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; and &#039;&#039;&#039;[[workspace]]s&#039;&#039;&#039;.&lt;br /&gt;
There will be no backups. Snapshots for &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; are available (see below).&lt;br /&gt;
Additionally, each compute node provides temporary storage on the node-local NVMe disk.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;|&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| [[Workspace]]s&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| NVMe&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Visibility&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| global (100 GbE)&lt;br /&gt;
| node local&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Lifetime&lt;br /&gt;
| permanent&lt;br /&gt;
| workspace lifetime&lt;br /&gt;
(max. 100 days, extensions possible)&lt;br /&gt;
| batch job walltime&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Capacity&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| 1 PB&lt;br /&gt;
| 1.92/3.84 TB (logins 480 GB)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Quotas per &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;/Workspace&lt;br /&gt;
| 100 GB&lt;br /&gt;
| 5 TB (per workspace)&lt;br /&gt;
| --- &lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Snapshots&lt;br /&gt;
| hourly / daily / weekly [https://www.nemo.uni-freiburg.de/news/2025/11/17/snaphots-home/]&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Backups&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| &#039;&#039;&#039;There is NO storage backup!&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  global             : all nodes access the same file system&lt;br /&gt;
  local              : each node has its own file system&lt;br /&gt;
  permanent          : files are stored permanently&lt;br /&gt;
                       however, if an account has lost access,&lt;br /&gt;
                       the remaining data will be deleted after 6 months&lt;br /&gt;
  batch job walltime : files are removed at end of the batch job&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to Access Your Snapshots ===&lt;br /&gt;
&lt;br /&gt;
Your snapshots are available in the &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt; directory. To access your personal snapshots:&lt;br /&gt;
&lt;br /&gt;
# Navigate to &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt;&lt;br /&gt;
# Find the snapshot directory (e.g., &amp;lt;code&amp;gt;@GMT-2025.11.17-14.05.01&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Locate your user directory within the snapshot&lt;br /&gt;
&lt;br /&gt;
Example: If your home directory is &amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;, your snapshots are located at:&lt;br /&gt;
&amp;lt;code&amp;gt;/home/.snapshots/@GMT-2025.11.17-14.05.01/fr/fr_ab1234&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing File System Quotas ===&lt;br /&gt;
&lt;br /&gt;
You can list the quotas for your user using &amp;lt;code&amp;gt;nemoquota&amp;lt;/code&amp;gt; (prints &amp;lt;code&amp;gt;df --si&amp;lt;/code&amp;gt;) or &amp;lt;code&amp;gt;df &amp;lt;path_to_directory&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nemoquota&lt;br /&gt;
HOME / WORKSPACE          Used%       Used       Free      Quota&lt;br /&gt;
HOME                         8%       7.5G        93G       101G&lt;br /&gt;
conda                        2%        59G       5.0T       5.0T&lt;br /&gt;
container                    6%       252G       4.8T       5.0T&lt;br /&gt;
&lt;br /&gt;
$ df --si $HOME&lt;br /&gt;
Filesystem        Size  Used Avail Use% Mounted on&lt;br /&gt;
10.14.101.1/home  101G  7.5G   93G   8% /home&lt;br /&gt;
&lt;br /&gt;
$ df --si $(ws_find conda)&lt;br /&gt;
Filesystem        Size  Used Avail Use% Mounted on&lt;br /&gt;
10.14.101.1/work  5.0T   59G  5.0T   2% /work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16136</id>
		<title>NEMO2/Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16136"/>
		<updated>2026-06-16T15:04:49Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Accounting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The bwForCluster NEMO 2 uses Slurm ([https://slurm.schedmd.com/ https://slurm.schedmd.com/]) for scheduling compute jobs. &lt;br /&gt;
&lt;br /&gt;
= Slurm Command Overview =&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Slurm commands !! Brief explanation&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sbatch.html sbatch] || Submits a job and queues it in an input queue&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/salloc.html salloc] || Request resources for an interactive job&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/squeue.html squeue] || Displays information about active, eligible, blocked, and/or recently completed jobs &lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html scontrol] || Displays detailed job state information&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sstat.html sstat] || Displays status information about a running job&lt;br /&gt;
|- &lt;br /&gt;
| [https://slurm.schedmd.com/scancel.html scancel] || Cancels a job&lt;br /&gt;
|- &lt;br /&gt;
| seff  || Shows the &amp;quot;job efficiency&amp;quot; of a job after it has finished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Submitting Jobs on the bwForCluster NEMO 2 =&lt;br /&gt;
&lt;br /&gt;
Batch jobs are submitted with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A job script contains options for Slurm in lines beginning with &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; as well as your commands which you want to execute on the compute nodes. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --time=00:14:00&lt;br /&gt;
#SBATCH --mem=1gb&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can override options from the script on the command-line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch --time=03:00:00 &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resource Requests ==&lt;br /&gt;
&lt;br /&gt;
Important resource request options for the Slurm command sbatch are:&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !!  Slurm (sbatch)&lt;br /&gt;
|-&lt;br /&gt;
| #SBATCH|| Script directive&lt;br /&gt;
|-&lt;br /&gt;
| --time=&amp;lt;hh:mm:ss&amp;gt; (-t &amp;lt;hh:mm:ss&amp;gt;)|| Wall time limit&lt;br /&gt;
|-&lt;br /&gt;
| --job-name=&amp;lt;name&amp;gt;  (-J &amp;lt;name&amp;gt;)|| Job name&lt;br /&gt;
|-&lt;br /&gt;
| --nodes=&amp;lt;count&amp;gt; (-N &amp;lt;count&amp;gt;)|| Node count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks=&amp;lt;count&amp;gt; (-n &amp;lt;count&amp;gt;)|| Core count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks-per-node=&amp;lt;count&amp;gt;|| Process count per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem=&amp;lt;limit&amp;gt;|| Memory limit per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem-per-cpu=&amp;lt;limit&amp;gt;|| Memory limit per process&lt;br /&gt;
|-&lt;br /&gt;
| --gpus=&amp;lt;count&amp;gt; || GPU count&lt;br /&gt;
|-&lt;br /&gt;
| --gres=gpu:&amp;lt;count&amp;gt;|| GPU count (gres = &amp;quot;generic resource&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| --exclusive|| Node exclusive job&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nodes and Cores&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Slurm provides a number of options to request nodes and cores.&lt;br /&gt;
Typically, using &amp;lt;code&amp;gt;--nodes=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--ntasks-per-node=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; should work for all your jobs. For single core jobs, it would be sufficient to use the option &amp;lt;code&amp;gt;--ntasks=1&amp;lt;/code&amp;gt;. Specifying only &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; may lead to slurm trying to distribute tasks over more than one node even if you requested a small amount of cores.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Memory&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Memory can be requested with either the option &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per node) or &amp;lt;code&amp;gt;--mem-per-cpu=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per process). When looking up the maximum available memory for a certain node type subtract about 5 GB for the operating system. Specify the memory limit as a value-unit-pair, for example 500mb or 8gb.&lt;br /&gt;
&lt;br /&gt;
In most cases it is preferable to use the &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GPUs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
GPUs are requested as &amp;quot;generic resources&amp;quot; with &amp;lt;code&amp;gt;--gres=gpu:&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--gpus=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Default Values ==&lt;br /&gt;
&lt;br /&gt;
Default values for jobs are:&lt;br /&gt;
&lt;br /&gt;
* Runtime: --time=01:00:00 (1 hour)&lt;br /&gt;
* Nodes: --nodes=1 (one node)&lt;br /&gt;
* Tasks: --tasks-per-node=1 (one task per node)&lt;br /&gt;
* Cores: --cpus-per-task=1 (one core per task)&lt;br /&gt;
* Memory: --mem-per-cpu=1gb (1 GB per core)&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
On bwForCluster NEMO 2 it is &#039;&#039;&#039;optional&#039;&#039;&#039; to request a partition with &amp;lt;code&amp;gt;--partition=&amp;lt;partition_name&amp;gt;&amp;lt;/code&amp;gt; on job submission. Within a partition job allocations are routed automatically to the most suitable compute node(s) for the requested resources (e.g. amount of nodes and cores, memory, number of GPUs). The &#039;cpu&#039; partition is the default partition, if no partition is requested. It will start jobs either on &#039;milan&#039; or &#039;genoa&#039; nodes.&lt;br /&gt;
&lt;br /&gt;
The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes. You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node). If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All&#039;&#039;&#039; partitions are operated in shared mode, i.e. jobs from different users can run on the same node. Jobs can get exclusive access to compute nodes in these partitions with the &amp;lt;code&amp;gt;--exclusive&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment.&lt;br /&gt;
&lt;br /&gt;
See [[NEMO2/Hardware]] for more information on the exact hardware specifications.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:5%&amp;quot;| Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Multi Node&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Nodes&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| APU/GPU&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Cores per APU/GPU&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Defaults&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot;| Limits&lt;br /&gt;
|-&lt;br /&gt;
| cpu*&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 7763/9654 (Milan/Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00, nodes=1&lt;br /&gt;
|-&lt;br /&gt;
| genoa&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| milan&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 7763 (Milan)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| l40s&lt;br /&gt;
| single node&lt;br /&gt;
| 2x Intel Xeon Platinum 8562Y+ (5th Gen)&lt;br /&gt;
| 4x NVIDIA L40S&lt;br /&gt;
| 15&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| mi300a&lt;br /&gt;
| single node&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| h200&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| 8x NVIDIA H200&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=8&lt;br /&gt;
|-&lt;br /&gt;
| rtx&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9655 (Turin)&lt;br /&gt;
| 4x NVIDIA RTX PRO 6000 Blackwell Server Edition&lt;br /&gt;
| 47&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| login&lt;br /&gt;
| multi node&lt;br /&gt;
| 1x AMD EPYC 9354 (Genoa) (SMT on)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=15:00, mem-per-cpu=1gb&lt;br /&gt;
| time=15:00, nodes=2, ntasks=4, mem=50gb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; default partition&lt;br /&gt;
&lt;br /&gt;
== Show free nodes ==&lt;br /&gt;
&lt;br /&gt;
The Slurm command &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; is used to view partition and node information for a system running Slurm.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sinfo -t idle&lt;br /&gt;
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST&lt;br /&gt;
cpu*         up 4-00:00:00      2  idle  n[3303-3304]&lt;br /&gt;
genoa        up 4-00:00:00      0    n/a &lt;br /&gt;
milan        up 4-00:00:00      2  idle  n[3303-3304]&lt;br /&gt;
l40s         up 2-00:00:00      0    n/a &lt;br /&gt;
h200         up 2-00:00:00      0    n/a &lt;br /&gt;
rtx          up 2-00:00:00      0    n/a &lt;br /&gt;
mi300a       up 2-00:00:00      3   idle a[3601-3603]&lt;br /&gt;
login        up      15:00      2   idle login[1-2]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Jobs with squeue ==&lt;br /&gt;
&lt;br /&gt;
After you submitted the job, you can see it waiting using the &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
(also read the man page with &amp;lt;code&amp;gt;man squeue&amp;lt;/code&amp;gt; for more information on how to use the command)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
&amp;gt; squeue&lt;br /&gt;
             JOBID PARTITION     NAME       USER  ST       TIME  NODES NODELIST(REASON)&lt;br /&gt;
               426       cpu      20k   fr_xy0123  R       0:02      2 n[4101-4102]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output shows: &lt;br /&gt;
* JOBID: the jobid is an unique number your job gets&lt;br /&gt;
* PARTITION: the cluster can be divided in different types of nodes.&lt;br /&gt;
* NAME: the name you gave your job with the --job-name= option&lt;br /&gt;
* USER: your username&lt;br /&gt;
* ST: the state the job is in. R = running, PD = pending, CD = completed. See man page for a full list on states. &lt;br /&gt;
* TIME: how long the job has been running&lt;br /&gt;
* NODES: how many nodes were requested&lt;br /&gt;
* NODELIST(REASON): either show the node(s) the job is running on, or a reason why it hasn&#039;t started&lt;br /&gt;
&lt;br /&gt;
==scontrol==&lt;br /&gt;
&lt;br /&gt;
You can then show more info on one specific running job using the &amp;lt;code&amp;gt;scontrol&amp;lt;/code&amp;gt; command, e.g for the job with ID 426 listed above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show job 426&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for job with JobID 426&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show jobs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for all your jobs&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
scontrol write batch_script 426 -&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
display job script of a running job. The &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; is a special filename which means &amp;quot;write to the terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Monitoring a Started Job ==&lt;br /&gt;
&lt;br /&gt;
After a job has started, you can ssh from a login node to the node(s) the job is running on, using the node name from NODELIST, e.g. if your job runs on n4101:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt; ssh n4101 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Job Examples ==&lt;br /&gt;
&lt;br /&gt;
Here you can find some example scripts for batch jobs.&lt;br /&gt;
&lt;br /&gt;
=== Serial Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=20:00:00&lt;br /&gt;
#SBATCH --mem=3800mb&lt;br /&gt;
./my_serial_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 495GB can run on all node types associated with the cpu partition (routing to either milan or genoa nodes).&lt;br /&gt;
&lt;br /&gt;
=== Multi-threaded Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --cpus-per-task=32&lt;br /&gt;
#SBATCH --time=01:30:00&lt;br /&gt;
#SBATCH --mem=50gb&lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
./my_multithreaded_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--ntasks-per-node&amp;lt;/code&amp;gt; up to 126 and &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 500gb can run on all node types associated with the milan partition.&lt;br /&gt;
* With &amp;lt;code&amp;gt;export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&amp;lt;/code&amp;gt; you can set the number of threads according to the number of resources requested.&lt;br /&gt;
&lt;br /&gt;
=== MPI Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=milan&lt;br /&gt;
#SBATCH --nodes=2&lt;br /&gt;
#SBATCH --ntasks-per-node=126&lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
module load mpi/openmpi   #  loads dependencies&lt;br /&gt;
srun ./my_mpi_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; requests the memory per node. The maximum is 500gb for partition milan.&lt;br /&gt;
* The Compiler and MPI modules used for the compilation must be loaded before the start of the program.&lt;br /&gt;
* &#039;&#039;&#039;It is recommended to start MPI programs with &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
&lt;br /&gt;
Interactive jobs must NOT run on the login nodes, however resources for interactive jobs can be requested using srun.&lt;br /&gt;
The following examples requests an interactive session on 1 core for 2 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After execution of this command wait until the queueing system has granted you the requested resources. Once granted you will be automatically logged on the allocated compute node.&lt;br /&gt;
&lt;br /&gt;
If you use applications or tools which provide a GUI, enable X-forwarding for your interactive session with. We suggest using VNC instead of X-forwarding:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00 --x11&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the walltime limit has been reached you will be automatically logged out from the compute node.&lt;br /&gt;
&lt;br /&gt;
== Interactive Tests on the Login Nodes ==&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment. The limits are 4 cores and 15 minutes of walltime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ salloc --partition=login --ntasks=4&lt;br /&gt;
$ srun -p login &amp;lt;application&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Job Monitoring =&lt;br /&gt;
&lt;br /&gt;
== Information about submitted jobs ==&lt;br /&gt;
&lt;br /&gt;
For an overview of your submitted jobs use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ squeue&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get detailed information about a specific job use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ scontrol show job &amp;lt;jobid&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A job start may be delayed for various reasons:&lt;br /&gt;
* (QOSMaxCpuPerUserLimit) - There is a limit to how many CPU cores a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMaxGRESPerUser) - There is a limit to how many GPUs a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMinGRES) - The job was submitted to a gpu partition without requesting a GPU.&lt;br /&gt;
* (launch failed requeued held) - The job has failed to start. You may be able to resume it using scontrol. Alternatively you can cancel it and submit it again.&lt;br /&gt;
For further reasons please refer to: https://slurm.schedmd.com/job_reason_codes.html&lt;br /&gt;
&lt;br /&gt;
== Information about resource usage of running jobs ==&lt;br /&gt;
&lt;br /&gt;
You can monitor the resource usage of running jobs with the sstat command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sstat --format=JobId,AveCPU,AveRSS,MaxRSS -j &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show average CPU time, average and maximum memory consumption of all tasks in the running job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sstat -e&amp;lt;/code&amp;gt; command shows a list of fields that can be specified with the &amp;lt;code&amp;gt;--format&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
== Interactive access to running jobs ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to attach an interactive shell to a running job with command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ srun --jobid=&amp;lt;jobid&amp;gt; --overlap --pty /bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands like &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; show you the most busy processes on the node. To exit &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; type &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To monitor your GPU processes use the command &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; on AMD APUs &amp;lt;code&amp;gt;rocm-smi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Job Feedback ==&lt;br /&gt;
&lt;br /&gt;
You get feedback on resource usage and job efficiency for completed jobs with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ seff &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
Job ID: 426&lt;br /&gt;
Cluster: nemo&lt;br /&gt;
User/Group: fr_ab0123/fr_fr&lt;br /&gt;
State: COMPLETED (exit code 0)&lt;br /&gt;
Nodes: 2&lt;br /&gt;
Cores per node: 190&lt;br /&gt;
CPU Utilized: 19:13:22&lt;br /&gt;
CPU Efficiency: 91.06% of 21:06:40 core-walltime&lt;br /&gt;
Job Wall-clock time: 00:03:20&lt;br /&gt;
Memory Utilized: 15.48 GB&lt;br /&gt;
Memory Efficiency: 1.10% of 1.38 TB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* Nodes: Number of allocated nodes for the job.&lt;br /&gt;
* Cores per node: Number of physical cores per node allocated for the job.&lt;br /&gt;
* CPU Utilized: Sum of utilized core time.&lt;br /&gt;
* CPU Efficiency: &#039;CPU Utilized&#039; with respect to core-walltime (= &#039;Nodes&#039; x &#039;Cores per node&#039; x &#039;Job Wall-clock time&#039;) in percent. &lt;br /&gt;
* Job Wall-clock time: runtime of the job.&lt;br /&gt;
* Memory Utilized: Sum of memory used. For multi node MPI jobs the sum is only correct when &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; is used instead of &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Memory Efficiency: &#039;Memory Utilized&#039; with respect to total allocated memory for the job.&lt;br /&gt;
&lt;br /&gt;
= Queue / Partition Limits =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Per-user CPU and core-minute limits depend on the partition/QOS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Partition/QOS !! Max Cores (QOSMaxCpuPerUserLimit) !! Max Core-Minutes Running (MaxCpuRunMinsPerUser)&lt;br /&gt;
|-&lt;br /&gt;
| cpu (default) || 12,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| genoa || 8,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| milan || 8,000 || 12,428,640&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The core-minutes limit is calculated as (running CPU cores) × (remaining runtime of all jobs in minutes). Example for genoa:&lt;br /&gt;
&amp;lt;code&amp;gt;8000 cores × 30h × 60min = 14,400,000 core-minutes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is constantly evaluated, you do not have to do anything.&lt;br /&gt;
This value decreases after a few minutes (running CPU cores * remaining runtime of all jobs in minutes) or when a job ends.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes.&#039;&#039;&#039;&lt;br /&gt;
You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node).&lt;br /&gt;
If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
Common NEMO2 job codes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Queue Job Code&lt;br /&gt;
! style=&amp;quot;width:80%&amp;quot;| Reason&lt;br /&gt;
|-&lt;br /&gt;
| MaxCpuRunMinsPerUser&lt;br /&gt;
| You are currently running more core minutes than permitted. This value decreases automatically over time.&lt;br /&gt;
|-&lt;br /&gt;
| PartitionNodeLimit&lt;br /&gt;
| You try to run a multi node job on a single node partition.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxCpuPerUserLimit&lt;br /&gt;
| Your job cannot be started as your user would otherwise exceed the maximum permitted cores for one user.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxGRESPerUser&lt;br /&gt;
| Your job exceeds the per-user GPU limit (l40s: 16 GPUs, h200: 8 GPUs, rtx: 4 GPUs, mi300a: 8 GPUs).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check additional [https://slurm.schedmd.com/job_reason_codes.html reason codes] at Schedmd.&lt;br /&gt;
&lt;br /&gt;
= Accounting =&lt;br /&gt;
&lt;br /&gt;
Slurm tracks resource usage per job, user, and research project (RV/account). No CPU-hour budget is consumed — the accounting data is purely informational and useful for analysing your usage.&lt;br /&gt;
&lt;br /&gt;
== Job Details ==&lt;br /&gt;
&lt;br /&gt;
Show accounting data for a specific job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -j &amp;lt;jobid&amp;gt; --format=user,jobid,account,nnodes,ncpus,elapsed,AllocTRES%60&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Job History for a User ==&lt;br /&gt;
&lt;br /&gt;
Retrieve the job history for your own user over a time period:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -u &amp;lt;user&amp;gt; -S 2026-06-01 -E 2026-06-16 --format=user,jobid,account,partition,nnodes,ncpus,elapsed,state%12&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Core-Hour Usage (own user) ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;sreport&amp;lt;/code&amp;gt; for fast aggregated queries — it reads pre-aggregated data from the database and is much faster than &amp;lt;code&amp;gt;sacct -a&amp;lt;/code&amp;gt; (which iterates every job step). Without &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;, only your own data is shown:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
# Your CPU-hours this month, broken down by account/RV&lt;br /&gt;
$ sreport user top -t hour Start=$(date +%Y-%m-01) Users=$USER&lt;br /&gt;
&lt;br /&gt;
# For a specific time range&lt;br /&gt;
$ sreport user top -t hour Start=2026-05-01 End=2026-05-31 Users=$USER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Core-Hour Usage per Research Project (RV / Account) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
# Your usage broken down by account/RV&lt;br /&gt;
$ sreport cluster AccountUtilizationByUser -t hour Start=$(date +%Y-%m-01) Users=$USER&lt;br /&gt;
&lt;br /&gt;
# All users of one specific account/RV (e.g. bw12a001)&lt;br /&gt;
$ sreport cluster AccountUtilizationByUser -t hour Start=$(date +%Y-%m-01) Accounts=bw12a001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPU-Hour Usage ==&lt;br /&gt;
&lt;br /&gt;
For GPU jobs, filter by partition. Without &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; only your own jobs are shown:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
# Your GPU-hours on the l40s partition this month&lt;br /&gt;
$ sacct -S $(date +%Y-%m-01) -E now -r l40s \&lt;br /&gt;
    --format=jobid,elapsed,AllocTRES%60 \&lt;br /&gt;
    --state=CD,F,TO,OOM \&lt;br /&gt;
    | awk &#039;/gpu=/ {&lt;br /&gt;
        match($3, /gpu=([0-9]+)/, g);&lt;br /&gt;
        split($2, t, &amp;quot;:&amp;quot;);&lt;br /&gt;
        h = t[1]*1 + t[2]/60 + t[3]/3600;&lt;br /&gt;
        total += g[1] * h&lt;br /&gt;
      }&lt;br /&gt;
      END { printf &amp;quot;%.1f GPU-hours\n&amp;quot;, total }&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16135</id>
		<title>NEMO2/Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16135"/>
		<updated>2026-06-16T14:37:33Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Show free nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The bwForCluster NEMO 2 uses Slurm ([https://slurm.schedmd.com/ https://slurm.schedmd.com/]) for scheduling compute jobs. &lt;br /&gt;
&lt;br /&gt;
= Slurm Command Overview =&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Slurm commands !! Brief explanation&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sbatch.html sbatch] || Submits a job and queues it in an input queue&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/salloc.html salloc] || Request resources for an interactive job&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/squeue.html squeue] || Displays information about active, eligible, blocked, and/or recently completed jobs &lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html scontrol] || Displays detailed job state information&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sstat.html sstat] || Displays status information about a running job&lt;br /&gt;
|- &lt;br /&gt;
| [https://slurm.schedmd.com/scancel.html scancel] || Cancels a job&lt;br /&gt;
|- &lt;br /&gt;
| seff  || Shows the &amp;quot;job efficiency&amp;quot; of a job after it has finished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Submitting Jobs on the bwForCluster NEMO 2 =&lt;br /&gt;
&lt;br /&gt;
Batch jobs are submitted with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A job script contains options for Slurm in lines beginning with &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; as well as your commands which you want to execute on the compute nodes. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --time=00:14:00&lt;br /&gt;
#SBATCH --mem=1gb&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can override options from the script on the command-line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch --time=03:00:00 &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resource Requests ==&lt;br /&gt;
&lt;br /&gt;
Important resource request options for the Slurm command sbatch are:&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !!  Slurm (sbatch)&lt;br /&gt;
|-&lt;br /&gt;
| #SBATCH|| Script directive&lt;br /&gt;
|-&lt;br /&gt;
| --time=&amp;lt;hh:mm:ss&amp;gt; (-t &amp;lt;hh:mm:ss&amp;gt;)|| Wall time limit&lt;br /&gt;
|-&lt;br /&gt;
| --job-name=&amp;lt;name&amp;gt;  (-J &amp;lt;name&amp;gt;)|| Job name&lt;br /&gt;
|-&lt;br /&gt;
| --nodes=&amp;lt;count&amp;gt; (-N &amp;lt;count&amp;gt;)|| Node count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks=&amp;lt;count&amp;gt; (-n &amp;lt;count&amp;gt;)|| Core count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks-per-node=&amp;lt;count&amp;gt;|| Process count per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem=&amp;lt;limit&amp;gt;|| Memory limit per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem-per-cpu=&amp;lt;limit&amp;gt;|| Memory limit per process&lt;br /&gt;
|-&lt;br /&gt;
| --gpus=&amp;lt;count&amp;gt; || GPU count&lt;br /&gt;
|-&lt;br /&gt;
| --gres=gpu:&amp;lt;count&amp;gt;|| GPU count (gres = &amp;quot;generic resource&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| --exclusive|| Node exclusive job&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nodes and Cores&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Slurm provides a number of options to request nodes and cores.&lt;br /&gt;
Typically, using &amp;lt;code&amp;gt;--nodes=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--ntasks-per-node=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; should work for all your jobs. For single core jobs, it would be sufficient to use the option &amp;lt;code&amp;gt;--ntasks=1&amp;lt;/code&amp;gt;. Specifying only &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; may lead to slurm trying to distribute tasks over more than one node even if you requested a small amount of cores.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Memory&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Memory can be requested with either the option &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per node) or &amp;lt;code&amp;gt;--mem-per-cpu=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per process). When looking up the maximum available memory for a certain node type subtract about 5 GB for the operating system. Specify the memory limit as a value-unit-pair, for example 500mb or 8gb.&lt;br /&gt;
&lt;br /&gt;
In most cases it is preferable to use the &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GPUs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
GPUs are requested as &amp;quot;generic resources&amp;quot; with &amp;lt;code&amp;gt;--gres=gpu:&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--gpus=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Default Values ==&lt;br /&gt;
&lt;br /&gt;
Default values for jobs are:&lt;br /&gt;
&lt;br /&gt;
* Runtime: --time=01:00:00 (1 hour)&lt;br /&gt;
* Nodes: --nodes=1 (one node)&lt;br /&gt;
* Tasks: --tasks-per-node=1 (one task per node)&lt;br /&gt;
* Cores: --cpus-per-task=1 (one core per task)&lt;br /&gt;
* Memory: --mem-per-cpu=1gb (1 GB per core)&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
On bwForCluster NEMO 2 it is &#039;&#039;&#039;optional&#039;&#039;&#039; to request a partition with &amp;lt;code&amp;gt;--partition=&amp;lt;partition_name&amp;gt;&amp;lt;/code&amp;gt; on job submission. Within a partition job allocations are routed automatically to the most suitable compute node(s) for the requested resources (e.g. amount of nodes and cores, memory, number of GPUs). The &#039;cpu&#039; partition is the default partition, if no partition is requested. It will start jobs either on &#039;milan&#039; or &#039;genoa&#039; nodes.&lt;br /&gt;
&lt;br /&gt;
The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes. You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node). If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All&#039;&#039;&#039; partitions are operated in shared mode, i.e. jobs from different users can run on the same node. Jobs can get exclusive access to compute nodes in these partitions with the &amp;lt;code&amp;gt;--exclusive&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment.&lt;br /&gt;
&lt;br /&gt;
See [[NEMO2/Hardware]] for more information on the exact hardware specifications.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:5%&amp;quot;| Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Multi Node&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Nodes&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| APU/GPU&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Cores per APU/GPU&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Defaults&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot;| Limits&lt;br /&gt;
|-&lt;br /&gt;
| cpu*&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 7763/9654 (Milan/Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00, nodes=1&lt;br /&gt;
|-&lt;br /&gt;
| genoa&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| milan&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 7763 (Milan)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| l40s&lt;br /&gt;
| single node&lt;br /&gt;
| 2x Intel Xeon Platinum 8562Y+ (5th Gen)&lt;br /&gt;
| 4x NVIDIA L40S&lt;br /&gt;
| 15&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| mi300a&lt;br /&gt;
| single node&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| h200&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| 8x NVIDIA H200&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=8&lt;br /&gt;
|-&lt;br /&gt;
| rtx&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9655 (Turin)&lt;br /&gt;
| 4x NVIDIA RTX PRO 6000 Blackwell Server Edition&lt;br /&gt;
| 47&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| login&lt;br /&gt;
| multi node&lt;br /&gt;
| 1x AMD EPYC 9354 (Genoa) (SMT on)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=15:00, mem-per-cpu=1gb&lt;br /&gt;
| time=15:00, nodes=2, ntasks=4, mem=50gb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; default partition&lt;br /&gt;
&lt;br /&gt;
== Show free nodes ==&lt;br /&gt;
&lt;br /&gt;
The Slurm command &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; is used to view partition and node information for a system running Slurm.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sinfo -t idle&lt;br /&gt;
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST&lt;br /&gt;
cpu*         up 4-00:00:00      2  idle  n[3303-3304]&lt;br /&gt;
genoa        up 4-00:00:00      0    n/a &lt;br /&gt;
milan        up 4-00:00:00      2  idle  n[3303-3304]&lt;br /&gt;
l40s         up 2-00:00:00      0    n/a &lt;br /&gt;
h200         up 2-00:00:00      0    n/a &lt;br /&gt;
rtx          up 2-00:00:00      0    n/a &lt;br /&gt;
mi300a       up 2-00:00:00      3   idle a[3601-3603]&lt;br /&gt;
login        up      15:00      2   idle login[1-2]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Jobs with squeue ==&lt;br /&gt;
&lt;br /&gt;
After you submitted the job, you can see it waiting using the &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
(also read the man page with &amp;lt;code&amp;gt;man squeue&amp;lt;/code&amp;gt; for more information on how to use the command)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
&amp;gt; squeue&lt;br /&gt;
             JOBID PARTITION     NAME       USER  ST       TIME  NODES NODELIST(REASON)&lt;br /&gt;
               426       cpu      20k   fr_xy0123  R       0:02      2 n[4101-4102]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output shows: &lt;br /&gt;
* JOBID: the jobid is an unique number your job gets&lt;br /&gt;
* PARTITION: the cluster can be divided in different types of nodes.&lt;br /&gt;
* NAME: the name you gave your job with the --job-name= option&lt;br /&gt;
* USER: your username&lt;br /&gt;
* ST: the state the job is in. R = running, PD = pending, CD = completed. See man page for a full list on states. &lt;br /&gt;
* TIME: how long the job has been running&lt;br /&gt;
* NODES: how many nodes were requested&lt;br /&gt;
* NODELIST(REASON): either show the node(s) the job is running on, or a reason why it hasn&#039;t started&lt;br /&gt;
&lt;br /&gt;
==scontrol==&lt;br /&gt;
&lt;br /&gt;
You can then show more info on one specific running job using the &amp;lt;code&amp;gt;scontrol&amp;lt;/code&amp;gt; command, e.g for the job with ID 426 listed above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show job 426&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for job with JobID 426&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show jobs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for all your jobs&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
scontrol write batch_script 426 -&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
display job script of a running job. The &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; is a special filename which means &amp;quot;write to the terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Monitoring a Started Job ==&lt;br /&gt;
&lt;br /&gt;
After a job has started, you can ssh from a login node to the node(s) the job is running on, using the node name from NODELIST, e.g. if your job runs on n4101:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt; ssh n4101 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Job Examples ==&lt;br /&gt;
&lt;br /&gt;
Here you can find some example scripts for batch jobs.&lt;br /&gt;
&lt;br /&gt;
=== Serial Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=20:00:00&lt;br /&gt;
#SBATCH --mem=3800mb&lt;br /&gt;
./my_serial_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 495GB can run on all node types associated with the cpu partition (routing to either milan or genoa nodes).&lt;br /&gt;
&lt;br /&gt;
=== Multi-threaded Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --cpus-per-task=32&lt;br /&gt;
#SBATCH --time=01:30:00&lt;br /&gt;
#SBATCH --mem=50gb&lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
./my_multithreaded_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--ntasks-per-node&amp;lt;/code&amp;gt; up to 126 and &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 500gb can run on all node types associated with the milan partition.&lt;br /&gt;
* With &amp;lt;code&amp;gt;export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&amp;lt;/code&amp;gt; you can set the number of threads according to the number of resources requested.&lt;br /&gt;
&lt;br /&gt;
=== MPI Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=milan&lt;br /&gt;
#SBATCH --nodes=2&lt;br /&gt;
#SBATCH --ntasks-per-node=126&lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
module load mpi/openmpi   #  loads dependencies&lt;br /&gt;
srun ./my_mpi_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; requests the memory per node. The maximum is 500gb for partition milan.&lt;br /&gt;
* The Compiler and MPI modules used for the compilation must be loaded before the start of the program.&lt;br /&gt;
* &#039;&#039;&#039;It is recommended to start MPI programs with &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
&lt;br /&gt;
Interactive jobs must NOT run on the login nodes, however resources for interactive jobs can be requested using srun.&lt;br /&gt;
The following examples requests an interactive session on 1 core for 2 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After execution of this command wait until the queueing system has granted you the requested resources. Once granted you will be automatically logged on the allocated compute node.&lt;br /&gt;
&lt;br /&gt;
If you use applications or tools which provide a GUI, enable X-forwarding for your interactive session with. We suggest using VNC instead of X-forwarding:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00 --x11&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the walltime limit has been reached you will be automatically logged out from the compute node.&lt;br /&gt;
&lt;br /&gt;
== Interactive Tests on the Login Nodes ==&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment. The limits are 4 cores and 15 minutes of walltime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ salloc --partition=login --ntasks=4&lt;br /&gt;
$ srun -p login &amp;lt;application&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Job Monitoring =&lt;br /&gt;
&lt;br /&gt;
== Information about submitted jobs ==&lt;br /&gt;
&lt;br /&gt;
For an overview of your submitted jobs use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ squeue&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get detailed information about a specific job use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ scontrol show job &amp;lt;jobid&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A job start may be delayed for various reasons:&lt;br /&gt;
* (QOSMaxCpuPerUserLimit) - There is a limit to how many CPU cores a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMaxGRESPerUser) - There is a limit to how many GPUs a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMinGRES) - The job was submitted to a gpu partition without requesting a GPU.&lt;br /&gt;
* (launch failed requeued held) - The job has failed to start. You may be able to resume it using scontrol. Alternatively you can cancel it and submit it again.&lt;br /&gt;
For further reasons please refer to: https://slurm.schedmd.com/job_reason_codes.html&lt;br /&gt;
&lt;br /&gt;
== Information about resource usage of running jobs ==&lt;br /&gt;
&lt;br /&gt;
You can monitor the resource usage of running jobs with the sstat command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sstat --format=JobId,AveCPU,AveRSS,MaxRSS -j &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show average CPU time, average and maximum memory consumption of all tasks in the running job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sstat -e&amp;lt;/code&amp;gt; command shows a list of fields that can be specified with the &amp;lt;code&amp;gt;--format&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
== Interactive access to running jobs ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to attach an interactive shell to a running job with command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ srun --jobid=&amp;lt;jobid&amp;gt; --overlap --pty /bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands like &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; show you the most busy processes on the node. To exit &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; type &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To monitor your GPU processes use the command &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; on AMD APUs &amp;lt;code&amp;gt;rocm-smi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Job Feedback ==&lt;br /&gt;
&lt;br /&gt;
You get feedback on resource usage and job efficiency for completed jobs with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ seff &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
Job ID: 426&lt;br /&gt;
Cluster: nemo&lt;br /&gt;
User/Group: fr_ab0123/fr_fr&lt;br /&gt;
State: COMPLETED (exit code 0)&lt;br /&gt;
Nodes: 2&lt;br /&gt;
Cores per node: 190&lt;br /&gt;
CPU Utilized: 19:13:22&lt;br /&gt;
CPU Efficiency: 91.06% of 21:06:40 core-walltime&lt;br /&gt;
Job Wall-clock time: 00:03:20&lt;br /&gt;
Memory Utilized: 15.48 GB&lt;br /&gt;
Memory Efficiency: 1.10% of 1.38 TB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* Nodes: Number of allocated nodes for the job.&lt;br /&gt;
* Cores per node: Number of physical cores per node allocated for the job.&lt;br /&gt;
* CPU Utilized: Sum of utilized core time.&lt;br /&gt;
* CPU Efficiency: &#039;CPU Utilized&#039; with respect to core-walltime (= &#039;Nodes&#039; x &#039;Cores per node&#039; x &#039;Job Wall-clock time&#039;) in percent. &lt;br /&gt;
* Job Wall-clock time: runtime of the job.&lt;br /&gt;
* Memory Utilized: Sum of memory used. For multi node MPI jobs the sum is only correct when &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; is used instead of &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Memory Efficiency: &#039;Memory Utilized&#039; with respect to total allocated memory for the job.&lt;br /&gt;
&lt;br /&gt;
= Queue / Partition Limits =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Per-user CPU and core-minute limits depend on the partition/QOS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Partition/QOS !! Max Cores (QOSMaxCpuPerUserLimit) !! Max Core-Minutes Running (MaxCpuRunMinsPerUser)&lt;br /&gt;
|-&lt;br /&gt;
| cpu (default) || 12,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| genoa || 8,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| milan || 8,000 || 12,428,640&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The core-minutes limit is calculated as (running CPU cores) × (remaining runtime of all jobs in minutes). Example for genoa:&lt;br /&gt;
&amp;lt;code&amp;gt;8000 cores × 30h × 60min = 14,400,000 core-minutes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is constantly evaluated, you do not have to do anything.&lt;br /&gt;
This value decreases after a few minutes (running CPU cores * remaining runtime of all jobs in minutes) or when a job ends.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes.&#039;&#039;&#039;&lt;br /&gt;
You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node).&lt;br /&gt;
If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
Common NEMO2 job codes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Queue Job Code&lt;br /&gt;
! style=&amp;quot;width:80%&amp;quot;| Reason&lt;br /&gt;
|-&lt;br /&gt;
| MaxCpuRunMinsPerUser&lt;br /&gt;
| You are currently running more core minutes than permitted. This value decreases automatically over time.&lt;br /&gt;
|-&lt;br /&gt;
| PartitionNodeLimit&lt;br /&gt;
| You try to run a multi node job on a single node partition.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxCpuPerUserLimit&lt;br /&gt;
| Your job cannot be started as your user would otherwise exceed the maximum permitted cores for one user.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxGRESPerUser&lt;br /&gt;
| Your job exceeds the per-user GPU limit (l40s: 16 GPUs, h200: 8 GPUs, rtx: 4 GPUs, mi300a: 8 GPUs).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check additional [https://slurm.schedmd.com/job_reason_codes.html reason codes] at Schedmd.&lt;br /&gt;
&lt;br /&gt;
= Accounting =&lt;br /&gt;
&lt;br /&gt;
Jobs are billed for allocated CPU cores, memory and GPUs.&lt;br /&gt;
&lt;br /&gt;
To see the accounting data of a specific job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -j &amp;lt;jobid&amp;gt; --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To retrive the job history for a specific user for a certain time frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -u &amp;lt;user&amp;gt; -S 2025-03-01 -E 2025-03-02 --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16133</id>
		<title>NEMO2/Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16133"/>
		<updated>2026-06-16T09:53:00Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Partitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The bwForCluster NEMO 2 uses Slurm ([https://slurm.schedmd.com/ https://slurm.schedmd.com/]) for scheduling compute jobs. &lt;br /&gt;
&lt;br /&gt;
= Slurm Command Overview =&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Slurm commands !! Brief explanation&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sbatch.html sbatch] || Submits a job and queues it in an input queue&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/salloc.html salloc] || Request resources for an interactive job&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/squeue.html squeue] || Displays information about active, eligible, blocked, and/or recently completed jobs &lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html scontrol] || Displays detailed job state information&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sstat.html sstat] || Displays status information about a running job&lt;br /&gt;
|- &lt;br /&gt;
| [https://slurm.schedmd.com/scancel.html scancel] || Cancels a job&lt;br /&gt;
|- &lt;br /&gt;
| seff  || Shows the &amp;quot;job efficiency&amp;quot; of a job after it has finished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Submitting Jobs on the bwForCluster NEMO 2 =&lt;br /&gt;
&lt;br /&gt;
Batch jobs are submitted with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A job script contains options for Slurm in lines beginning with &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; as well as your commands which you want to execute on the compute nodes. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --time=00:14:00&lt;br /&gt;
#SBATCH --mem=1gb&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can override options from the script on the command-line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch --time=03:00:00 &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resource Requests ==&lt;br /&gt;
&lt;br /&gt;
Important resource request options for the Slurm command sbatch are:&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !!  Slurm (sbatch)&lt;br /&gt;
|-&lt;br /&gt;
| #SBATCH|| Script directive&lt;br /&gt;
|-&lt;br /&gt;
| --time=&amp;lt;hh:mm:ss&amp;gt; (-t &amp;lt;hh:mm:ss&amp;gt;)|| Wall time limit&lt;br /&gt;
|-&lt;br /&gt;
| --job-name=&amp;lt;name&amp;gt;  (-J &amp;lt;name&amp;gt;)|| Job name&lt;br /&gt;
|-&lt;br /&gt;
| --nodes=&amp;lt;count&amp;gt; (-N &amp;lt;count&amp;gt;)|| Node count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks=&amp;lt;count&amp;gt; (-n &amp;lt;count&amp;gt;)|| Core count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks-per-node=&amp;lt;count&amp;gt;|| Process count per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem=&amp;lt;limit&amp;gt;|| Memory limit per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem-per-cpu=&amp;lt;limit&amp;gt;|| Memory limit per process&lt;br /&gt;
|-&lt;br /&gt;
| --gpus=&amp;lt;count&amp;gt; || GPU count&lt;br /&gt;
|-&lt;br /&gt;
| --gres=gpu:&amp;lt;count&amp;gt;|| GPU count (gres = &amp;quot;generic resource&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| --exclusive|| Node exclusive job&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nodes and Cores&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Slurm provides a number of options to request nodes and cores.&lt;br /&gt;
Typically, using &amp;lt;code&amp;gt;--nodes=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--ntasks-per-node=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; should work for all your jobs. For single core jobs, it would be sufficient to use the option &amp;lt;code&amp;gt;--ntasks=1&amp;lt;/code&amp;gt;. Specifying only &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; may lead to slurm trying to distribute tasks over more than one node even if you requested a small amount of cores.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Memory&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Memory can be requested with either the option &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per node) or &amp;lt;code&amp;gt;--mem-per-cpu=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per process). When looking up the maximum available memory for a certain node type subtract about 5 GB for the operating system. Specify the memory limit as a value-unit-pair, for example 500mb or 8gb.&lt;br /&gt;
&lt;br /&gt;
In most cases it is preferable to use the &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GPUs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
GPUs are requested as &amp;quot;generic resources&amp;quot; with &amp;lt;code&amp;gt;--gres=gpu:&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--gpus=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Default Values ==&lt;br /&gt;
&lt;br /&gt;
Default values for jobs are:&lt;br /&gt;
&lt;br /&gt;
* Runtime: --time=01:00:00 (1 hour)&lt;br /&gt;
* Nodes: --nodes=1 (one node)&lt;br /&gt;
* Tasks: --tasks-per-node=1 (one task per node)&lt;br /&gt;
* Cores: --cpus-per-task=1 (one core per task)&lt;br /&gt;
* Memory: --mem-per-cpu=1gb (1 GB per core)&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
On bwForCluster NEMO 2 it is &#039;&#039;&#039;optional&#039;&#039;&#039; to request a partition with &amp;lt;code&amp;gt;--partition=&amp;lt;partition_name&amp;gt;&amp;lt;/code&amp;gt; on job submission. Within a partition job allocations are routed automatically to the most suitable compute node(s) for the requested resources (e.g. amount of nodes and cores, memory, number of GPUs). The &#039;cpu&#039; partition is the default partition, if no partition is requested. It will start jobs either on &#039;milan&#039; or &#039;genoa&#039; nodes.&lt;br /&gt;
&lt;br /&gt;
The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes. You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node). If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All&#039;&#039;&#039; partitions are operated in shared mode, i.e. jobs from different users can run on the same node. Jobs can get exclusive access to compute nodes in these partitions with the &amp;lt;code&amp;gt;--exclusive&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment.&lt;br /&gt;
&lt;br /&gt;
See [[NEMO2/Hardware]] for more information on the exact hardware specifications.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:5%&amp;quot;| Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Multi Node&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Nodes&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| APU/GPU&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Cores per APU/GPU&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Defaults&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot;| Limits&lt;br /&gt;
|-&lt;br /&gt;
| cpu*&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 7763/9654 (Milan/Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00, nodes=1&lt;br /&gt;
|-&lt;br /&gt;
| genoa&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| milan&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 7763 (Milan)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| l40s&lt;br /&gt;
| single node&lt;br /&gt;
| 2x Intel Xeon Platinum 8562Y+ (5th Gen)&lt;br /&gt;
| 4x NVIDIA L40S&lt;br /&gt;
| 15&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| mi300a&lt;br /&gt;
| single node&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| h200&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| 8x NVIDIA H200&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=8&lt;br /&gt;
|-&lt;br /&gt;
| rtx&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9655 (Turin)&lt;br /&gt;
| 4x NVIDIA RTX PRO 6000 Blackwell Server Edition&lt;br /&gt;
| 47&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| login&lt;br /&gt;
| multi node&lt;br /&gt;
| 1x AMD EPYC 9354 (Genoa) (SMT on)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=15:00, mem-per-cpu=1gb&lt;br /&gt;
| time=15:00, nodes=2, ntasks=4, mem=50gb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; default partition&lt;br /&gt;
&lt;br /&gt;
== Show free nodes ==&lt;br /&gt;
&lt;br /&gt;
The Slurm command &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; is used to view partition and node information for a system running Slurm, unfortunately it can only be used by the administrators. For users there is a special binary &amp;lt;code&amp;gt;sinfo_t_idle&amp;lt;/code&amp;gt; to find out how many nodes are available on the system for immediate use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sinfo_t_idle&lt;br /&gt;
Partition cpu*                    :    127 nodes idle&lt;br /&gt;
Partition genoa                   :     30 nodes idle&lt;br /&gt;
Partition milan                   :     97 nodes idle&lt;br /&gt;
Partition l40s                    :      6 nodes idle&lt;br /&gt;
Partition mi300a                  :      3 nodes idle&lt;br /&gt;
Partition login                   :      2 nodes idle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Jobs with squeue ==&lt;br /&gt;
&lt;br /&gt;
After you submitted the job, you can see it waiting using the &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
(also read the man page with &amp;lt;code&amp;gt;man squeue&amp;lt;/code&amp;gt; for more information on how to use the command)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
&amp;gt; squeue&lt;br /&gt;
             JOBID PARTITION     NAME       USER  ST       TIME  NODES NODELIST(REASON)&lt;br /&gt;
               426       cpu      20k   fr_xy0123  R       0:02      2 n[4101-4102]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output shows: &lt;br /&gt;
* JOBID: the jobid is an unique number your job gets&lt;br /&gt;
* PARTITION: the cluster can be divided in different types of nodes.&lt;br /&gt;
* NAME: the name you gave your job with the --job-name= option&lt;br /&gt;
* USER: your username&lt;br /&gt;
* ST: the state the job is in. R = running, PD = pending, CD = completed. See man page for a full list on states. &lt;br /&gt;
* TIME: how long the job has been running&lt;br /&gt;
* NODES: how many nodes were requested&lt;br /&gt;
* NODELIST(REASON): either show the node(s) the job is running on, or a reason why it hasn&#039;t started&lt;br /&gt;
&lt;br /&gt;
==scontrol==&lt;br /&gt;
&lt;br /&gt;
You can then show more info on one specific running job using the &amp;lt;code&amp;gt;scontrol&amp;lt;/code&amp;gt; command, e.g for the job with ID 426 listed above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show job 426&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for job with JobID 426&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show jobs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for all your jobs&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
scontrol write batch_script 426 -&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
display job script of a running job. The &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; is a special filename which means &amp;quot;write to the terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Monitoring a Started Job ==&lt;br /&gt;
&lt;br /&gt;
After a job has started, you can ssh from a login node to the node(s) the job is running on, using the node name from NODELIST, e.g. if your job runs on n4101:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt; ssh n4101 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Job Examples ==&lt;br /&gt;
&lt;br /&gt;
Here you can find some example scripts for batch jobs.&lt;br /&gt;
&lt;br /&gt;
=== Serial Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=20:00:00&lt;br /&gt;
#SBATCH --mem=3800mb&lt;br /&gt;
./my_serial_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 495GB can run on all node types associated with the cpu partition (routing to either milan or genoa nodes).&lt;br /&gt;
&lt;br /&gt;
=== Multi-threaded Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --cpus-per-task=32&lt;br /&gt;
#SBATCH --time=01:30:00&lt;br /&gt;
#SBATCH --mem=50gb&lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
./my_multithreaded_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--ntasks-per-node&amp;lt;/code&amp;gt; up to 126 and &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 500gb can run on all node types associated with the milan partition.&lt;br /&gt;
* With &amp;lt;code&amp;gt;export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&amp;lt;/code&amp;gt; you can set the number of threads according to the number of resources requested.&lt;br /&gt;
&lt;br /&gt;
=== MPI Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=milan&lt;br /&gt;
#SBATCH --nodes=2&lt;br /&gt;
#SBATCH --ntasks-per-node=126&lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
module load mpi/openmpi   #  loads dependencies&lt;br /&gt;
srun ./my_mpi_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; requests the memory per node. The maximum is 500gb for partition milan.&lt;br /&gt;
* The Compiler and MPI modules used for the compilation must be loaded before the start of the program.&lt;br /&gt;
* &#039;&#039;&#039;It is recommended to start MPI programs with &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
&lt;br /&gt;
Interactive jobs must NOT run on the login nodes, however resources for interactive jobs can be requested using srun.&lt;br /&gt;
The following examples requests an interactive session on 1 core for 2 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After execution of this command wait until the queueing system has granted you the requested resources. Once granted you will be automatically logged on the allocated compute node.&lt;br /&gt;
&lt;br /&gt;
If you use applications or tools which provide a GUI, enable X-forwarding for your interactive session with. We suggest using VNC instead of X-forwarding:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00 --x11&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the walltime limit has been reached you will be automatically logged out from the compute node.&lt;br /&gt;
&lt;br /&gt;
== Interactive Tests on the Login Nodes ==&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment. The limits are 4 cores and 15 minutes of walltime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ salloc --partition=login --ntasks=4&lt;br /&gt;
$ srun -p login &amp;lt;application&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Job Monitoring =&lt;br /&gt;
&lt;br /&gt;
== Information about submitted jobs ==&lt;br /&gt;
&lt;br /&gt;
For an overview of your submitted jobs use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ squeue&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get detailed information about a specific job use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ scontrol show job &amp;lt;jobid&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A job start may be delayed for various reasons:&lt;br /&gt;
* (QOSMaxCpuPerUserLimit) - There is a limit to how many CPU cores a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMaxGRESPerUser) - There is a limit to how many GPUs a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMinGRES) - The job was submitted to a gpu partition without requesting a GPU.&lt;br /&gt;
* (launch failed requeued held) - The job has failed to start. You may be able to resume it using scontrol. Alternatively you can cancel it and submit it again.&lt;br /&gt;
For further reasons please refer to: https://slurm.schedmd.com/job_reason_codes.html&lt;br /&gt;
&lt;br /&gt;
== Information about resource usage of running jobs ==&lt;br /&gt;
&lt;br /&gt;
You can monitor the resource usage of running jobs with the sstat command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sstat --format=JobId,AveCPU,AveRSS,MaxRSS -j &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show average CPU time, average and maximum memory consumption of all tasks in the running job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sstat -e&amp;lt;/code&amp;gt; command shows a list of fields that can be specified with the &amp;lt;code&amp;gt;--format&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
== Interactive access to running jobs ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to attach an interactive shell to a running job with command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ srun --jobid=&amp;lt;jobid&amp;gt; --overlap --pty /bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands like &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; show you the most busy processes on the node. To exit &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; type &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To monitor your GPU processes use the command &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; on AMD APUs &amp;lt;code&amp;gt;rocm-smi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Job Feedback ==&lt;br /&gt;
&lt;br /&gt;
You get feedback on resource usage and job efficiency for completed jobs with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ seff &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
Job ID: 426&lt;br /&gt;
Cluster: nemo&lt;br /&gt;
User/Group: fr_ab0123/fr_fr&lt;br /&gt;
State: COMPLETED (exit code 0)&lt;br /&gt;
Nodes: 2&lt;br /&gt;
Cores per node: 190&lt;br /&gt;
CPU Utilized: 19:13:22&lt;br /&gt;
CPU Efficiency: 91.06% of 21:06:40 core-walltime&lt;br /&gt;
Job Wall-clock time: 00:03:20&lt;br /&gt;
Memory Utilized: 15.48 GB&lt;br /&gt;
Memory Efficiency: 1.10% of 1.38 TB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* Nodes: Number of allocated nodes for the job.&lt;br /&gt;
* Cores per node: Number of physical cores per node allocated for the job.&lt;br /&gt;
* CPU Utilized: Sum of utilized core time.&lt;br /&gt;
* CPU Efficiency: &#039;CPU Utilized&#039; with respect to core-walltime (= &#039;Nodes&#039; x &#039;Cores per node&#039; x &#039;Job Wall-clock time&#039;) in percent. &lt;br /&gt;
* Job Wall-clock time: runtime of the job.&lt;br /&gt;
* Memory Utilized: Sum of memory used. For multi node MPI jobs the sum is only correct when &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; is used instead of &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Memory Efficiency: &#039;Memory Utilized&#039; with respect to total allocated memory for the job.&lt;br /&gt;
&lt;br /&gt;
= Queue / Partition Limits =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Per-user CPU and core-minute limits depend on the partition/QOS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Partition/QOS !! Max Cores (QOSMaxCpuPerUserLimit) !! Max Core-Minutes Running (MaxCpuRunMinsPerUser)&lt;br /&gt;
|-&lt;br /&gt;
| cpu (default) || 12,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| genoa || 8,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| milan || 8,000 || 12,428,640&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The core-minutes limit is calculated as (running CPU cores) × (remaining runtime of all jobs in minutes). Example for genoa:&lt;br /&gt;
&amp;lt;code&amp;gt;8000 cores × 30h × 60min = 14,400,000 core-minutes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is constantly evaluated, you do not have to do anything.&lt;br /&gt;
This value decreases after a few minutes (running CPU cores * remaining runtime of all jobs in minutes) or when a job ends.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes.&#039;&#039;&#039;&lt;br /&gt;
You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node).&lt;br /&gt;
If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
Common NEMO2 job codes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Queue Job Code&lt;br /&gt;
! style=&amp;quot;width:80%&amp;quot;| Reason&lt;br /&gt;
|-&lt;br /&gt;
| MaxCpuRunMinsPerUser&lt;br /&gt;
| You are currently running more core minutes than permitted. This value decreases automatically over time.&lt;br /&gt;
|-&lt;br /&gt;
| PartitionNodeLimit&lt;br /&gt;
| You try to run a multi node job on a single node partition.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxCpuPerUserLimit&lt;br /&gt;
| Your job cannot be started as your user would otherwise exceed the maximum permitted cores for one user.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxGRESPerUser&lt;br /&gt;
| Your job exceeds the per-user GPU limit (l40s: 16 GPUs, h200: 8 GPUs, rtx: 4 GPUs, mi300a: 8 GPUs).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check additional [https://slurm.schedmd.com/job_reason_codes.html reason codes] at Schedmd.&lt;br /&gt;
&lt;br /&gt;
= Accounting =&lt;br /&gt;
&lt;br /&gt;
Jobs are billed for allocated CPU cores, memory and GPUs.&lt;br /&gt;
&lt;br /&gt;
To see the accounting data of a specific job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -j &amp;lt;jobid&amp;gt; --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To retrive the job history for a specific user for a certain time frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -u &amp;lt;user&amp;gt; -S 2025-03-01 -E 2025-03-02 --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16132</id>
		<title>NEMO2/Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16132"/>
		<updated>2026-06-16T09:52:41Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Partitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The bwForCluster NEMO 2 uses Slurm ([https://slurm.schedmd.com/ https://slurm.schedmd.com/]) for scheduling compute jobs. &lt;br /&gt;
&lt;br /&gt;
= Slurm Command Overview =&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Slurm commands !! Brief explanation&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sbatch.html sbatch] || Submits a job and queues it in an input queue&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/salloc.html salloc] || Request resources for an interactive job&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/squeue.html squeue] || Displays information about active, eligible, blocked, and/or recently completed jobs &lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html scontrol] || Displays detailed job state information&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sstat.html sstat] || Displays status information about a running job&lt;br /&gt;
|- &lt;br /&gt;
| [https://slurm.schedmd.com/scancel.html scancel] || Cancels a job&lt;br /&gt;
|- &lt;br /&gt;
| seff  || Shows the &amp;quot;job efficiency&amp;quot; of a job after it has finished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Submitting Jobs on the bwForCluster NEMO 2 =&lt;br /&gt;
&lt;br /&gt;
Batch jobs are submitted with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A job script contains options for Slurm in lines beginning with &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; as well as your commands which you want to execute on the compute nodes. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --time=00:14:00&lt;br /&gt;
#SBATCH --mem=1gb&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can override options from the script on the command-line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch --time=03:00:00 &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resource Requests ==&lt;br /&gt;
&lt;br /&gt;
Important resource request options for the Slurm command sbatch are:&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !!  Slurm (sbatch)&lt;br /&gt;
|-&lt;br /&gt;
| #SBATCH|| Script directive&lt;br /&gt;
|-&lt;br /&gt;
| --time=&amp;lt;hh:mm:ss&amp;gt; (-t &amp;lt;hh:mm:ss&amp;gt;)|| Wall time limit&lt;br /&gt;
|-&lt;br /&gt;
| --job-name=&amp;lt;name&amp;gt;  (-J &amp;lt;name&amp;gt;)|| Job name&lt;br /&gt;
|-&lt;br /&gt;
| --nodes=&amp;lt;count&amp;gt; (-N &amp;lt;count&amp;gt;)|| Node count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks=&amp;lt;count&amp;gt; (-n &amp;lt;count&amp;gt;)|| Core count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks-per-node=&amp;lt;count&amp;gt;|| Process count per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem=&amp;lt;limit&amp;gt;|| Memory limit per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem-per-cpu=&amp;lt;limit&amp;gt;|| Memory limit per process&lt;br /&gt;
|-&lt;br /&gt;
| --gpus=&amp;lt;count&amp;gt; || GPU count&lt;br /&gt;
|-&lt;br /&gt;
| --gres=gpu:&amp;lt;count&amp;gt;|| GPU count (gres = &amp;quot;generic resource&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| --exclusive|| Node exclusive job&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nodes and Cores&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Slurm provides a number of options to request nodes and cores.&lt;br /&gt;
Typically, using &amp;lt;code&amp;gt;--nodes=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--ntasks-per-node=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; should work for all your jobs. For single core jobs, it would be sufficient to use the option &amp;lt;code&amp;gt;--ntasks=1&amp;lt;/code&amp;gt;. Specifying only &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; may lead to slurm trying to distribute tasks over more than one node even if you requested a small amount of cores.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Memory&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Memory can be requested with either the option &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per node) or &amp;lt;code&amp;gt;--mem-per-cpu=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per process). When looking up the maximum available memory for a certain node type subtract about 5 GB for the operating system. Specify the memory limit as a value-unit-pair, for example 500mb or 8gb.&lt;br /&gt;
&lt;br /&gt;
In most cases it is preferable to use the &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GPUs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
GPUs are requested as &amp;quot;generic resources&amp;quot; with &amp;lt;code&amp;gt;--gres=gpu:&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--gpus=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Default Values ==&lt;br /&gt;
&lt;br /&gt;
Default values for jobs are:&lt;br /&gt;
&lt;br /&gt;
* Runtime: --time=01:00:00 (1 hour)&lt;br /&gt;
* Nodes: --nodes=1 (one node)&lt;br /&gt;
* Tasks: --tasks-per-node=1 (one task per node)&lt;br /&gt;
* Cores: --cpus-per-task=1 (one core per task)&lt;br /&gt;
* Memory: --mem-per-cpu=1gb (1 GB per core)&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
On bwForCluster NEMO 2 it is &#039;&#039;&#039;optional&#039;&#039;&#039; to request a partition with &amp;lt;code&amp;gt;--partition=&amp;lt;partition_name&amp;gt;&amp;lt;/code&amp;gt; on job submission. Within a partition job allocations are routed automatically to the most suitable compute node(s) for the requested resources (e.g. amount of nodes and cores, memory, number of GPUs). The &#039;cpu&#039; partition is the default partition, if no partition is requested. It will start jobs either on &#039;milan&#039; or &#039;genoa&#039; nodes.&lt;br /&gt;
&lt;br /&gt;
The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes. You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node). If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All&#039;&#039;&#039; partitions are operated in shared mode, i.e. jobs from different users can run on the same node. Jobs can get exclusive access to compute nodes in these partitions with the &amp;lt;code&amp;gt;--exclusive&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment.&lt;br /&gt;
&lt;br /&gt;
See [[NEMO2/Hardware]] for more information on the exact hardware specifications.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:5%&amp;quot;| Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Multi Node&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Nodes&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| APU/GPU&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Cores per APU/GPU&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Defaults&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot;| Limits&lt;br /&gt;
|-&lt;br /&gt;
| cpu*&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 7763/9654 (Milan/Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00, nodes=1&lt;br /&gt;
|-&lt;br /&gt;
| genoa&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| milan&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 7763 (Milan)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| l40s&lt;br /&gt;
| single node&lt;br /&gt;
| 2x Intel Xeon Platinum 8562Y+ (5th Gen)&lt;br /&gt;
| 4x NVIDIA L40S&lt;br /&gt;
| 15&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| mi300a&lt;br /&gt;
| single node&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| h200&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| 8x NVIDIA H200&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=8&lt;br /&gt;
|-&lt;br /&gt;
| rtx&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9655 (Turin)&lt;br /&gt;
| 4x NVIDIA RTX PRO 6000 Blackwell Server Edition&lt;br /&gt;
| 47&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| login&lt;br /&gt;
| multi node&lt;br /&gt;
| 1x AMD EPYC 9354 (Genoa) (SMT on)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=15:00, mem-per-cpu=1gb&lt;br /&gt;
| time=15:00, nodes=1, ntasks=4, mem=50gb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; default partition&lt;br /&gt;
&lt;br /&gt;
== Show free nodes ==&lt;br /&gt;
&lt;br /&gt;
The Slurm command &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; is used to view partition and node information for a system running Slurm, unfortunately it can only be used by the administrators. For users there is a special binary &amp;lt;code&amp;gt;sinfo_t_idle&amp;lt;/code&amp;gt; to find out how many nodes are available on the system for immediate use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sinfo_t_idle&lt;br /&gt;
Partition cpu*                    :    127 nodes idle&lt;br /&gt;
Partition genoa                   :     30 nodes idle&lt;br /&gt;
Partition milan                   :     97 nodes idle&lt;br /&gt;
Partition l40s                    :      6 nodes idle&lt;br /&gt;
Partition mi300a                  :      3 nodes idle&lt;br /&gt;
Partition login                   :      2 nodes idle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Jobs with squeue ==&lt;br /&gt;
&lt;br /&gt;
After you submitted the job, you can see it waiting using the &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
(also read the man page with &amp;lt;code&amp;gt;man squeue&amp;lt;/code&amp;gt; for more information on how to use the command)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
&amp;gt; squeue&lt;br /&gt;
             JOBID PARTITION     NAME       USER  ST       TIME  NODES NODELIST(REASON)&lt;br /&gt;
               426       cpu      20k   fr_xy0123  R       0:02      2 n[4101-4102]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output shows: &lt;br /&gt;
* JOBID: the jobid is an unique number your job gets&lt;br /&gt;
* PARTITION: the cluster can be divided in different types of nodes.&lt;br /&gt;
* NAME: the name you gave your job with the --job-name= option&lt;br /&gt;
* USER: your username&lt;br /&gt;
* ST: the state the job is in. R = running, PD = pending, CD = completed. See man page for a full list on states. &lt;br /&gt;
* TIME: how long the job has been running&lt;br /&gt;
* NODES: how many nodes were requested&lt;br /&gt;
* NODELIST(REASON): either show the node(s) the job is running on, or a reason why it hasn&#039;t started&lt;br /&gt;
&lt;br /&gt;
==scontrol==&lt;br /&gt;
&lt;br /&gt;
You can then show more info on one specific running job using the &amp;lt;code&amp;gt;scontrol&amp;lt;/code&amp;gt; command, e.g for the job with ID 426 listed above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show job 426&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for job with JobID 426&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show jobs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for all your jobs&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
scontrol write batch_script 426 -&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
display job script of a running job. The &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; is a special filename which means &amp;quot;write to the terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Monitoring a Started Job ==&lt;br /&gt;
&lt;br /&gt;
After a job has started, you can ssh from a login node to the node(s) the job is running on, using the node name from NODELIST, e.g. if your job runs on n4101:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt; ssh n4101 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Job Examples ==&lt;br /&gt;
&lt;br /&gt;
Here you can find some example scripts for batch jobs.&lt;br /&gt;
&lt;br /&gt;
=== Serial Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=20:00:00&lt;br /&gt;
#SBATCH --mem=3800mb&lt;br /&gt;
./my_serial_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 495GB can run on all node types associated with the cpu partition (routing to either milan or genoa nodes).&lt;br /&gt;
&lt;br /&gt;
=== Multi-threaded Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --cpus-per-task=32&lt;br /&gt;
#SBATCH --time=01:30:00&lt;br /&gt;
#SBATCH --mem=50gb&lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
./my_multithreaded_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--ntasks-per-node&amp;lt;/code&amp;gt; up to 126 and &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 500gb can run on all node types associated with the milan partition.&lt;br /&gt;
* With &amp;lt;code&amp;gt;export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&amp;lt;/code&amp;gt; you can set the number of threads according to the number of resources requested.&lt;br /&gt;
&lt;br /&gt;
=== MPI Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=milan&lt;br /&gt;
#SBATCH --nodes=2&lt;br /&gt;
#SBATCH --ntasks-per-node=126&lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
module load mpi/openmpi   #  loads dependencies&lt;br /&gt;
srun ./my_mpi_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; requests the memory per node. The maximum is 500gb for partition milan.&lt;br /&gt;
* The Compiler and MPI modules used for the compilation must be loaded before the start of the program.&lt;br /&gt;
* &#039;&#039;&#039;It is recommended to start MPI programs with &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
&lt;br /&gt;
Interactive jobs must NOT run on the login nodes, however resources for interactive jobs can be requested using srun.&lt;br /&gt;
The following examples requests an interactive session on 1 core for 2 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After execution of this command wait until the queueing system has granted you the requested resources. Once granted you will be automatically logged on the allocated compute node.&lt;br /&gt;
&lt;br /&gt;
If you use applications or tools which provide a GUI, enable X-forwarding for your interactive session with. We suggest using VNC instead of X-forwarding:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00 --x11&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the walltime limit has been reached you will be automatically logged out from the compute node.&lt;br /&gt;
&lt;br /&gt;
== Interactive Tests on the Login Nodes ==&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment. The limits are 4 cores and 15 minutes of walltime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ salloc --partition=login --ntasks=4&lt;br /&gt;
$ srun -p login &amp;lt;application&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Job Monitoring =&lt;br /&gt;
&lt;br /&gt;
== Information about submitted jobs ==&lt;br /&gt;
&lt;br /&gt;
For an overview of your submitted jobs use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ squeue&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get detailed information about a specific job use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ scontrol show job &amp;lt;jobid&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A job start may be delayed for various reasons:&lt;br /&gt;
* (QOSMaxCpuPerUserLimit) - There is a limit to how many CPU cores a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMaxGRESPerUser) - There is a limit to how many GPUs a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMinGRES) - The job was submitted to a gpu partition without requesting a GPU.&lt;br /&gt;
* (launch failed requeued held) - The job has failed to start. You may be able to resume it using scontrol. Alternatively you can cancel it and submit it again.&lt;br /&gt;
For further reasons please refer to: https://slurm.schedmd.com/job_reason_codes.html&lt;br /&gt;
&lt;br /&gt;
== Information about resource usage of running jobs ==&lt;br /&gt;
&lt;br /&gt;
You can monitor the resource usage of running jobs with the sstat command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sstat --format=JobId,AveCPU,AveRSS,MaxRSS -j &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show average CPU time, average and maximum memory consumption of all tasks in the running job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sstat -e&amp;lt;/code&amp;gt; command shows a list of fields that can be specified with the &amp;lt;code&amp;gt;--format&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
== Interactive access to running jobs ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to attach an interactive shell to a running job with command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ srun --jobid=&amp;lt;jobid&amp;gt; --overlap --pty /bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands like &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; show you the most busy processes on the node. To exit &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; type &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To monitor your GPU processes use the command &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; on AMD APUs &amp;lt;code&amp;gt;rocm-smi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Job Feedback ==&lt;br /&gt;
&lt;br /&gt;
You get feedback on resource usage and job efficiency for completed jobs with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ seff &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
Job ID: 426&lt;br /&gt;
Cluster: nemo&lt;br /&gt;
User/Group: fr_ab0123/fr_fr&lt;br /&gt;
State: COMPLETED (exit code 0)&lt;br /&gt;
Nodes: 2&lt;br /&gt;
Cores per node: 190&lt;br /&gt;
CPU Utilized: 19:13:22&lt;br /&gt;
CPU Efficiency: 91.06% of 21:06:40 core-walltime&lt;br /&gt;
Job Wall-clock time: 00:03:20&lt;br /&gt;
Memory Utilized: 15.48 GB&lt;br /&gt;
Memory Efficiency: 1.10% of 1.38 TB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* Nodes: Number of allocated nodes for the job.&lt;br /&gt;
* Cores per node: Number of physical cores per node allocated for the job.&lt;br /&gt;
* CPU Utilized: Sum of utilized core time.&lt;br /&gt;
* CPU Efficiency: &#039;CPU Utilized&#039; with respect to core-walltime (= &#039;Nodes&#039; x &#039;Cores per node&#039; x &#039;Job Wall-clock time&#039;) in percent. &lt;br /&gt;
* Job Wall-clock time: runtime of the job.&lt;br /&gt;
* Memory Utilized: Sum of memory used. For multi node MPI jobs the sum is only correct when &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; is used instead of &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Memory Efficiency: &#039;Memory Utilized&#039; with respect to total allocated memory for the job.&lt;br /&gt;
&lt;br /&gt;
= Queue / Partition Limits =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Per-user CPU and core-minute limits depend on the partition/QOS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Partition/QOS !! Max Cores (QOSMaxCpuPerUserLimit) !! Max Core-Minutes Running (MaxCpuRunMinsPerUser)&lt;br /&gt;
|-&lt;br /&gt;
| cpu (default) || 12,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| genoa || 8,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| milan || 8,000 || 12,428,640&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The core-minutes limit is calculated as (running CPU cores) × (remaining runtime of all jobs in minutes). Example for genoa:&lt;br /&gt;
&amp;lt;code&amp;gt;8000 cores × 30h × 60min = 14,400,000 core-minutes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is constantly evaluated, you do not have to do anything.&lt;br /&gt;
This value decreases after a few minutes (running CPU cores * remaining runtime of all jobs in minutes) or when a job ends.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes.&#039;&#039;&#039;&lt;br /&gt;
You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node).&lt;br /&gt;
If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
Common NEMO2 job codes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Queue Job Code&lt;br /&gt;
! style=&amp;quot;width:80%&amp;quot;| Reason&lt;br /&gt;
|-&lt;br /&gt;
| MaxCpuRunMinsPerUser&lt;br /&gt;
| You are currently running more core minutes than permitted. This value decreases automatically over time.&lt;br /&gt;
|-&lt;br /&gt;
| PartitionNodeLimit&lt;br /&gt;
| You try to run a multi node job on a single node partition.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxCpuPerUserLimit&lt;br /&gt;
| Your job cannot be started as your user would otherwise exceed the maximum permitted cores for one user.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxGRESPerUser&lt;br /&gt;
| Your job exceeds the per-user GPU limit (l40s: 16 GPUs, h200: 8 GPUs, rtx: 4 GPUs, mi300a: 8 GPUs).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check additional [https://slurm.schedmd.com/job_reason_codes.html reason codes] at Schedmd.&lt;br /&gt;
&lt;br /&gt;
= Accounting =&lt;br /&gt;
&lt;br /&gt;
Jobs are billed for allocated CPU cores, memory and GPUs.&lt;br /&gt;
&lt;br /&gt;
To see the accounting data of a specific job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -j &amp;lt;jobid&amp;gt; --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To retrive the job history for a specific user for a certain time frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -u &amp;lt;user&amp;gt; -S 2025-03-01 -E 2025-03-02 --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16131</id>
		<title>NEMO2/Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Slurm&amp;diff=16131"/>
		<updated>2026-06-16T09:37:10Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The bwForCluster NEMO 2 uses Slurm ([https://slurm.schedmd.com/ https://slurm.schedmd.com/]) for scheduling compute jobs. &lt;br /&gt;
&lt;br /&gt;
= Slurm Command Overview =&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Slurm commands !! Brief explanation&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sbatch.html sbatch] || Submits a job and queues it in an input queue&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/salloc.html salloc] || Request resources for an interactive job&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/squeue.html squeue] || Displays information about active, eligible, blocked, and/or recently completed jobs &lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/scontrol.html scontrol] || Displays detailed job state information&lt;br /&gt;
|-&lt;br /&gt;
| [https://slurm.schedmd.com/sstat.html sstat] || Displays status information about a running job&lt;br /&gt;
|- &lt;br /&gt;
| [https://slurm.schedmd.com/scancel.html scancel] || Cancels a job&lt;br /&gt;
|- &lt;br /&gt;
| seff  || Shows the &amp;quot;job efficiency&amp;quot; of a job after it has finished&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Submitting Jobs on the bwForCluster NEMO 2 =&lt;br /&gt;
&lt;br /&gt;
Batch jobs are submitted with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A job script contains options for Slurm in lines beginning with &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; as well as your commands which you want to execute on the compute nodes. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --time=00:14:00&lt;br /&gt;
#SBATCH --mem=1gb&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can override options from the script on the command-line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;$ sbatch --time=03:00:00 &amp;lt;job-script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resource Requests ==&lt;br /&gt;
&lt;br /&gt;
Important resource request options for the Slurm command sbatch are:&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !!  Slurm (sbatch)&lt;br /&gt;
|-&lt;br /&gt;
| #SBATCH|| Script directive&lt;br /&gt;
|-&lt;br /&gt;
| --time=&amp;lt;hh:mm:ss&amp;gt; (-t &amp;lt;hh:mm:ss&amp;gt;)|| Wall time limit&lt;br /&gt;
|-&lt;br /&gt;
| --job-name=&amp;lt;name&amp;gt;  (-J &amp;lt;name&amp;gt;)|| Job name&lt;br /&gt;
|-&lt;br /&gt;
| --nodes=&amp;lt;count&amp;gt; (-N &amp;lt;count&amp;gt;)|| Node count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks=&amp;lt;count&amp;gt; (-n &amp;lt;count&amp;gt;)|| Core count&lt;br /&gt;
|-&lt;br /&gt;
| --ntasks-per-node=&amp;lt;count&amp;gt;|| Process count per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem=&amp;lt;limit&amp;gt;|| Memory limit per node&lt;br /&gt;
|-&lt;br /&gt;
| --mem-per-cpu=&amp;lt;limit&amp;gt;|| Memory limit per process&lt;br /&gt;
|-&lt;br /&gt;
| --gpus=&amp;lt;count&amp;gt; || GPU count&lt;br /&gt;
|-&lt;br /&gt;
| --gres=gpu:&amp;lt;count&amp;gt;|| GPU count (gres = &amp;quot;generic resource&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| --exclusive|| Node exclusive job&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nodes and Cores&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Slurm provides a number of options to request nodes and cores.&lt;br /&gt;
Typically, using &amp;lt;code&amp;gt;--nodes=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--ntasks-per-node=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; should work for all your jobs. For single core jobs, it would be sufficient to use the option &amp;lt;code&amp;gt;--ntasks=1&amp;lt;/code&amp;gt;. Specifying only &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; may lead to slurm trying to distribute tasks over more than one node even if you requested a small amount of cores.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Memory&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Memory can be requested with either the option &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per node) or &amp;lt;code&amp;gt;--mem-per-cpu=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; (memory per process). When looking up the maximum available memory for a certain node type subtract about 5 GB for the operating system. Specify the memory limit as a value-unit-pair, for example 500mb or 8gb.&lt;br /&gt;
&lt;br /&gt;
In most cases it is preferable to use the &amp;lt;code&amp;gt;--mem=&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GPUs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
GPUs are requested as &amp;quot;generic resources&amp;quot; with &amp;lt;code&amp;gt;--gres=gpu:&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--gpus=&amp;lt;count&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Default Values ==&lt;br /&gt;
&lt;br /&gt;
Default values for jobs are:&lt;br /&gt;
&lt;br /&gt;
* Runtime: --time=01:00:00 (1 hour)&lt;br /&gt;
* Nodes: --nodes=1 (one node)&lt;br /&gt;
* Tasks: --tasks-per-node=1 (one task per node)&lt;br /&gt;
* Cores: --cpus-per-task=1 (one core per task)&lt;br /&gt;
* Memory: --mem-per-cpu=1gb (1 GB per core)&lt;br /&gt;
&lt;br /&gt;
== Partitions ==&lt;br /&gt;
&lt;br /&gt;
On bwForCluster NEMO 2 it is &#039;&#039;&#039;optional&#039;&#039;&#039; to request a partition with &amp;lt;code&amp;gt;--partition=&amp;lt;partition_name&amp;gt;&amp;lt;/code&amp;gt; on job submission. Within a partition job allocations are routed automatically to the most suitable compute node(s) for the requested resources (e.g. amount of nodes and cores, memory, number of GPUs). The &#039;cpu&#039; partition is the default partition, if no partition is requested. It will start jobs either on &#039;milan&#039; or &#039;genoa&#039; nodes.&lt;br /&gt;
&lt;br /&gt;
The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes. You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node). If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All&#039;&#039;&#039; partitions are operated in shared mode, i.e. jobs from different users can run on the same node. Jobs can get exclusive access to compute nodes in these partitions with the &amp;lt;code&amp;gt;--exclusive&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment.&lt;br /&gt;
&lt;br /&gt;
See [[NEMO2/Hardware]] for more information on the exact hardware specifications.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:5%&amp;quot;| Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Multi Node&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Nodes&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| APU/GPU&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Cores per APU/GPU&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Defaults&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot;| Limits&lt;br /&gt;
|-&lt;br /&gt;
| cpu*&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 7763/9654 (Milan/Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00, nodes=1&lt;br /&gt;
|-&lt;br /&gt;
| genoa&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| milan&lt;br /&gt;
| multi node&lt;br /&gt;
| 2x AMD EPYC 7763 (Milan)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=96:00:00&lt;br /&gt;
|-&lt;br /&gt;
| l40s&lt;br /&gt;
| single node&lt;br /&gt;
| 2x Intel Xeon Platinum 8562Y+ (5th Gen)&lt;br /&gt;
| 4x NVIDIA L40S&lt;br /&gt;
| 15&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| mi300a&lt;br /&gt;
| single node&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 4x AMD Instinct MI300A&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| h200&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9654 (Genoa)&lt;br /&gt;
| 8x NVIDIA H200&lt;br /&gt;
| 23&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=8&lt;br /&gt;
|-&lt;br /&gt;
| rtx&lt;br /&gt;
| single node&lt;br /&gt;
| 2x AMD EPYC 9655 (Turin)&lt;br /&gt;
| 4x NVIDIA RTX PRO 6000 Blackwell Server Edition&lt;br /&gt;
| 47&lt;br /&gt;
| ntasks=1, time=01:00:00, mem-per-cpu=1gb&lt;br /&gt;
| time=48:00:00, nodes=1, gpus=4&lt;br /&gt;
|-&lt;br /&gt;
| login&lt;br /&gt;
| single node&lt;br /&gt;
| 1x AMD EPYC 9354 (Genoa) (SMT on)&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| ntasks=1, time=15:00, mem-per-cpu=1gb&lt;br /&gt;
| time=15:00, nodes=1, ntasks=4, mem=50gb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; default partition&lt;br /&gt;
&lt;br /&gt;
== Show free nodes ==&lt;br /&gt;
&lt;br /&gt;
The Slurm command &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; is used to view partition and node information for a system running Slurm, unfortunately it can only be used by the administrators. For users there is a special binary &amp;lt;code&amp;gt;sinfo_t_idle&amp;lt;/code&amp;gt; to find out how many nodes are available on the system for immediate use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sinfo_t_idle&lt;br /&gt;
Partition cpu*                    :    127 nodes idle&lt;br /&gt;
Partition genoa                   :     30 nodes idle&lt;br /&gt;
Partition milan                   :     97 nodes idle&lt;br /&gt;
Partition l40s                    :      6 nodes idle&lt;br /&gt;
Partition mi300a                  :      3 nodes idle&lt;br /&gt;
Partition login                   :      2 nodes idle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring Jobs with squeue ==&lt;br /&gt;
&lt;br /&gt;
After you submitted the job, you can see it waiting using the &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
(also read the man page with &amp;lt;code&amp;gt;man squeue&amp;lt;/code&amp;gt; for more information on how to use the command)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;shell&#039;&amp;gt;&lt;br /&gt;
&amp;gt; squeue&lt;br /&gt;
             JOBID PARTITION     NAME       USER  ST       TIME  NODES NODELIST(REASON)&lt;br /&gt;
               426       cpu      20k   fr_xy0123  R       0:02      2 n[4101-4102]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output shows: &lt;br /&gt;
* JOBID: the jobid is an unique number your job gets&lt;br /&gt;
* PARTITION: the cluster can be divided in different types of nodes.&lt;br /&gt;
* NAME: the name you gave your job with the --job-name= option&lt;br /&gt;
* USER: your username&lt;br /&gt;
* ST: the state the job is in. R = running, PD = pending, CD = completed. See man page for a full list on states. &lt;br /&gt;
* TIME: how long the job has been running&lt;br /&gt;
* NODES: how many nodes were requested&lt;br /&gt;
* NODELIST(REASON): either show the node(s) the job is running on, or a reason why it hasn&#039;t started&lt;br /&gt;
&lt;br /&gt;
==scontrol==&lt;br /&gt;
&lt;br /&gt;
You can then show more info on one specific running job using the &amp;lt;code&amp;gt;scontrol&amp;lt;/code&amp;gt; command, e.g for the job with ID 426 listed above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show job 426&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for job with JobID 426&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
scontrol show jobs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays detailed information for all your jobs&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
scontrol write batch_script 426 -&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
display job script of a running job. The &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; is a special filename which means &amp;quot;write to the terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Monitoring a Started Job ==&lt;br /&gt;
&lt;br /&gt;
After a job has started, you can ssh from a login node to the node(s) the job is running on, using the node name from NODELIST, e.g. if your job runs on n4101:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;gt; ssh n4101 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Job Examples ==&lt;br /&gt;
&lt;br /&gt;
Here you can find some example scripts for batch jobs.&lt;br /&gt;
&lt;br /&gt;
=== Serial Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --ntasks=1&lt;br /&gt;
#SBATCH --time=20:00:00&lt;br /&gt;
#SBATCH --mem=3800mb&lt;br /&gt;
./my_serial_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 495GB can run on all node types associated with the cpu partition (routing to either milan or genoa nodes).&lt;br /&gt;
&lt;br /&gt;
=== Multi-threaded Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=cpu&lt;br /&gt;
#SBATCH --nodes=1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --cpus-per-task=32&lt;br /&gt;
#SBATCH --time=01:30:00&lt;br /&gt;
#SBATCH --mem=50gb&lt;br /&gt;
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&lt;br /&gt;
./my_multithreaded_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* Jobs with &amp;lt;code&amp;gt;--ntasks-per-node&amp;lt;/code&amp;gt; up to 126 and &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; up to 500gb can run on all node types associated with the milan partition.&lt;br /&gt;
* With &amp;lt;code&amp;gt;export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}&amp;lt;/code&amp;gt; you can set the number of threads according to the number of resources requested.&lt;br /&gt;
&lt;br /&gt;
=== MPI Programs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;slurm&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --partition=milan&lt;br /&gt;
#SBATCH --nodes=2&lt;br /&gt;
#SBATCH --ntasks-per-node=126&lt;br /&gt;
#SBATCH --time=12:00:00&lt;br /&gt;
module load mpi/openmpi   #  loads dependencies&lt;br /&gt;
srun ./my_mpi_program&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; requests the memory per node. The maximum is 500gb for partition milan.&lt;br /&gt;
* The Compiler and MPI modules used for the compilation must be loaded before the start of the program.&lt;br /&gt;
* &#039;&#039;&#039;It is recommended to start MPI programs with &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
&lt;br /&gt;
Interactive jobs must NOT run on the login nodes, however resources for interactive jobs can be requested using srun.&lt;br /&gt;
The following examples requests an interactive session on 1 core for 2 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After execution of this command wait until the queueing system has granted you the requested resources. Once granted you will be automatically logged on the allocated compute node.&lt;br /&gt;
&lt;br /&gt;
If you use applications or tools which provide a GUI, enable X-forwarding for your interactive session with. We suggest using VNC instead of X-forwarding:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ salloc --partition=cpu --ntasks=1 --time=2:00:00 --x11&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the walltime limit has been reached you will be automatically logged out from the compute node.&lt;br /&gt;
&lt;br /&gt;
== Interactive Tests on the Login Nodes ==&lt;br /&gt;
&lt;br /&gt;
The login partition is intended for quick tests on the login nodes with the Slurm environment. The limits are 4 cores and 15 minutes of walltime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ salloc --partition=login --ntasks=4&lt;br /&gt;
$ srun -p login &amp;lt;application&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Job Monitoring =&lt;br /&gt;
&lt;br /&gt;
== Information about submitted jobs ==&lt;br /&gt;
&lt;br /&gt;
For an overview of your submitted jobs use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ squeue&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get detailed information about a specific job use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ scontrol show job &amp;lt;jobid&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A job start may be delayed for various reasons:&lt;br /&gt;
* (QOSMaxCpuPerUserLimit) - There is a limit to how many CPU cores a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMaxGRESPerUser) - There is a limit to how many GPUs a user can use at the same time. The job exceeds this limit.&lt;br /&gt;
* (QOSMinGRES) - The job was submitted to a gpu partition without requesting a GPU.&lt;br /&gt;
* (launch failed requeued held) - The job has failed to start. You may be able to resume it using scontrol. Alternatively you can cancel it and submit it again.&lt;br /&gt;
For further reasons please refer to: https://slurm.schedmd.com/job_reason_codes.html&lt;br /&gt;
&lt;br /&gt;
== Information about resource usage of running jobs ==&lt;br /&gt;
&lt;br /&gt;
You can monitor the resource usage of running jobs with the sstat command. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sstat --format=JobId,AveCPU,AveRSS,MaxRSS -j &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show average CPU time, average and maximum memory consumption of all tasks in the running job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sstat -e&amp;lt;/code&amp;gt; command shows a list of fields that can be specified with the &amp;lt;code&amp;gt;--format&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
== Interactive access to running jobs ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to attach an interactive shell to a running job with command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ srun --jobid=&amp;lt;jobid&amp;gt; --overlap --pty /bin/bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands like &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; show you the most busy processes on the node. To exit &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; type &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To monitor your GPU processes use the command &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; on AMD APUs &amp;lt;code&amp;gt;rocm-smi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Job Feedback ==&lt;br /&gt;
&lt;br /&gt;
You get feedback on resource usage and job efficiency for completed jobs with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ seff &amp;lt;jobid&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
Job ID: 426&lt;br /&gt;
Cluster: nemo&lt;br /&gt;
User/Group: fr_ab0123/fr_fr&lt;br /&gt;
State: COMPLETED (exit code 0)&lt;br /&gt;
Nodes: 2&lt;br /&gt;
Cores per node: 190&lt;br /&gt;
CPU Utilized: 19:13:22&lt;br /&gt;
CPU Efficiency: 91.06% of 21:06:40 core-walltime&lt;br /&gt;
Job Wall-clock time: 00:03:20&lt;br /&gt;
Memory Utilized: 15.48 GB&lt;br /&gt;
Memory Efficiency: 1.10% of 1.38 TB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* Nodes: Number of allocated nodes for the job.&lt;br /&gt;
* Cores per node: Number of physical cores per node allocated for the job.&lt;br /&gt;
* CPU Utilized: Sum of utilized core time.&lt;br /&gt;
* CPU Efficiency: &#039;CPU Utilized&#039; with respect to core-walltime (= &#039;Nodes&#039; x &#039;Cores per node&#039; x &#039;Job Wall-clock time&#039;) in percent. &lt;br /&gt;
* Job Wall-clock time: runtime of the job.&lt;br /&gt;
* Memory Utilized: Sum of memory used. For multi node MPI jobs the sum is only correct when &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; is used instead of &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Memory Efficiency: &#039;Memory Utilized&#039; with respect to total allocated memory for the job.&lt;br /&gt;
&lt;br /&gt;
= Queue / Partition Limits =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Per-user CPU and core-minute limits depend on the partition/QOS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Partition/QOS !! Max Cores (QOSMaxCpuPerUserLimit) !! Max Core-Minutes Running (MaxCpuRunMinsPerUser)&lt;br /&gt;
|-&lt;br /&gt;
| cpu (default) || 12,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| genoa || 8,000 || 14,500,800&lt;br /&gt;
|-&lt;br /&gt;
| milan || 8,000 || 12,428,640&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The core-minutes limit is calculated as (running CPU cores) × (remaining runtime of all jobs in minutes). Example for genoa:&lt;br /&gt;
&amp;lt;code&amp;gt;8000 cores × 30h × 60min = 14,400,000 core-minutes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is constantly evaluated, you do not have to do anything.&lt;br /&gt;
This value decreases after a few minutes (running CPU cores * remaining runtime of all jobs in minutes) or when a job ends.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The partitions &#039;cpu&#039;, &#039;l40s&#039;, &#039;mi300a&#039;, &#039;h200&#039; and &#039;rtx&#039; only allow the use of single nodes.&#039;&#039;&#039;&lt;br /&gt;
You cannot start jobs that use more than one node, either by specifying &amp;lt;code&amp;gt;--nodes&amp;lt;/code&amp;gt; (&amp;gt;1) or &amp;lt;code&amp;gt;--ntasks&amp;lt;/code&amp;gt; (more than available on one node).&lt;br /&gt;
If you do so, your jobs will be blocked with the reason (PartitionNodeLimit).&lt;br /&gt;
&lt;br /&gt;
Common NEMO2 job codes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot;| Queue Job Code&lt;br /&gt;
! style=&amp;quot;width:80%&amp;quot;| Reason&lt;br /&gt;
|-&lt;br /&gt;
| MaxCpuRunMinsPerUser&lt;br /&gt;
| You are currently running more core minutes than permitted. This value decreases automatically over time.&lt;br /&gt;
|-&lt;br /&gt;
| PartitionNodeLimit&lt;br /&gt;
| You try to run a multi node job on a single node partition.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxCpuPerUserLimit&lt;br /&gt;
| Your job cannot be started as your user would otherwise exceed the maximum permitted cores for one user.&lt;br /&gt;
|-&lt;br /&gt;
| QOSMaxGRESPerUser&lt;br /&gt;
| Your job exceeds the per-user GPU limit (l40s: 16 GPUs, h200: 8 GPUs, rtx: 4 GPUs, mi300a: 8 GPUs).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check additional [https://slurm.schedmd.com/job_reason_codes.html reason codes] at Schedmd.&lt;br /&gt;
&lt;br /&gt;
= Accounting =&lt;br /&gt;
&lt;br /&gt;
Jobs are billed for allocated CPU cores, memory and GPUs.&lt;br /&gt;
&lt;br /&gt;
To see the accounting data of a specific job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -j &amp;lt;jobid&amp;gt; --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To retrive the job history for a specific user for a certain time frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;$ sacct -u &amp;lt;user&amp;gt; -S 2025-03-01 -E 2025-03-02 --format=user,jobid,account,nnodes,ncpus,time,elapsed,AllocTRES%50&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Hardware&amp;diff=16130</id>
		<title>NEMO2/Hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Hardware&amp;diff=16130"/>
		<updated>2026-06-16T09:27:14Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Operating System and Software ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Operating System&lt;br /&gt;
| [https://rockylinux.org Rocky Linux 9]  (similar to RHEL 9)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Queuing System&lt;br /&gt;
| [https://slurm.schedmd.com SLURM] (see [[NEMO2/Slurm]] for help)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | (Scientific) Libraries and Software&lt;br /&gt;
| [[Environment Modules]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Own Software Modules using EasyBuild and Spack&lt;br /&gt;
| [https://docs.easybuild.io/ EasyBuild]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Own (Python) Environments with Conda&lt;br /&gt;
| [[Conda]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Containers with Apptainer/Singularity (and enroot in the future)&lt;br /&gt;
| [[Development/Containers]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compute and Special Purpose Nodes ==&lt;br /&gt;
&lt;br /&gt;
For researchers from the scientific fields &#039;&#039;&#039;N&#039;&#039;&#039;euroscience, &#039;&#039;&#039;E&#039;&#039;&#039;lementary Particle Physics, &#039;&#039;&#039;M&#039;&#039;&#039;icrosystems Engineering and &#039;&#039;&#039;M&#039;&#039;&#039;aterials Science the bwForCluster &#039;&#039;&#039;NEMO&#039;&#039;&#039; offers about 260 compute nodes plus several special purpose nodes for login, interactive jobs, visualization, machine learning and ai.&lt;br /&gt;
&lt;br /&gt;
Node specification (see [[NEMO2/Slurm]] for slurm partitons):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;|&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Genoa Partition&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| Milan Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| L40S Partition&lt;br /&gt;
! style=&amp;quot;width:12%&amp;quot;| MI300A Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| H200 Partition&lt;br /&gt;
! style=&amp;quot;width:14%&amp;quot;| RTX Partition&lt;br /&gt;
! style=&amp;quot;width:12%&amp;quot;| Login Partition&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot;| Quantity&lt;br /&gt;
| 106&lt;br /&gt;
| 137&lt;br /&gt;
| 9&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Processors / APU/GPU&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9654.html AMD EPYC 9654 (Genoa)]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/7003-series/amd-epyc-7763.html AMD EPYC 7763 (Milan)]&lt;br /&gt;
| 2x [https://www.intel.com/content/www/us/en/products/sku/237558/intel-xeon-platinum-8562y-processor-60m-cache-2-80-ghz/specifications.html Intel Xeon Platinum 8562Y+ (5th Gen)]&lt;br /&gt;
4x [https://www.nvidia.com/en-us/data-center/l40s/ NVIDIA L40S]&lt;br /&gt;
| 4x [https://www.amd.com/en/products/accelerators/instinct/mi300/mi300a.html AMD Instinct MI300A]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9654.html AMD EPYC 9654 (Genoa)]&lt;br /&gt;
8x [https://www.nvidia.com/en-us/data-center/h200/ NVIDIA H200]&lt;br /&gt;
| 2x [https://www.amd.com/en/products/processors/server/epyc/9005-series/amd-epyc-9655.html AMD EPYC 9655 (Turin)]&lt;br /&gt;
4x [https://www.nvidia.com/en-us/data-center/rtx-pro-6000-blackwell-server-edition/ NVIDIA RTX PRO 6000 Blackwell Server Edition]&lt;br /&gt;
| 1x [https://www.amd.com/en/products/processors/server/epyc/4th-generation-9004-and-8004-series/amd-epyc-9354.html AMD EPYC 9354 (Genoa)]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Base Frequency/Boost Frequency (GHz) / APU/GPU Performance (TFLOPs/TOPs)&lt;br /&gt;
| 2.4/3.55&lt;br /&gt;
| 2.45/3.5&lt;br /&gt;
| 2.8/3.8&lt;br /&gt;
91.6 (FP32) / 733 (INT8)&lt;br /&gt;
| -/3.7&lt;br /&gt;
61.3 (FP64) / 122.6 (FP32) / 1960 (INT8)&lt;br /&gt;
| 2.4/3.55&lt;br /&gt;
34 (FP64) / 67 (FP32) / 3958 (INT8)&lt;br /&gt;
| 2.6/4.1&lt;br /&gt;
120 (FP32) / 4000 (FP4)&lt;br /&gt;
| 3.25/3.75&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | CPU Cores per Node&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 128&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 126&#039;&#039;&#039;&lt;br /&gt;
| 64&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 62&#039;&#039;&#039;&lt;br /&gt;
| 4x 24&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 92&#039;&#039;&#039;&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 192&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 190&#039;&#039;&#039;&lt;br /&gt;
| 32 (SMT on)&lt;br /&gt;
&#039;&#039;&#039;Usable for Users: 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | CPU Cores per APU/GPU&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
| 15&lt;br /&gt;
| 23&lt;br /&gt;
| 23&lt;br /&gt;
| 47&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Memory&lt;br /&gt;
| 768 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 727 GiB, 745000 MiB, per Core: 3900 MiB&#039;&#039;&#039;&lt;br /&gt;
| 512 GiB, 3.2 GHZ (DDR4)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 4000 MiB&#039;&#039;&#039;&lt;br /&gt;
| 512 GiB, 5.6 GHz (DDR5)&lt;br /&gt;
4x 48 GB, 864 GB/s (GDDR6)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 8100 MiB&#039;&#039;&#039;&lt;br /&gt;
| 4x 128 GB, 5300 GB/s (HBM3)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 495 GiB, 507000 MiB, per Core: 5300 MiB&#039;&#039;&#039;&lt;br /&gt;
| 1536 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
8x 141 GB, 4813 GB/s (HBM3e)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 1459 GiB, 1495000 MiB, per Core:7800 MiB&#039;&#039;&#039;&lt;br /&gt;
| 1536 GiB, 6 GHz (DDR5)&lt;br /&gt;
4x 96 GB, 1597 GB/s (GDDR7)&lt;br /&gt;
&#039;&#039;&#039;Usable in Slurm: 1459 GiB, 1495000 MiB, per Core:7800 MiB&#039;&#039;&#039;&lt;br /&gt;
| 384 GiB, 4.8 GHz (DDR5)&lt;br /&gt;
&#039;&#039;&#039;Usable for Users: 50 GiB, 51200 MiB, per Core: 12800 MiB&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Local NVMe (GB)&lt;br /&gt;
| 3840&lt;br /&gt;
| 1920&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 3840&lt;br /&gt;
| 480&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Interconnect&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| Omni-Path 100&lt;br /&gt;
100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
| 100 GbE (RoCEv2)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Genoa Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=genoa --ntasks=190 --mem=727GB # or: --mem=745000MB, or: --mem-per-cpu=3900MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Milan Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=milan --ntasks=126 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=4000MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example L40S Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=l40s --ntasks=62 --gres=gpu:4 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=8100MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example MI300A Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=mi300a --ntasks=92 --gres=gpu:4 --mem=495GB # or: --mem=507000MB, or: --mem-per-cpu=5300MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example H200 Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=h200 --ntasks=190 --gres=gpu:8 --mem=1459GB # or: --mem=1495000MB, or: --mem-per-cpu=7800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example RTX Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=rtx --ntasks=190 --gres=gpu:4 --mem=1459GB # or: --mem=1495000MB, or: --mem-per-cpu=7800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Job Example Login Partition&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; | Maximum resources for a single node job (*):&lt;br /&gt;
&amp;lt;code&amp;gt;--partition=login --ntasks=4 --time=15:00 --mem=50GB + or: --mem=51200MB, or: --mem-per-cpu=12800MB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
(*) Slurm internally uses Mebi- (MiB) and Gibibyte (GiB), please multiply/divide with 1024 for (M/G).&lt;br /&gt;
&lt;br /&gt;
== File Systems ==&lt;br /&gt;
&lt;br /&gt;
NEMO2 offers a fast [https://docs.weka.io/ Weka] parallel filesystem, which is only limited by the uplink to this storage (&amp;gt;90GB/s).&lt;br /&gt;
The storage is used for &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; and &#039;&#039;&#039;[[workspace]]s&#039;&#039;&#039;.&lt;br /&gt;
There will be no backups. Snapshots for &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; are available (see below).&lt;br /&gt;
Additionally, each compute node provides temporary storage on the node-local NVMe disk.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;|&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| [[Workspace]]s&lt;br /&gt;
! style=&amp;quot;width:10%&amp;quot;| NVMe&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Visibility&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| global (100 GbE)&lt;br /&gt;
| node local&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Lifetime&lt;br /&gt;
| permanent&lt;br /&gt;
| workspace lifetime&lt;br /&gt;
(max. 100 days, extensions possible)&lt;br /&gt;
| batch job walltime&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Capacity&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| 1 PB&lt;br /&gt;
| 1.92/3.84 TB (logins 480 GB)&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Quotas per &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;/Workspace&lt;br /&gt;
| 100 GB&lt;br /&gt;
| 5 TB (per workspace)&lt;br /&gt;
| --- &lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Snapshots&lt;br /&gt;
| hourly / daily / weekly [https://www.nemo.uni-freiburg.de/news/2025/11/17/snaphots-home/]&lt;br /&gt;
| ---&lt;br /&gt;
| ---&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; | Backups&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center;&amp;quot;| &#039;&#039;&#039;There is NO storage backup!&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  global             : all nodes access the same file system&lt;br /&gt;
  local              : each node has its own file system&lt;br /&gt;
  permanent          : files are stored permanently&lt;br /&gt;
                       however, if an account has lost access,&lt;br /&gt;
                       the remaining data will be deleted after 6 months&lt;br /&gt;
  batch job walltime : files are removed at end of the batch job&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to Access Your Snapshots ===&lt;br /&gt;
&lt;br /&gt;
Your snapshots are available in the &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt; directory. To access your personal snapshots:&lt;br /&gt;
&lt;br /&gt;
# Navigate to &amp;lt;code&amp;gt;/home/.snapshots&amp;lt;/code&amp;gt;&lt;br /&gt;
# Find the snapshot directory (e.g., &amp;lt;code&amp;gt;@GMT-2025.11.17-14.05.01&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Locate your user directory within the snapshot&lt;br /&gt;
&lt;br /&gt;
Example: If your home directory is &amp;lt;code&amp;gt;/home/fr/fr_ab1234&amp;lt;/code&amp;gt;, your snapshots are located at:&lt;br /&gt;
&amp;lt;code&amp;gt;/home/.snapshots/@GMT-2025.11.17-14.05.01/fr/fr_ab1234&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing File System Quotas ===&lt;br /&gt;
&lt;br /&gt;
You can list the quotas for your user using &amp;lt;code&amp;gt;nemoquota&amp;lt;/code&amp;gt; (prints &amp;lt;code&amp;gt;df --si&amp;lt;/code&amp;gt;) or &amp;lt;code&amp;gt;df &amp;lt;path_to_directory&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nemoquota&lt;br /&gt;
HOME / WORKSPACE          Used%       Used       Free      Quota&lt;br /&gt;
HOME                         8%       7.5G        93G       101G&lt;br /&gt;
conda                        2%        59G       5.0T       5.0T&lt;br /&gt;
container                    6%       252G       4.8T       5.0T&lt;br /&gt;
&lt;br /&gt;
$ df --si $HOME&lt;br /&gt;
Filesystem        Size  Used Avail Use% Mounted on&lt;br /&gt;
10.14.101.1/home  101G  7.5G   93G   8% /home&lt;br /&gt;
&lt;br /&gt;
$ df --si $(ws_find conda)&lt;br /&gt;
Filesystem        Size  Used Avail Use% Mounted on&lt;br /&gt;
10.14.101.1/work  5.0T   59G  5.0T   2% /work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16129</id>
		<title>NEMO2/Easybuild Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Easybuild_Modules&amp;diff=16129"/>
		<updated>2026-06-11T14:43:03Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= EasyBuild on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
EasyBuild is a software build and installation framework designed to manage scientific software on High-Performance Computing (HPC) systems. It automates the process of building and installing software, ensuring reproducibility and consistency across environments. EasyBuild uses &amp;quot;easyconfig&amp;quot; files (with &amp;lt;code&amp;gt;.eb&amp;lt;/code&amp;gt; extension) to define build parameters, dependencies, and configurations, simplifying the management of complex software stacks.&lt;br /&gt;
&lt;br /&gt;
NEMO2 uses EasyBuild exclusively to manage its software modules. All available software on NEMO2 is provided as EasyBuild modules.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Building your own modules:&#039;&#039;&#039; [[NEMO2/Easybuild Modules/EB Build Module]] - Complete guide for the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script&lt;br /&gt;
* &#039;&#039;&#039;Available modules:&#039;&#039;&#039; [https://www.nemo.uni-freiburg.de/easybuild-modules/ NEMO EasyBuild Modules List]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild official website:&#039;&#039;&#039; https://easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild GitHub:&#039;&#039;&#039; https://github.com/easybuilders/easybuild&lt;br /&gt;
&lt;br /&gt;
= Understanding Architectures on NEMO2 =&lt;br /&gt;
&lt;br /&gt;
NEMO2 has different CPU and GPU hardware architectures, and software modules are compiled specifically for each architecture to achieve optimal performance (see [[NEMO2/Hardware]] for hardware details).&lt;br /&gt;
&lt;br /&gt;
== Available Architecture Modules ==&lt;br /&gt;
&lt;br /&gt;
You can see all available architectures by running:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail arch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show five architecture options:&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/milan&amp;lt;/code&amp;gt; - AMD EPYC Milan CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt; - AMD EPYC Genoa CPUs&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/mi300a&amp;lt;/code&amp;gt; - AMD MI300A APU (Accelerated Processing Unit - combined CPU+GPU)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/l40s&amp;lt;/code&amp;gt; - NVIDIA L40S GPUs (Intel-based nodes)&lt;br /&gt;
* &amp;lt;code&amp;gt;arch/h200&amp;lt;/code&amp;gt; - NVIDIA H200 GPUs&lt;br /&gt;
&lt;br /&gt;
== Physical vs. Symbolic Architectures ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; While five architecture modules are available, there are only &#039;&#039;&#039;three physical architectures&#039;&#039;&#039; on NEMO2:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Architecture Module !! Physical Hardware !! Type !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milan&amp;lt;/code&amp;gt; || AMD EPYC Milan CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; || AMD EPYC Genoa CPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; || AMD MI300A APU (CPU+GPU) || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l40s&amp;lt;/code&amp;gt; || Intel CPUs + NVIDIA L40S GPUs || Physical || Separate installation directory&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; || AMD Genoa CPUs + NVIDIA H200 GPUs || &#039;&#039;&#039;Symbolic link → genoa&#039;&#039;&#039; || Uses genoa installation directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;):&#039;&#039;&#039; The global NEMO2 modules use symbolic links, so modules for &amp;lt;code&amp;gt;mi300a&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;h200&amp;lt;/code&amp;gt; are actually stored in the &amp;lt;code&amp;gt;genoa&amp;lt;/code&amp;gt; directory. This is because these GPU nodes use AMD Genoa CPUs as their host processors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What this means for self-built modules:&#039;&#039;&#039; When you build your own modules with &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt;, each architecture gets its own separate directory by default:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optional:&#039;&#039;&#039; You can manually create symbolic links (&amp;lt;code&amp;gt;mi300a → genoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h200 → genoa&amp;lt;/code&amp;gt;) to mirror the global structure, but this is not required. See [[NEMO2/Easybuild_Modules/EB_Build_Module#Architecture_Support|Architecture Support]] for details.&lt;br /&gt;
&lt;br /&gt;
== Viewing Modules for Specific Architectures ==&lt;br /&gt;
&lt;br /&gt;
By default, the login nodes use Genoa CPUs and display only Genoa modules. To see modules for a different architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load a specific architecture&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now module avail will show milan modules&lt;br /&gt;
module avail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable is automatically set when you load an architecture:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
echo $MODULE_ARCH  # Output: genoa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Architecture Compatibility =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important for beginners:&#039;&#039;&#039; Different architectures may not be compatible with each other. Software compiled for one architecture may not work optimally (or at all) on another.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General compatibility rules:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;milan → genoa:&#039;&#039;&#039; Software compiled for Milan will usually work on Genoa (but may not be optimally tuned)&lt;br /&gt;
* &#039;&#039;&#039;genoa → milan:&#039;&#039;&#039; Software compiled for Genoa may &#039;&#039;&#039;not&#039;&#039;&#039; work on Milan&lt;br /&gt;
* &#039;&#039;&#039;GPU architectures:&#039;&#039;&#039; Always use architecture-specific builds for GPU software&lt;br /&gt;
&lt;br /&gt;
When in doubt, build separate versions for each architecture you plan to use.&lt;br /&gt;
&lt;br /&gt;
= Building Your Own EasyBuild Modules =&lt;br /&gt;
&lt;br /&gt;
If you need software that is not yet available as a module on NEMO2, you can build your own EasyBuild modules. NEMO2 provides the &amp;lt;code&amp;gt;eb-build-module.sh&amp;lt;/code&amp;gt; script that makes this process straightforward.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For complete documentation, see:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
&lt;br /&gt;
== Why Build Your Own Modules? ==&lt;br /&gt;
&lt;br /&gt;
* Software you need is not available in the system-wide modules&lt;br /&gt;
* You need a different version than what&#039;s provided&lt;br /&gt;
* You want to customize build options or dependencies&lt;br /&gt;
* You&#039;re testing software before requesting a system-wide installation&lt;br /&gt;
&lt;br /&gt;
== Quick Start Guide ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; Search for available easyconfig files (these define how to build software):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -s Python&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Preview what will be built (dry-run - highly recommended for beginners):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -d -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows all dependencies that will be built without actually building anything.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Build the module with default settings (20 cores, 12 hours, genoa architecture):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Use your newly built module:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/genoa  # If not already loaded&lt;br /&gt;
module avail python     # Your module will appear here (lowercase)&lt;br /&gt;
module load lang/python/3.11.3-gcccore-12.3.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names are lowercase due to NEMO2&#039;s naming scheme, even though you build with &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Building for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
To build for a specific architecture (important if you&#039;ll run jobs on specific hardware):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# For Genoa CPUs&lt;br /&gt;
eb-build-module.sh -a genoa -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# For MI300A APUs (creates separate mi300a directory)&lt;br /&gt;
eb-build-module.sh -a mi300a -m PyTorch-2.1.2-foss-2023a&lt;br /&gt;
&lt;br /&gt;
# For L40S GPUs (Intel-based, uses CUDA)&lt;br /&gt;
eb-build-module.sh -a l40s -m CUDA-12.0.0&lt;br /&gt;
&lt;br /&gt;
# For H200 GPUs (creates separate h200 directory)&lt;br /&gt;
eb-build-module.sh -a h200 -m CUDA-12.0.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you plan to use software on multiple architectures, you need to build it separately for each one.&lt;br /&gt;
&lt;br /&gt;
== Key Script Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Architecture support:&#039;&#039;&#039; Automatically configures builds for milan, genoa, mi300a, l40s, or h200&lt;br /&gt;
* &#039;&#039;&#039;GPU detection:&#039;&#039;&#039; Allocates GPUs automatically when building GPU software&lt;br /&gt;
* &#039;&#039;&#039;Flexible options:&#039;&#039;&#039; Customize cores (&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;), walltime (&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;), and installation prefix (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Build modes:&#039;&#039;&#039; &lt;br /&gt;
** Standard build (default)&lt;br /&gt;
** Rebuild (&amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;) - force rebuild even if already exists&lt;br /&gt;
** Module-only (&amp;lt;code&amp;gt;-o&amp;lt;/code&amp;gt;) - generate module file without building&lt;br /&gt;
** Dry-run (&amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;) - preview without building&lt;br /&gt;
* &#039;&#039;&#039;Search function:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; to find available easyconfig files&lt;br /&gt;
* &#039;&#039;&#039;Pass-through options:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt; to pass additional EasyBuild options directly&lt;br /&gt;
&lt;br /&gt;
== Where Are Modules Installed? ==&lt;br /&gt;
&lt;br /&gt;
By default, modules are installed to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example (each architecture gets its own directory):&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/milan/&amp;lt;/code&amp;gt; - Milan-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/&amp;lt;/code&amp;gt; - Genoa-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/mi300a/&amp;lt;/code&amp;gt; - MI300A-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/l40s/&amp;lt;/code&amp;gt; - L40S-specific modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/h200/&amp;lt;/code&amp;gt; - H200-specific modules&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Unlike the global system modules (&amp;lt;code&amp;gt;/opt/eb&amp;lt;/code&amp;gt;), your self-built modules do &#039;&#039;&#039;not&#039;&#039;&#039; use symbolic links by default. Each architecture gets its own separate directory. You can manually create symlinks if desired to mirror the global structure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module files location:&#039;&#039;&#039; The actual module files that you load with &amp;lt;code&amp;gt;module load&amp;lt;/code&amp;gt; are placed in:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/          # Architecture-independent modules&lt;br /&gt;
~/.local/easybuild/&amp;lt;arch&amp;gt;/modules/all/   # Architecture-specific modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example module paths:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/.local/easybuild/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/genoa/modules/all/lang/python/3.11.3-gcccore-12.3.0.lua&lt;br /&gt;
~/.local/easybuild/mi300a/modules/all/ai/pytorch/2.1.2-foss-2023a.lua&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; On NEMO2, the module naming scheme converts all names to lowercase. While EasyBuild uses files like &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;, the resulting modules are named in lowercase: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;. This applies to all modules including compilers (&amp;lt;code&amp;gt;compiler/gcc&amp;lt;/code&amp;gt;), libraries, etc.&lt;br /&gt;
&lt;br /&gt;
These paths are automatically added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt; when you load an architecture with &amp;lt;code&amp;gt;module load arch/&amp;amp;lt;arch&amp;amp;gt;&amp;lt;/code&amp;gt;, making your custom modules visible with &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can change the installation location with the &amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt; option or by setting the &amp;lt;code&amp;gt;PREFIX&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using Your Custom Modules ==&lt;br /&gt;
&lt;br /&gt;
After building, your modules are automatically available when you load the corresponding architecture:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Load the architecture you built for&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
&lt;br /&gt;
# Your custom modules now appear alongside system modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# Load your custom module (remember: lowercase names)&lt;br /&gt;
module load category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How it works:&#039;&#039;&#039; When you load &amp;lt;code&amp;gt;arch/genoa&amp;lt;/code&amp;gt;, the following paths are added to your &amp;lt;code&amp;gt;MODULEPATH&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/modules/all/&amp;lt;/code&amp;gt; - for architecture-independent modules&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.local/easybuild/genoa/modules/all/&amp;lt;/code&amp;gt; - for genoa-specific modules&lt;br /&gt;
&lt;br /&gt;
This makes your custom-built modules visible alongside system modules when you run &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Module names appear in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;) due to NEMO2&#039;s naming scheme, even though the easyconfig files use capitalized names.&lt;br /&gt;
&lt;br /&gt;
== Common Build Options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Build with more cores for faster compilation (large packages)&lt;br /&gt;
eb-build-module.sh -c 64 -w 24 -m GCC-13.2.0&lt;br /&gt;
&lt;br /&gt;
# Rebuild an existing module&lt;br /&gt;
eb-build-module.sh -r -m Python-3.11.3-GCCcore-12.3.0&lt;br /&gt;
&lt;br /&gt;
# Pass additional EasyBuild options&lt;br /&gt;
eb-build-module.sh -m Python-3.11.3-GCCcore-12.3.0 -- --force --debug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Need Help? ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Full script documentation:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module]]&lt;br /&gt;
* &#039;&#039;&#039;Script options:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Options|Command-line options]]&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Examples|Usage examples]]&lt;br /&gt;
* &#039;&#039;&#039;Troubleshooting:&#039;&#039;&#039; [[NEMO2/Easybuild_Modules/EB_Build_Module#Troubleshooting|Common issues and solutions]]&lt;br /&gt;
* &#039;&#039;&#039;EasyBuild documentation:&#039;&#039;&#039; https://docs.easybuild.io/&lt;br /&gt;
* &#039;&#039;&#039;Available easyconfigs:&#039;&#039;&#039; Use &amp;lt;code&amp;gt;eb-build-module.sh -s pattern&amp;lt;/code&amp;gt; to search&lt;br /&gt;
&lt;br /&gt;
= Compiling Your Own Software (Non-EasyBuild) =&lt;br /&gt;
&lt;br /&gt;
If you compile your own applications outside of EasyBuild (e.g., custom C/C++/Fortran code), you should create architecture-specific builds using the &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
== Using $MODULE_ARCH in Your Workflows ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$MODULE_ARCH&amp;lt;/code&amp;gt; variable is automatically set when you load an architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load arch/milan&lt;br /&gt;
echo $MODULE_ARCH  # Output: milan&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use this in your directory structure:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Organize binaries by architecture&lt;br /&gt;
$HOME/software/$MODULE_ARCH/myapp/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Example paths for different architectures:&lt;br /&gt;
# ~/.local/software/milan/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/genoa/myapp/bin/myprogram&lt;br /&gt;
# ~/.local/software/l40s/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling for Different Architectures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Compile for Milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
gcc -O3 -march=znver3 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&lt;br /&gt;
# Compile for Genoa&lt;br /&gt;
module load arch/genoa&lt;br /&gt;
gcc -O3 -march=znver4 mycode.c -o $HOME/software/$MODULE_ARCH/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Cross-Architecture Binaries ==&lt;br /&gt;
&lt;br /&gt;
If you compile for one architecture but run on another, you must load the correct architecture module:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Request a Genoa node but run Milan-compiled code&lt;br /&gt;
salloc -n1 -p genoa&lt;br /&gt;
&lt;br /&gt;
# Load the architecture the code was compiled for&lt;br /&gt;
module load arch/milan&lt;br /&gt;
&lt;br /&gt;
# Now run your Milan-compiled binary on the Genoa node&lt;br /&gt;
$HOME/software/milan/myapp/bin/myprogram&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; This should only be done when Milan code is compatible with Genoa. Genoa code will likely not work on Milan nodes.&lt;br /&gt;
&lt;br /&gt;
= Testing Modules and Software =&lt;br /&gt;
&lt;br /&gt;
== Interactive Testing ==&lt;br /&gt;
&lt;br /&gt;
You can test modules and software interactively using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;salloc&amp;lt;/code&amp;gt; (see [[NEMO2/Slurm#Interactive_Jobs|Interactive Jobs]] and [[NEMO2/Slurm#Partitions|Partitions]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quick tests on login nodes (up to 15 minutes):&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
srun -p login &amp;lt;command&amp;gt;&lt;br /&gt;
# or&lt;br /&gt;
salloc -p login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Testing on specific architecture:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Interactive session on Milan partition&lt;br /&gt;
salloc -n1 -p milan&lt;br /&gt;
module load arch/milan&lt;br /&gt;
module load YourModule&lt;br /&gt;
&amp;lt;your-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with AMD MI300A APU&lt;br /&gt;
salloc -n1 -p mi300a --gres=gpu:1&lt;br /&gt;
module load arch/mi300a&lt;br /&gt;
module load system/rocm  # ROCm for AMD GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
# Interactive session with NVIDIA GPU (L40S example)&lt;br /&gt;
salloc -n1 -p l40s --gres=gpu:1&lt;br /&gt;
module load arch/l40s&lt;br /&gt;
module load system/cuda  # CUDA for NVIDIA GPUs&lt;br /&gt;
&amp;lt;your-gpu-command&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; If you get MPI or memory errors, try using &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; to launch your program: &amp;lt;code&amp;gt;srun &amp;lt;program&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Working with Module Listings =&lt;br /&gt;
&lt;br /&gt;
== Viewing Available Modules ==&lt;br /&gt;
&lt;br /&gt;
Basic module commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# List all available modules&lt;br /&gt;
module avail&lt;br /&gt;
&lt;br /&gt;
# List modules for a specific category&lt;br /&gt;
module avail compiler&lt;br /&gt;
module avail math&lt;br /&gt;
module avail chem&lt;br /&gt;
&lt;br /&gt;
# Search for a specific module&lt;br /&gt;
module avail python&lt;br /&gt;
module avail gcc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing Long Module Lists ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;module avail&amp;lt;/code&amp;gt; produces a very long list, use these techniques:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Get an overview:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module overview&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This shows a condensed summary of available modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Filter by category or name:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module avail compiler   # Show only compiler modules&lt;br /&gt;
module avail llvm       # Show only LLVM-related modules&lt;br /&gt;
module avail python     # Show only Python-related modules&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Hide module extensions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Many modules have extensions (additional packages/libraries). To hide these:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Hide extensions for one command&lt;br /&gt;
module --nx avail&lt;br /&gt;
# or&lt;br /&gt;
module --no_extensions avail&lt;br /&gt;
&lt;br /&gt;
# Hide extensions permanently&lt;br /&gt;
export LMOD_AVAIL_EXTENSIONS=no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the export command to your &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; to make it permanent.&lt;br /&gt;
&lt;br /&gt;
== Understanding Module Names ==&lt;br /&gt;
&lt;br /&gt;
EasyBuild module names on NEMO2 follow a specific format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
category/softwarename/version-toolchain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All components are lowercase due to NEMO2&#039;s naming scheme.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; lang (programming language)&lt;br /&gt;
* &#039;&#039;&#039;Software:&#039;&#039;&#039; python (lowercase)&lt;br /&gt;
* &#039;&#039;&#039;Version:&#039;&#039;&#039; 3.11.3&lt;br /&gt;
* &#039;&#039;&#039;Toolchain:&#039;&#039;&#039; gcccore-12.3.0 (the compiler/libraries used to build it, also lowercase)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When building, you use the EasyBuild file with capitalized names (e.g., &amp;lt;code&amp;gt;Python-3.11.3-GCCcore-12.3.0.eb&amp;lt;/code&amp;gt;), but the resulting module will be in lowercase (e.g., &amp;lt;code&amp;gt;lang/python/3.11.3-gcccore-12.3.0&amp;lt;/code&amp;gt;). This applies to all parts: software names (python, not Python), toolchain components (gcccore, not GCCcore), and everything else.&lt;br /&gt;
&lt;br /&gt;
Common categories include:&lt;br /&gt;
* &amp;lt;code&amp;gt;lang/&amp;lt;/code&amp;gt; - Programming languages (python, r, julia, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;compiler/&amp;lt;/code&amp;gt; - Compilers (gcc, intel, llvm, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;system/&amp;lt;/code&amp;gt; - System software (cuda, mpi, etc.)&lt;br /&gt;
* &amp;lt;code&amp;gt;bio/&amp;lt;/code&amp;gt; - Biology/Bioinformatics software&lt;br /&gt;
* &amp;lt;code&amp;gt;chem/&amp;lt;/code&amp;gt; - Chemistry software&lt;br /&gt;
* &amp;lt;code&amp;gt;math/&amp;lt;/code&amp;gt; - Mathematical software&lt;br /&gt;
* &amp;lt;code&amp;gt;ai/&amp;lt;/code&amp;gt; - Artificial Intelligence/Machine Learning&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt; - Libraries&lt;br /&gt;
* &amp;lt;code&amp;gt;devel/&amp;lt;/code&amp;gt; - Development tools&lt;br /&gt;
&lt;br /&gt;
When building your own modules, use the same naming convention for consistency.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/RV&amp;diff=16125</id>
		<title>Registration/bwForCluster/RV</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/RV&amp;diff=16125"/>
		<updated>2026-06-03T15:56:17Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Become Coworker of an RV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Step B: Apply for a Rechenvorhaben/Project =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rechenvorhaben/Projects (RV)&#039;&#039;&#039; are required for assignment to a bwForCluster.&lt;br /&gt;
[[File:RV-my.png|right|frame|My RVs.]]&lt;br /&gt;
&lt;br /&gt;
To get access to an RV, answer the following question: &lt;br /&gt;
* Does your work group (or the collaborative project that you are part of) already have an RV?&lt;br /&gt;
** &#039;&#039;&#039;Yes &amp;amp;rarr; [[#Become_Coworker_of_an_RV|Become Coworker of an RV]]&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;No &amp;amp;rarr; [[#Register_a_new_RV|Register a new RV]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can see your RV memberships at the central application site ZAS under [https://zas.bwhpc.de/shib/en/info_rv.php &#039;&#039;&#039;My RVs&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
== Become Coworker of an RV ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #28a745; padding: 15px; background-color: #d4edda; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
You can only sign up for an RV once.&lt;br /&gt;
If you are an inactive member of an RV, either because you de-registered yourself or a manager deactivated you, only an RV manager can reactivate you.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;RV responsible&amp;quot; will provide you with the following data on the RV:&lt;br /&gt;
* RV acronym&lt;br /&gt;
* RV password&lt;br /&gt;
&lt;br /&gt;
If this information is lost, please let the &amp;quot;RV responsible&amp;quot; [[Registration/bwForCluster/RV/Management#Renew_RV_Password|renew the password]] for the RV.&lt;br /&gt;
&lt;br /&gt;
To become coworker of an RV, follow these steps:&lt;br /&gt;
# Please visit the [https://zas.bwhpc.de/shib/en/bwforcluster_collaboration.php &#039;&#039;&#039;RV collaboration&#039;&#039;&#039;] web form at the [https://zas.bwhpc.de ZAS].&lt;br /&gt;
# Select your home organization from the list on the main page and click &#039;&#039;&#039;Proceed&#039;&#039;&#039; or &#039;&#039;&#039;Fortfahren&#039;&#039;&#039;.&lt;br /&gt;
# You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization. Enter the username and password of your &#039;&#039;&#039;home organization&#039;&#039;&#039; (usually these credentials are also used for other services like email) and click &#039;&#039;&#039;Login/Einloggen&#039;&#039;&#039;.&lt;br /&gt;
# You will be redirected back to the RV collaboration form &#039;&#039;&#039;https://zas.bwhpc.de/shib/en/bwforcluster_collaboration.php&#039;&#039;&#039;.&lt;br /&gt;
# Enter &#039;&#039;&#039;RV Acronym&#039;&#039;&#039;, &#039;&#039;&#039;RV Password&#039;&#039;&#039; and &#039;&#039;&#039;Institute&#039;&#039;&#039; into the form and check both &amp;quot;Terms of Use&amp;quot;. Click &#039;&#039;&#039;Send&#039;&#039;&#039;.&lt;br /&gt;
# You will be assigned to the RV as a new member. &lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left:18px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Attention.svg|left|15px]]&lt;br /&gt;
In case of the &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;error&amp;lt;/span&amp;gt; &amp;quot;This project is not currently renewed&amp;quot;, please ask the RV responsible to apply for a prolongation of the RV. As soon as the prolongation was accepted, you can join the RV.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After submitting the request you will receive an email from ZAS about the further steps.&lt;br /&gt;
RV owner and RV managers will be notified automatically.&lt;br /&gt;
&lt;br /&gt;
== Register a new RV ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #28a745; padding: 15px; background-color: #d4edda; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
* An RV is valid for &#039;&#039;&#039;one year&#039;&#039;&#039;. After that, the RV responsible must apply for an extension of the RV for it to be renewed for another year.&lt;br /&gt;
* &#039;&#039;&#039;Creating multiple RVs on the same cluster is not necessary.&#039;&#039;&#039; Being part of multiple RVs on the same cluster does not grant any additional computing resources. The resource specifications (e.g. CPU hours) in an RV are used solely for cluster (tier) routing — to help assign your project to the most suitable cluster (tier). &#039;&#039;&#039;They do not represent a budget that is consumed, and they do not impose any limits on your usage.&#039;&#039;&#039; Every cluster user has full access to all available cluster resources regardless of how many RVs they belong to.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An RV should be registered by a leader or senior scientist of a research group/collaboration.&lt;br /&gt;
You will be:&lt;br /&gt;
* held accountable for the coworkers in the RV&lt;br /&gt;
* asked to provide information for the two reports required by the DFG for their funding of bwForClusters&lt;br /&gt;
* must make sure publications that used bwHPC resources properly cite the use in the [[acknowledgement]]&lt;br /&gt;
* must report publications which used bwHPC resources at least once a year&lt;br /&gt;
* likely asked for a contribution to a future DFG grant proposal for a new bwForCluster in your area of research (&amp;quot;wissenschaftliches Beiblatt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some hints:&#039;&#039;&#039; &lt;br /&gt;
* To be notified about important issues via the cluster&#039;s mailing list, it is necessary to finish all three registration steps. If you don&#039;t plan to work with the cluster yourself, we recommend to either register nevertheless or ask a colleague who is going to use the cluster to keep you updated. For better transparency, that colleague could receive the &#039;&#039;RV manager&#039;&#039; role from you. &lt;br /&gt;
* Any number of coworkers can join the RV to work with the cluster.Therefore, they need to be provided with the RV password and acronym.&lt;br /&gt;
* The [https://www.bwhpc.de/bwhpc-domains.php research area] of the group as well as the software and hardware requirements are taken into account.&lt;br /&gt;
*: Please look carefully through the scientific fields and research domains to find the field that fits best to your research focus and experience. This way, you&#039;ll be assigned to the cluster that can support you best. If in doubt, you can check the [https://www.dfg.de/resource/blob/175334/89ba4a3464c99aaea40fdef47367e7b2/fachsystematik-2020-2024-de-grafik-data.pdf DFG classification] as well.&lt;br /&gt;
* Research topics also do not need to match the RV description exactly. However, we appreciate it if you keep the RV information up to date when submitting a prolongation application.&lt;br /&gt;
* Getting access to two different clusters is only possible if specific software or hardware needs demand access for both. &lt;br /&gt;
&lt;br /&gt;
[[File:RV-reg.png|right|frame|Register a new RV.]]&lt;br /&gt;
[[File:BwIDM-login.png|right|250px|thumb|Select your home organization]]&lt;br /&gt;
&#039;&#039;&#039;To apply for a new RV, follow these steps:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Please visit the [https://zas.bwhpc.de/shib/en/bwforcluster_proposal.php &#039;&#039;&#039;RV registration&#039;&#039;&#039;] web form at the [https://zas.bwhpc.de ZAS].&lt;br /&gt;
# Select your home organization from the list on the main page and click &#039;&#039;&#039;Proceed&#039;&#039;&#039; or &#039;&#039;&#039;Fortfahren&#039;&#039;&#039;.&lt;br /&gt;
# You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization. Enter the username and password of your &#039;&#039;&#039;home organization&#039;&#039;&#039; (usually these credentials are also used for other services like email) and click &#039;&#039;&#039;Login/Einloggen&#039;&#039;&#039;.&lt;br /&gt;
# You will be redirected back to the RV registration form &#039;&#039;&#039;https://zas.bwhpc.de/shib/en/bwforcluster_proposal.php&#039;&#039;&#039;.&lt;br /&gt;
# Fill in all mandatory fields of the form and tick the two &amp;quot;Terms of use&amp;quot;. Detailed information on the individual fields can be found in the section [[Registration/bwForCluster/RV#Registration_Form_Details|Registration Form Details]]. Click &#039;&#039;&#039;Preview&#039;&#039;&#039;.&lt;br /&gt;
# If the information is correct, click &#039;&#039;&#039;Submit&#039;&#039;&#039;, otherwise you can customize your application.&lt;br /&gt;
# Go to section [[Registration/bwForCluster/RV#Registration_Response|Registration Response]] for the next steps.&lt;br /&gt;
&lt;br /&gt;
Please note that for your convenience you can also switch to the [https://zas.bwhpc.de/shib/bwforcluster_proposal.php German version] of the web form.&lt;br /&gt;
The submitter of the RV will be assigned the role &amp;quot;RV responsible&amp;quot; (see [[Registration/bwForCluster/RV/Management|Roles in an RV]]).&lt;br /&gt;
&lt;br /&gt;
=== Registration Form Details ===&lt;br /&gt;
&lt;br /&gt;
The web form consists of the following fields.&lt;br /&gt;
Note that the fields - name, given name, organization, mail, and EPPN - are auto-filled and can not be changed.&lt;br /&gt;
These are your credentials as given by your home organization.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%;border:3px solid darkgray; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:20%;padding:2px;margin:3px; background:#AAA; font-size:100%; font-weight:bold; border:1px solid #BBBBBB; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;| Field&lt;br /&gt;
! style=&amp;quot;padding:2px;margin:3px; background:#AAA; font-size:100%; font-weight:bold; border:1px solid #BBBBBB; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot; | Explanation&lt;br /&gt;
|rowspan=&amp;quot;15&amp;quot;| [[File:RV-form.png|center|400px|thumb|Registering a new RV.]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| RV Title&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Define a short title of your planned compute activities, maximum of 255 characters including spaces.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| RV Description&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Write a short abstract about your planned compute activities (maximum of 2048 characters including spaces). Research groups that contributed to the DFG grant proposal (Art. 91b GG) of the corresponding bwForCluster only need to give reference to that particular proposal.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Scientific field&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Tick one or several scientific fields. Once all bwForClusters are up and running the full list of given scientific fields are supported and hence for RV applicable. If your RV does not match any given scientific field, please state your scientific field in the given text box. Grayed out scientific fields indicate that the corresponding bwForCluster(s) is/are not operational yet.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Field of activity&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Define if your RV is primarily for research and/or teaching. If not applicable, use text box.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Parallel paradigm&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State what parallel paradigm your code or application uses. Multiple ticks are allowed. Further information can be provided via text box. If you are not sure about it, please state the software you are using.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Programming language&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State the programming language(s) of your code or application.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Numerical methods&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State the numerical or &amp;quot;calculation&amp;quot; methods your code or application utilizes. If you do not know, write &amp;quot;unknown&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Software packages&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State all software package you will or want to use for your RV. Also include compiler, MPI and numerical packages (e.g. MKL, FFTW).&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated requested computing resources&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Roughly estimate how many CPU hours are required to finish your RV. To calculate &amp;quot;CPU hours&amp;quot; multiply &amp;quot;elapsed parallel computing time&amp;quot; with &amp;quot;number of CPU core&amp;quot; per job. &lt;br /&gt;
&#039;&#039;Example: Your code uses 4 CPU cores and has a wall time of 1h. This makes 4 CPU hours.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Planned maximum number of parallel used CPU cores per job&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Give an upper limit of how many CPU cores per job are required. Please cross-check with your statement about parallel paradigm. &lt;br /&gt;
&#039;&#039;Obviously, a sequential code can only use 1 CPU core per job.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated maximal memory requirements per CPU core&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Give an upper limit of how much RAM per CPU core your jobs require. Please give a value in Gigabytes.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated requested persistent disk space for the RV&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State how much disk space in total you need for your RV. Please give a value in Gigabytes. &lt;br /&gt;
&#039;&#039;Example: If your RV has 4 more coworker and each of you produces until the end of your RV 20 Gigabyte of output, your maximum disk space is 100 Gigabyte.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated maximal temporary disk space per job&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State how much space your intermediate files require during a job run. Please give a value in Gigabytes. &lt;br /&gt;
&#039;&#039;Example: Your final output of your job is 0.1 Gigabyte, but during your job 10 temporary files, each with a size of 1 Gigabyte, are written to disk, hence your correct answer is 10 Gigabyte.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Institute&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State the full name of your Institute.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Response ===&lt;br /&gt;
&lt;br /&gt;
After submitting you will get an email from the ZAS confirming your submission.&lt;br /&gt;
With this email you are given an unique&lt;br /&gt;
* RV acronym&lt;br /&gt;
* RV password&lt;br /&gt;
&lt;br /&gt;
Please keep the password enclosed.&lt;br /&gt;
With RV acronym and password, [[Registration/bwForCluster/RV#Become_Coworker_of_a_RV| coworkers ]] can already associate themselves to the RV.&lt;br /&gt;
If this information is lost, please [[Registration/bwForCluster/RV#Renew_RV_Password|renew the password]] for the RV.&lt;br /&gt;
&lt;br /&gt;
The cluster assignment team assigns a bwForCluster to your RV based on your submitted data, including the [https://www.bwhpc.de/bwhpc-domains.php research area] as well as the software and hardware requirements.&lt;br /&gt;
The ZAS notifies you in an email about your assigned bwForCluster and provides website details for [[Registration/bwForCluster/Service| Step C]]. Later on you can find details about the roles and management possibilities at the [[Registration/bwForCluster/RV/Management | RV Management]] page.&lt;br /&gt;
&lt;br /&gt;
=== Duration of an RV ===&lt;br /&gt;
&lt;br /&gt;
An RV is valid for &#039;&#039;&#039;one year&#039;&#039;&#039;.&lt;br /&gt;
After that, the RV responsible must apply for an extension of the RV for it to be renewed for another year.&lt;br /&gt;
&lt;br /&gt;
=== RV Management for RV Responsibles and Managers  ===&lt;br /&gt;
&lt;br /&gt;
RV responsible or manager can [[Registration/bwForCluster/RV/Management|manage and modify Rechenvorhaben/projects]]. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right;&amp;quot;&amp;gt;[[Registration/bwForCluster/Service | Go to step C]]&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/RV&amp;diff=16124</id>
		<title>Registration/bwForCluster/RV</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/bwForCluster/RV&amp;diff=16124"/>
		<updated>2026-06-03T15:53:54Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Register a new RV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Step B: Apply for a Rechenvorhaben/Project =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rechenvorhaben/Projects (RV)&#039;&#039;&#039; are required for assignment to a bwForCluster.&lt;br /&gt;
[[File:RV-my.png|right|frame|My RVs.]]&lt;br /&gt;
&lt;br /&gt;
To get access to an RV, answer the following question: &lt;br /&gt;
* Does your work group (or the collaborative project that you are part of) already have an RV?&lt;br /&gt;
** &#039;&#039;&#039;Yes &amp;amp;rarr; [[#Become_Coworker_of_an_RV|Become Coworker of an RV]]&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;No &amp;amp;rarr; [[#Register_a_new_RV|Register a new RV]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can see your RV memberships at the central application site ZAS under [https://zas.bwhpc.de/shib/en/info_rv.php &#039;&#039;&#039;My RVs&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
== Become Coworker of an RV ==&lt;br /&gt;
&lt;br /&gt;
[[File:RV-collab.png|right|100px|frame|1. RV collaboration.]]&lt;br /&gt;
[[File:RV-formcol.png|right|300px|thumb|4. RV collaboration form]]&lt;br /&gt;
{|style=&amp;quot;background:#deffee; width:70%;&amp;quot;&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
[[Image:Attention.svg|center|25px]]&lt;br /&gt;
|style=&amp;quot;padding:5px; background:#cef2e0; text-align:left&amp;quot;|&lt;br /&gt;
You can only sign up for an RV once.&lt;br /&gt;
If you are an inactive member of an RV, either because you de-registered yourself or a manager deactivated you, only an RV manager can reactivate you.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;RV responsible&amp;quot; will provide you with the following data on the RV:&lt;br /&gt;
* RV acronym&lt;br /&gt;
* RV password&lt;br /&gt;
&lt;br /&gt;
If this information is lost, please let the &amp;quot;RV responsible&amp;quot; [[Registration/bwForCluster/RV/Management#Renew_RV_Password|renew the password]] for the RV.&lt;br /&gt;
&lt;br /&gt;
To become coworker of an RV, follow these steps:&lt;br /&gt;
# Please visit the [https://zas.bwhpc.de/shib/en/bwforcluster_collaboration.php &#039;&#039;&#039;RV collaboration&#039;&#039;&#039;] web form at the [https://zas.bwhpc.de ZAS].&lt;br /&gt;
# Select your home organization from the list on the main page and click &#039;&#039;&#039;Proceed&#039;&#039;&#039; or &#039;&#039;&#039;Fortfahren&#039;&#039;&#039;.&lt;br /&gt;
# You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization. Enter the username and password of your &#039;&#039;&#039;home organization&#039;&#039;&#039; (usually these credentials are also used for other services like email) and click &#039;&#039;&#039;Login/Einloggen&#039;&#039;&#039;.&lt;br /&gt;
# You will be redirected back to the RV collaboration form &#039;&#039;&#039;https://zas.bwhpc.de/shib/en/bwforcluster_collaboration.php&#039;&#039;&#039;.&lt;br /&gt;
# Enter &#039;&#039;&#039;RV Acronym&#039;&#039;&#039;, &#039;&#039;&#039;RV Password&#039;&#039;&#039; and &#039;&#039;&#039;Institute&#039;&#039;&#039; into the form and check both &amp;quot;Terms of Use&amp;quot;. Click &#039;&#039;&#039;Send&#039;&#039;&#039;.&lt;br /&gt;
# You will be assigned to the RV as a new member. &lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left:18px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Attention.svg|left|15px]]&lt;br /&gt;
In case of the &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;error&amp;lt;/span&amp;gt; &amp;quot;This project is not currently renewed&amp;quot;, please ask the RV responsible to apply for a prolongation of the RV. As soon as the prolongation was accepted, you can join the RV.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After submitting the request you will receive an email from ZAS about the further steps.&lt;br /&gt;
RV owner and RV managers will be notified automatically.&lt;br /&gt;
&lt;br /&gt;
== Register a new RV ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #28a745; padding: 15px; background-color: #d4edda; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
* An RV is valid for &#039;&#039;&#039;one year&#039;&#039;&#039;. After that, the RV responsible must apply for an extension of the RV for it to be renewed for another year.&lt;br /&gt;
* &#039;&#039;&#039;Creating multiple RVs on the same cluster is not necessary.&#039;&#039;&#039; Being part of multiple RVs on the same cluster does not grant any additional computing resources. The resource specifications (e.g. CPU hours) in an RV are used solely for cluster (tier) routing — to help assign your project to the most suitable cluster (tier). &#039;&#039;&#039;They do not represent a budget that is consumed, and they do not impose any limits on your usage.&#039;&#039;&#039; Every cluster user has full access to all available cluster resources regardless of how many RVs they belong to.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An RV should be registered by a leader or senior scientist of a research group/collaboration.&lt;br /&gt;
You will be:&lt;br /&gt;
* held accountable for the coworkers in the RV&lt;br /&gt;
* asked to provide information for the two reports required by the DFG for their funding of bwForClusters&lt;br /&gt;
* must make sure publications that used bwHPC resources properly cite the use in the [[acknowledgement]]&lt;br /&gt;
* must report publications which used bwHPC resources at least once a year&lt;br /&gt;
* likely asked for a contribution to a future DFG grant proposal for a new bwForCluster in your area of research (&amp;quot;wissenschaftliches Beiblatt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some hints:&#039;&#039;&#039; &lt;br /&gt;
* To be notified about important issues via the cluster&#039;s mailing list, it is necessary to finish all three registration steps. If you don&#039;t plan to work with the cluster yourself, we recommend to either register nevertheless or ask a colleague who is going to use the cluster to keep you updated. For better transparency, that colleague could receive the &#039;&#039;RV manager&#039;&#039; role from you. &lt;br /&gt;
* Any number of coworkers can join the RV to work with the cluster.Therefore, they need to be provided with the RV password and acronym.&lt;br /&gt;
* The [https://www.bwhpc.de/bwhpc-domains.php research area] of the group as well as the software and hardware requirements are taken into account.&lt;br /&gt;
*: Please look carefully through the scientific fields and research domains to find the field that fits best to your research focus and experience. This way, you&#039;ll be assigned to the cluster that can support you best. If in doubt, you can check the [https://www.dfg.de/resource/blob/175334/89ba4a3464c99aaea40fdef47367e7b2/fachsystematik-2020-2024-de-grafik-data.pdf DFG classification] as well.&lt;br /&gt;
* Research topics also do not need to match the RV description exactly. However, we appreciate it if you keep the RV information up to date when submitting a prolongation application.&lt;br /&gt;
* Getting access to two different clusters is only possible if specific software or hardware needs demand access for both. &lt;br /&gt;
&lt;br /&gt;
[[File:RV-reg.png|right|frame|Register a new RV.]]&lt;br /&gt;
[[File:BwIDM-login.png|right|250px|thumb|Select your home organization]]&lt;br /&gt;
&#039;&#039;&#039;To apply for a new RV, follow these steps:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Please visit the [https://zas.bwhpc.de/shib/en/bwforcluster_proposal.php &#039;&#039;&#039;RV registration&#039;&#039;&#039;] web form at the [https://zas.bwhpc.de ZAS].&lt;br /&gt;
# Select your home organization from the list on the main page and click &#039;&#039;&#039;Proceed&#039;&#039;&#039; or &#039;&#039;&#039;Fortfahren&#039;&#039;&#039;.&lt;br /&gt;
# You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organization. Enter the username and password of your &#039;&#039;&#039;home organization&#039;&#039;&#039; (usually these credentials are also used for other services like email) and click &#039;&#039;&#039;Login/Einloggen&#039;&#039;&#039;.&lt;br /&gt;
# You will be redirected back to the RV registration form &#039;&#039;&#039;https://zas.bwhpc.de/shib/en/bwforcluster_proposal.php&#039;&#039;&#039;.&lt;br /&gt;
# Fill in all mandatory fields of the form and tick the two &amp;quot;Terms of use&amp;quot;. Detailed information on the individual fields can be found in the section [[Registration/bwForCluster/RV#Registration_Form_Details|Registration Form Details]]. Click &#039;&#039;&#039;Preview&#039;&#039;&#039;.&lt;br /&gt;
# If the information is correct, click &#039;&#039;&#039;Submit&#039;&#039;&#039;, otherwise you can customize your application.&lt;br /&gt;
# Go to section [[Registration/bwForCluster/RV#Registration_Response|Registration Response]] for the next steps.&lt;br /&gt;
&lt;br /&gt;
Please note that for your convenience you can also switch to the [https://zas.bwhpc.de/shib/bwforcluster_proposal.php German version] of the web form.&lt;br /&gt;
The submitter of the RV will be assigned the role &amp;quot;RV responsible&amp;quot; (see [[Registration/bwForCluster/RV/Management|Roles in an RV]]).&lt;br /&gt;
&lt;br /&gt;
=== Registration Form Details ===&lt;br /&gt;
&lt;br /&gt;
The web form consists of the following fields.&lt;br /&gt;
Note that the fields - name, given name, organization, mail, and EPPN - are auto-filled and can not be changed.&lt;br /&gt;
These are your credentials as given by your home organization.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%;border:3px solid darkgray; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:20%;padding:2px;margin:3px; background:#AAA; font-size:100%; font-weight:bold; border:1px solid #BBBBBB; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;| Field&lt;br /&gt;
! style=&amp;quot;padding:2px;margin:3px; background:#AAA; font-size:100%; font-weight:bold; border:1px solid #BBBBBB; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot; | Explanation&lt;br /&gt;
|rowspan=&amp;quot;15&amp;quot;| [[File:RV-form.png|center|400px|thumb|Registering a new RV.]]&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| RV Title&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Define a short title of your planned compute activities, maximum of 255 characters including spaces.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| RV Description&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Write a short abstract about your planned compute activities (maximum of 2048 characters including spaces). Research groups that contributed to the DFG grant proposal (Art. 91b GG) of the corresponding bwForCluster only need to give reference to that particular proposal.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Scientific field&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Tick one or several scientific fields. Once all bwForClusters are up and running the full list of given scientific fields are supported and hence for RV applicable. If your RV does not match any given scientific field, please state your scientific field in the given text box. Grayed out scientific fields indicate that the corresponding bwForCluster(s) is/are not operational yet.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Field of activity&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Define if your RV is primarily for research and/or teaching. If not applicable, use text box.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Parallel paradigm&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State what parallel paradigm your code or application uses. Multiple ticks are allowed. Further information can be provided via text box. If you are not sure about it, please state the software you are using.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Programming language&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State the programming language(s) of your code or application.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Numerical methods&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State the numerical or &amp;quot;calculation&amp;quot; methods your code or application utilizes. If you do not know, write &amp;quot;unknown&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Software packages&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State all software package you will or want to use for your RV. Also include compiler, MPI and numerical packages (e.g. MKL, FFTW).&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated requested computing resources&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Roughly estimate how many CPU hours are required to finish your RV. To calculate &amp;quot;CPU hours&amp;quot; multiply &amp;quot;elapsed parallel computing time&amp;quot; with &amp;quot;number of CPU core&amp;quot; per job. &lt;br /&gt;
&#039;&#039;Example: Your code uses 4 CPU cores and has a wall time of 1h. This makes 4 CPU hours.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Planned maximum number of parallel used CPU cores per job&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Give an upper limit of how many CPU cores per job are required. Please cross-check with your statement about parallel paradigm. &lt;br /&gt;
&#039;&#039;Obviously, a sequential code can only use 1 CPU core per job.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated maximal memory requirements per CPU core&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | Give an upper limit of how much RAM per CPU core your jobs require. Please give a value in Gigabytes.&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated requested persistent disk space for the RV&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State how much disk space in total you need for your RV. Please give a value in Gigabytes. &lt;br /&gt;
&#039;&#039;Example: If your RV has 4 more coworker and each of you produces until the end of your RV 20 Gigabyte of output, your maximum disk space is 100 Gigabyte.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Estimated maximal temporary disk space per job&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State how much space your intermediate files require during a job run. Please give a value in Gigabytes. &lt;br /&gt;
&#039;&#039;Example: Your final output of your job is 0.1 Gigabyte, but during your job 10 temporary files, each with a size of 1 Gigabyte, are written to disk, hence your correct answer is 10 Gigabyte.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!scope=&amp;quot;column&amp;quot; {{Lightgray_small}}| Institute&lt;br /&gt;
|scope=&amp;quot;column&amp;quot; {{Tab element}} | State the full name of your Institute.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration Response ===&lt;br /&gt;
&lt;br /&gt;
After submitting you will get an email from the ZAS confirming your submission.&lt;br /&gt;
With this email you are given an unique&lt;br /&gt;
* RV acronym&lt;br /&gt;
* RV password&lt;br /&gt;
&lt;br /&gt;
Please keep the password enclosed.&lt;br /&gt;
With RV acronym and password, [[Registration/bwForCluster/RV#Become_Coworker_of_a_RV| coworkers ]] can already associate themselves to the RV.&lt;br /&gt;
If this information is lost, please [[Registration/bwForCluster/RV#Renew_RV_Password|renew the password]] for the RV.&lt;br /&gt;
&lt;br /&gt;
The cluster assignment team assigns a bwForCluster to your RV based on your submitted data, including the [https://www.bwhpc.de/bwhpc-domains.php research area] as well as the software and hardware requirements.&lt;br /&gt;
The ZAS notifies you in an email about your assigned bwForCluster and provides website details for [[Registration/bwForCluster/Service| Step C]]. Later on you can find details about the roles and management possibilities at the [[Registration/bwForCluster/RV/Management | RV Management]] page.&lt;br /&gt;
&lt;br /&gt;
=== Duration of an RV ===&lt;br /&gt;
&lt;br /&gt;
An RV is valid for &#039;&#039;&#039;one year&#039;&#039;&#039;.&lt;br /&gt;
After that, the RV responsible must apply for an extension of the RV for it to be renewed for another year.&lt;br /&gt;
&lt;br /&gt;
=== RV Management for RV Responsibles and Managers  ===&lt;br /&gt;
&lt;br /&gt;
RV responsible or manager can [[Registration/bwForCluster/RV/Management|manage and modify Rechenvorhaben/projects]]. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:right;&amp;quot;&amp;gt;[[Registration/bwForCluster/Service | Go to step C]]&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces&amp;diff=16121</id>
		<title>NEMO2/Workspaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces&amp;diff=16121"/>
		<updated>2026-06-03T12:47:43Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Sharing Workspaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; padding: 15px; background-color: #fff3cd; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is the updated Workspaces guide for NEMO2. For other clusters please use: [[Workspace]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace tools&#039;&#039;&#039; provide temporary storage on NEMO&#039;s fast parallel filesystem (Weka).&lt;br /&gt;
They are meant for data that needs to persist longer than a single job, but not permanently.&lt;br /&gt;
&lt;br /&gt;
For advanced features — user config (&amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;), reminders, quotas, workspace handover, and more — see [[NEMO2/Workspaces/Advanced_Features|Advanced Features]].&lt;br /&gt;
&lt;br /&gt;
== What are Workspaces? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use workspaces for:&#039;&#039;&#039;&lt;br /&gt;
* Jobs generating intermediate data&lt;br /&gt;
* Data shared between multiple compute nodes&lt;br /&gt;
* Multi-step workflows&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t use workspaces for:&#039;&#039;&#039;&lt;br /&gt;
* Permanent storage (use HOME or project directories)&lt;br /&gt;
* Single-node temporary files (use &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt; instead)&lt;br /&gt;
&lt;br /&gt;
== Important - Read First ==&lt;br /&gt;
&lt;br /&gt;
* No Backup: Data is &#039;&#039;&#039;not backed up&#039;&#039;&#039; and will be &#039;&#039;&#039;automatically deleted&#039;&#039;&#039; after expiration&lt;br /&gt;
* Time-limited: Maximum lifetime is 100 days, up to 100 extensions&lt;br /&gt;
* Email Reminders: You receive email notifications before expiration&lt;br /&gt;
* Backup Important Data: Copy results to permanent storage before expiration&lt;br /&gt;
&lt;br /&gt;
== Command Overview ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_allocate&amp;lt;/tt&amp;gt; - Create or extend workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt; - List your workspaces&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; - Find workspace path (for scripts)&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_extend&amp;lt;/tt&amp;gt; - Extend workspace lifetime&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt; - Release (delete) workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; - Restore expired/released workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_register&amp;lt;/tt&amp;gt; - Create symbolic links&lt;br /&gt;
&lt;br /&gt;
All commands support &amp;lt;tt&amp;gt;-h&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:40%&amp;quot; | Task&lt;br /&gt;
!style=&amp;quot;width:60%&amp;quot; | Command&lt;br /&gt;
|-&lt;br /&gt;
|Create workspace (100 days)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_allocate myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Create group workspace&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_allocate -G groupname myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|List all workspaces&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|See what expires soon&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_list -Rr&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Find path (for scripts)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_find myWs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Extend by 100 days&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_extend myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Delete workspace (permanent, next nightly run)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_release myWs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Restore expired workspace (30d grace)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;ws_restore oldname newname&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Creating Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Create a workspace with a &#039;&#039;&#039;name&#039;&#039;&#039; and &#039;&#039;&#039;lifetime&#039;&#039;&#039; in days:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate myWs 100&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
&lt;br /&gt;
   /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capture path in variable:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_allocate myWs 100)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Running the same command again is safe - returns the existing workspace path.&lt;br /&gt;
&lt;br /&gt;
== Listing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_list                                # List all workspaces&lt;br /&gt;
   $ ws_list -Rr                            # Sort by remaining time, soonest first&lt;br /&gt;
   $ ws_list -g                             # Show group workspaces&lt;br /&gt;
&lt;br /&gt;
== Extending Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_extend myWs 100                      # Extend by 100 days from now&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternative:&#039;&#039;&#039; &amp;lt;tt&amp;gt;ws_allocate -x myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each extension consumes one of your available extensions (100 total).&lt;br /&gt;
&lt;br /&gt;
== Releasing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_release myWs&lt;br /&gt;
&lt;br /&gt;
The workspace becomes inaccessible immediately and is permanently deleted at the next nightly expirer run. &#039;&#039;&#039;Do not rely on recovering a released workspace.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Restoring Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Recover workspaces that &#039;&#039;&#039;expired naturally&#039;&#039;&#039; (reached end of lifetime) within the 30-day grace period:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -l                          # (1) List restorable workspaces&lt;br /&gt;
   $ ws_allocate restored 100               # (2) Create target workspace&lt;br /&gt;
   $ ws_restore username-myWs-0 restored    # (3) Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Use the &#039;&#039;&#039;full name&#039;&#039;&#039; from &amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; (with username and timestamp), not the short name.&lt;br /&gt;
Released workspaces (via &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt;) can also be restored, but only until the next nightly expirer run — after that they are permanently deleted.&lt;br /&gt;
&lt;br /&gt;
== Sharing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
=== Group workspace (recommended) ===&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -g myWs 100                # Group-readable (read-only for group)&lt;br /&gt;
   $ ws_allocate -G projectgroup myWs 100   # Group-writable (recommended for teams)&lt;br /&gt;
   $ ws_allocate -G bw12a001 myWs 100       # Example: project group bw12a001&lt;br /&gt;
&lt;br /&gt;
Anyone in the group can use &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt; to see the workspace and extend it with:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -x -u owner myWs 100&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; also enables smooth handover when team members leave — see [[NEMO2/Workspaces/Advanced_Features#Workspace_Handover|Workspace Handover]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Set default group in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
groupname: bw12a001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Share after creation ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; at creation, share read-only with &amp;lt;tt&amp;gt;ws_share&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
   $ ws_share share myWs alice bob          # Grant read access&lt;br /&gt;
   $ ws_share list myWs                     # Show who has access&lt;br /&gt;
   $ ws_share unshare myWs alice            # Remove access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Advanced sharing:&#039;&#039;&#039; [[NEMO2/Workspaces/Advanced_Features#Sharing|Sharing guide]] for ACL-based per-user permissions.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Containers/Enroot&amp;diff=16116</id>
		<title>NEMO2/Containers/Enroot</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Containers/Enroot&amp;diff=16116"/>
		<updated>2026-06-02T12:45:12Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Image storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Enroot&#039;&#039;&#039; is a container runtime developed by NVIDIA that runs OCI/Docker containers without root privileges.&lt;br /&gt;
On NEMO it is the &#039;&#039;&#039;recommended&#039;&#039;&#039; container solution and is integrated with Slurm via the &#039;&#039;&#039;Pyxis&#039;&#039;&#039; SPANK plugin.&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
Enroot converts a Docker image into a SquashFS file (&amp;lt;tt&amp;gt;.sqsh&amp;lt;/tt&amp;gt;), unpacks it on demand into an overlay filesystem, and runs your workload inside that environment.&lt;br /&gt;
The Pyxis plugin adds &amp;lt;tt&amp;gt;--container-*&amp;lt;/tt&amp;gt; options to &amp;lt;tt&amp;gt;srun&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;salloc&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;sbatch&amp;lt;/tt&amp;gt; so containers become first-class Slurm jobs.&lt;br /&gt;
&lt;br /&gt;
== Image sources ==&lt;br /&gt;
&lt;br /&gt;
All major OCI registries work out of the box. Note that Enroot uses &amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt; (not &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;) to separate registry host from image path.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Registry !! URI syntax !! Example&lt;br /&gt;
|-&lt;br /&gt;
| Docker Hub || &amp;lt;tt&amp;gt;docker://IMAGE[:TAG]&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;docker://ubuntu:24.04&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NVIDIA NGC || &amp;lt;tt&amp;gt;docker://nvcr.io#ORG/IMAGE[:TAG]&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;docker://nvcr.io#nvidia/pytorch:24.01-py3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| quay.io || &amp;lt;tt&amp;gt;docker://quay.io#ORG/IMAGE[:TAG]&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;docker://quay.io#rockylinux/rockylinux:9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Container Registry || &amp;lt;tt&amp;gt;docker://ghcr.io#ORG/IMAGE[:TAG]&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;docker://ghcr.io#containerd/alpine:latest&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Image storage ==&lt;br /&gt;
&lt;br /&gt;
Unpacked container images are stored in &amp;lt;tt&amp;gt;~/.local/share/enroot/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Images are SquashFS files and can be several GB.&lt;br /&gt;
To avoid filling your home quota, store images in a [[NEMO2/Workspaces|workspace]] and symlink the default path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# create a workspace (100 days)&lt;br /&gt;
ws_allocate enroot 100&lt;br /&gt;
&lt;br /&gt;
# replace the default enroot directory with a symlink to the workspace&lt;br /&gt;
mkdir -p ~/.local/share&lt;br /&gt;
ln -s $(ws_find enroot) ~/.local/share/enroot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enroot (and Pyxis) will now transparently use the workspace path for all image storage.&lt;br /&gt;
&lt;br /&gt;
== Default mounts ==&lt;br /&gt;
&lt;br /&gt;
The following paths are &#039;&#039;&#039;automatically mounted&#039;&#039;&#039; into every container:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Host path !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; || all home directories, read-write&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;/work&amp;lt;/tt&amp;gt; || all workspace filesystems, read-write&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The paths inside the container are &#039;&#039;&#039;identical&#039;&#039;&#039; to the paths on the host system, so scripts referencing &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt; or workspace paths work without modification.&lt;br /&gt;
You do &#039;&#039;&#039;not&#039;&#039;&#039; need to pass &amp;lt;tt&amp;gt;--container-mount-home&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;--container-mounts=/work&amp;lt;/tt&amp;gt; manually.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;tt&amp;gt;ws_*&amp;lt;/tt&amp;gt; tools (e.g. &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt;) are &#039;&#039;&#039;not available inside the container&#039;&#039;&#039;.&lt;br /&gt;
Determine your workspace path on the login node before submitting the job and pass it as an environment variable or hard-code it in your script.&lt;br /&gt;
&lt;br /&gt;
== Interactive usage ==&lt;br /&gt;
&lt;br /&gt;
=== Import an image ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;enroot import&amp;lt;/tt&amp;gt; downloads an OCI image from a registry and converts it into a &#039;&#039;&#039;SquashFS archive&#039;&#039;&#039; (&amp;lt;tt&amp;gt;.sqsh&amp;lt;/tt&amp;gt;).&lt;br /&gt;
SquashFS is a compressed, read-only filesystem — the sqsh file is the portable, immutable snapshot of the container image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from Docker Hub&lt;br /&gt;
enroot import docker://ubuntu:24.04&lt;br /&gt;
&lt;br /&gt;
# from quay.io&lt;br /&gt;
enroot import docker://quay.io#rockylinux/rockylinux:9&lt;br /&gt;
&lt;br /&gt;
# from NVIDIA NGC&lt;br /&gt;
enroot import docker://nvcr.io#nvidia/pytorch:24.01-py3&lt;br /&gt;
&lt;br /&gt;
# from GitHub Container Registry&lt;br /&gt;
enroot import docker://ghcr.io#containerd/alpine:latest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a &amp;lt;tt&amp;gt;.sqsh&amp;lt;/tt&amp;gt; file in the current directory (e.g. &amp;lt;tt&amp;gt;ubuntu+24.04.sqsh&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Create a container ===&lt;br /&gt;
&lt;br /&gt;
Before you can run the image, you must &#039;&#039;&#039;unpack&#039;&#039;&#039; it into a container root filesystem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enroot create --name pyxis_ubuntu ubuntu+24.04.sqsh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This extracts the sqsh archive into &amp;lt;tt&amp;gt;~/.local/share/enroot/pyxis_ubuntu/&amp;lt;/tt&amp;gt; (or the symlinked workspace path).&lt;br /&gt;
The container name must be prefixed with &amp;lt;tt&amp;gt;pyxis_&amp;lt;/tt&amp;gt; so that &#039;&#039;&#039;Pyxis&#039;&#039;&#039; (the Slurm plugin) can find it later — when passing &amp;lt;tt&amp;gt;--container-name&amp;lt;/tt&amp;gt; to Slurm, omit the prefix.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Can I delete the &amp;lt;tt&amp;gt;.sqsh&amp;lt;/tt&amp;gt; file afterwards?&#039;&#039;&#039;&lt;br /&gt;
Yes. Once &amp;lt;tt&amp;gt;enroot create&amp;lt;/tt&amp;gt; has unpacked the image, the sqsh file is no longer needed for running the container.&lt;br /&gt;
Keep it as a backup to recreate the container later, or delete it to free space:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm ubuntu+24.04.sqsh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start a container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# interactive shell, read-write&lt;br /&gt;
enroot start --rw pyxis_ubuntu bash&lt;br /&gt;
&lt;br /&gt;
# get root inside the container (to install packages)&lt;br /&gt;
enroot start --root --rw pyxis_ubuntu bash&lt;br /&gt;
&lt;br /&gt;
# mount an extra directory&lt;br /&gt;
enroot start --rw -m /tmp/mydata:/data pyxis_ubuntu bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List and remove containers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enroot list --fancy&lt;br /&gt;
enroot remove pyxis_ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage via Slurm / Pyxis ==&lt;br /&gt;
&lt;br /&gt;
=== Interactive allocation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# use an already-created container&lt;br /&gt;
salloc -p cpu --container-name=ubuntu&lt;br /&gt;
&lt;br /&gt;
# pull, create and start in one step (container is created under ~/.local/share/enroot/)&lt;br /&gt;
salloc -p cpu --container-image=ubuntu:24.04 --container-name=ubuntu&lt;br /&gt;
salloc -p cpu --container-image=&amp;quot;quay.io#rockylinux/rockylinux:9&amp;quot; --container-name=rocky&lt;br /&gt;
salloc -p cpu --container-image=&amp;quot;ghcr.io#containerd/alpine:latest&amp;quot; --container-name=alpine&lt;br /&gt;
salloc -p l40s --gres=gpu:1 --container-image=&amp;quot;nvcr.io#nvidia/pytorch:24.01-py3&amp;quot; --container-name=pytorch&lt;br /&gt;
&lt;br /&gt;
# start with a specific working directory inside the container&lt;br /&gt;
# $(ws_find enroot) is evaluated on the login node before the job starts&lt;br /&gt;
salloc -p cpu --container-name=ubuntu --container-workdir=$(ws_find enroot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Batch job ===&lt;br /&gt;
&lt;br /&gt;
CPU job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -p cpu&lt;br /&gt;
#SBATCH --container-name=ubuntu&lt;br /&gt;
&lt;br /&gt;
python3 /work/classic/myWs/train.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPU job:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -p l40s&lt;br /&gt;
#SBATCH --gres=gpu:1&lt;br /&gt;
#SBATCH --container-name=pytorch&lt;br /&gt;
&lt;br /&gt;
python3 /work/classic/myWs/train.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Useful Pyxis options ===&lt;br /&gt;
&lt;br /&gt;
All options are listed in &amp;lt;tt&amp;gt;srun --help&amp;lt;/tt&amp;gt; under &#039;&#039;Options provided by plugins&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;--container-name=NAME&amp;lt;/tt&amp;gt; || Use existing enroot container (omit the &amp;lt;tt&amp;gt;pyxis_&amp;lt;/tt&amp;gt; prefix)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;--container-image=IMAGE&amp;lt;/tt&amp;gt; || Pull image from registry and create container on the fly&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;--container-mounts=SRC:DST[,…]&amp;lt;/tt&amp;gt; || Bind-mount additional paths&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;--container-writable&amp;lt;/tt&amp;gt; || Make the container overlay writable&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;--container-remap-root&amp;lt;/tt&amp;gt; || Become root inside the container (no real root on host)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;--container-workdir=PATH&amp;lt;/tt&amp;gt; || Set the working directory inside the container&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPU access ==&lt;br /&gt;
&lt;br /&gt;
GPU passthrough is &#039;&#039;&#039;automatic&#039;&#039;&#039; — no extra flags are needed.&lt;br /&gt;
Enroot/Pyxis detect the allocated GPUs via Slurm&#039;s GRES mechanism and make them available inside the container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
salloc -p l40s --gres=gpu:1 --container-name=pytorch&lt;br /&gt;
# nvidia-smi works inside the container out of the box&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* Install extra packages interactively with &amp;lt;tt&amp;gt;enroot start --root --rw&amp;lt;/tt&amp;gt; before submitting batch jobs.&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;--container-writable&amp;lt;/tt&amp;gt; in batch jobs only if your script modifies the container filesystem; otherwise the default overlay is discarded after the job anyway.&lt;br /&gt;
* Store large datasets in workspaces (&amp;lt;tt&amp;gt;/work&amp;lt;/tt&amp;gt;), not in &amp;lt;tt&amp;gt;$HOME&amp;lt;/tt&amp;gt;, to avoid filling your home quota with data files.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/SSH/SSH-FIDO2-Quick-Start&amp;diff=16110</id>
		<title>Registration/SSH/SSH-FIDO2-Quick-Start</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/SSH/SSH-FIDO2-Quick-Start&amp;diff=16110"/>
		<updated>2026-05-28T16:26:18Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SSH with FIDO2 Security Keys - Quick Start Guide =&lt;br /&gt;
&lt;br /&gt;
This guide shows you how to secure your SSH keys with FIDO2 security hardware keys (Yubikey, Feitian, Token2, etc.) using FIDO2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #28a745; padding: 15px; background-color: #d4edda; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Why FIDO2 SSH Keys?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FIDO2 SSH keys (&#039;&#039;&#039;ED25519-SK&#039;&#039;&#039; and &#039;&#039;&#039;ECDSA-SK&#039;&#039;&#039;) offer significant advantages:&lt;br /&gt;
* Valid for &#039;&#039;&#039;720 days&#039;&#039;&#039; - no frequent re-registration needed&lt;br /&gt;
* No pre-login required - no need to first unlock with password and TOTP&lt;br /&gt;
* Hardware-protected - private key never leaves the security key&lt;br /&gt;
* Physical presence required - you must touch the key to authenticate&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; margin-top:10px;&amp;quot;&lt;br /&gt;
|+ Cluster Support&lt;br /&gt;
|-&lt;br /&gt;
! Cluster !! FIDO2 Support&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0 || style=&amp;quot;background-color:#90EE90;&amp;quot; | ✓&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster BinAC 2 || style=&amp;quot;background-color:#FFB6C1;&amp;quot; | ✗&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix || style=&amp;quot;background-color:#FFB6C1;&amp;quot; | ✗&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster JUSTUS 2 || style=&amp;quot;background-color:#FFB6C1;&amp;quot; | ✗&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2 || style=&amp;quot;background-color:#90EE90;&amp;quot; | ✓&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
&lt;br /&gt;
* A FIDO2 security key, e.g.:&lt;br /&gt;
** [https://www.yubico.com/products/yubikey-5-overview/ Yubikey 5 series] or newer&lt;br /&gt;
** [https://www.ftsafe.com/Products/FIDO/Single_Button_FIDO Feitian ePass FIDO A4B] (~18 €, as of May 2026) — supports &amp;lt;code&amp;gt;ecdsa-sk&amp;lt;/code&amp;gt; only, use &amp;lt;code&amp;gt;ssh-keygen -t ecdsa-sk&amp;lt;/code&amp;gt;&lt;br /&gt;
** Token2 or any other FIDO2-certified key&lt;br /&gt;
* OpenSSH 8.2 or newer&lt;br /&gt;
* For PIN setup: Either Chrome/Chromium/Brave browser OR &amp;lt;code&amp;gt;yubikey-manager&amp;lt;/code&amp;gt; command-line tool (Yubikey only)&lt;br /&gt;
* For SSH key generation: &amp;lt;code&amp;gt;openssh-client&amp;lt;/code&amp;gt; package&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Check your OpenSSH version:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -V&lt;br /&gt;
ssh -Q PubkeyAcceptedAlgorithms | grep -E &#039;sk-ssh-ed25519|sk-ecdsa&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need help with installation?&#039;&#039;&#039; See the [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey#ssh-and-yubikeys detailed setup guide] for your operating system.&lt;br /&gt;
&lt;br /&gt;
= Quick Start Guide =&lt;br /&gt;
&lt;br /&gt;
== Step 1: Set up your FIDO2 Security Key ==&lt;br /&gt;
&lt;br /&gt;
What is a FIDO2 PIN? The PIN protects your security key&#039;s FIDO2 functions. For Yubikeys, it&#039;s separate from any other PINs (like the PIV PIN). Choose a PIN you can remember or save it to a keystore - you have 8 attempts before needing to reset.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you lose your FIDO2 PIN, the security key must be reset. &#039;&#039;&#039;All FIDO2 data will be lost,&#039;&#039;&#039; including SSH keys stored on the device. After reset, you must generate new SSH keys and re-register them.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option A: Command Line Setup (Yubikey only) ===&lt;br /&gt;
&lt;br /&gt;
For Yubikeys, set a PIN using the &amp;lt;code&amp;gt;yubikey-manager&amp;lt;/code&amp;gt; tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ykman fido access change-pin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll be asked to &#039;&#039;&#039;enter a new PIN&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forgot your PIN or need to reset?&#039;&#039;&#039; You can reset your FIDO2 PIN using &amp;lt;code&amp;gt;ykman fido reset&amp;lt;/code&amp;gt; or use the &amp;quot;Reset your security key&amp;quot; option shown in the browser security key settings (see image in Option B below).&lt;br /&gt;
&lt;br /&gt;
=== Option B: Browser Setup (Chrome/Chromium/Brave) ===&lt;br /&gt;
&lt;br /&gt;
You can also set a FIDO2 PIN using Chrome, Chromium, or Brave browser. &#039;&#039;&#039;This method works for all FIDO2 security hardware keys&#039;&#039;&#039; (Yubikey, Feitian, Token2, etc.), not just Yubikeys.&lt;br /&gt;
&#039;&#039;&#039;Alternative:&#039;&#039;&#039; For Yubikeys specifically, you can also use [https://www.yubico.com/products/yubico-authenticator/ Yubico Authenticator].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Open Security Key Settings:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enter the following in your browser&#039;s address bar:&lt;br /&gt;
&lt;br /&gt;
* Chrome/Chromium/Brave: &amp;lt;code&amp;gt;chrome://settings/securityKeys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome_Fido2_1.png|center|600px|thumb|Manage security keys - shows options for Create PIN, Sign-in data, Fingerprints, and Reset security key]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The &amp;quot;Reset your security key&amp;quot; option (shown with red warning icons in the image above) can be used if you forget your PIN. &#039;&#039;&#039;Warning: Reset will delete all FIDO2 data including SSH keys!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Create a PIN:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Create a PIN&#039;&#039;&#039; and follow the prompts:&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome_Fido2_2.png|center|400px|thumb|Create PIN dialog]]&lt;br /&gt;
[[File:Chrome_Fido2_3.png|center|400px|thumb|Enter new PIN]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. PIN Created Successfully:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Create an SSH Key ==&lt;br /&gt;
&lt;br /&gt;
This creates a non-discoverable FIDO2 SSH key. The private key material is wrapped/encrypted with a secret stored on your security key - the security key is required for every authentication, but the actual key credentials are stored on your computer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For keys stored directly on the security key (resident/discoverable keys), see the [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey#creating-discoverable-ssh-keys resident keys documentation].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your FIDO2 security key&#039;&#039;&#039; and create a new SSH key. Optional: Choose a descriptive filename like &amp;lt;code&amp;gt;id_ed25519_sk_bwunicluster&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;id_ed25519_sk_nemo2&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519-sk -f ~/.ssh/id_ed25519_sk_bwunicluster&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When prompted:&lt;br /&gt;
* &#039;&#039;&#039;Enter PIN:&#039;&#039;&#039; First, you&#039;ll be asked to enter your FIDO2 PIN (the one you set in Step 1)&lt;br /&gt;
* &#039;&#039;&#039;Passphrase:&#039;&#039;&#039; Press Enter to skip - the key is protected by requiring physical security key presence&lt;br /&gt;
* &#039;&#039;&#039;Touch your security key:&#039;&#039;&#039; The key will blink or light up - touch it to confirm&lt;br /&gt;
&lt;br /&gt;
Two files are created:&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.ssh/id_ed25519_sk_bwunicluster&amp;lt;/code&amp;gt; - key handle (encrypted credentials that require the security key)&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.ssh/id_ed25519_sk_bwunicluster.pub&amp;lt;/code&amp;gt; - public key (this is what you&#039;ll upload)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Want keys stored on the security key itself?&#039;&#039;&#039; See [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey#creating-discoverable-ssh-keys resident keys documentation] for discoverable keys that can be copied to any machine.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Register Your Public Key ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #17a2b8; padding: 15px; background-color: #d1ecf1; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;FIDO2 SSH Keys work immediately - no pre-login required!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unlike regular SSH keys, FIDO2 keys do not need to be unlocked by first logging in with password and TOTP.&lt;br /&gt;
They work as soon as you register them as &#039;&#039;&#039;Interactive Keys&#039;&#039;&#039; and are valid for &#039;&#039;&#039;720 days&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For bwUniCluster 3.0 and bwForCluster NEMO 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. View your public key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_ed25519_sk_bwunicluster.pub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Copy the complete output (starts with &amp;lt;code&amp;gt;sk-ssh-ed25519@openssh.com&amp;lt;/code&amp;gt; for ED25519-SK, or &amp;lt;code&amp;gt;sk-ecdsa-sha2-nistp256@openssh.com&amp;lt;/code&amp;gt; for ECDSA-SK)&lt;br /&gt;
&lt;br /&gt;
3. Follow the [[Registration/SSH#Adding_a_new_SSH_Key|SSH Key Registration Guide]] to:&lt;br /&gt;
* Add your public key in bwIDM/bwServices&lt;br /&gt;
* Register it as an &#039;&#039;&#039;Interactive Key&#039;&#039;&#039; for your cluster&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;That&#039;s it!&#039;&#039;&#039; You can connect immediately - no 2FA unlock needed.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect with Your Security Key ==&lt;br /&gt;
&lt;br /&gt;
After registering your key as an &#039;&#039;&#039;Interactive Key&#039;&#039;&#039; in bwIDM:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -i ~/.ssh/id_ed25519_sk_bwunicluster your_username@bwunicluster.scc.kit.edu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to expect:&#039;&#039;&#039;&lt;br /&gt;
1. Your security key will blink or light up&lt;br /&gt;
2. Touch it to authenticate&lt;br /&gt;
3. You&#039;re logged in - no password needed!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Add your key to &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; to avoid typing the &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt; option every time:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host bwuni bwunicluster.scc.kit.edu&lt;br /&gt;
  HostName bwunicluster.scc.kit.edu&lt;br /&gt;
  User fr_user1234&lt;br /&gt;
  IdentityFile ~/.ssh/id_ed25519_sk_bwunicluster&lt;br /&gt;
&lt;br /&gt;
Host nemo2 login.nemo.uni-freiburg.de&lt;br /&gt;
  HostName login.nemo.uni-freiburg.de&lt;br /&gt;
  User fr_user1234&lt;br /&gt;
  IdentityFile ~/.ssh/id_ed25519_sk_nemo2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then simply connect with: &amp;lt;code&amp;gt;ssh bwuni&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ssh nemo2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey#ssh-configuration-for-fido2-secured-ssh-keys SSH config examples] for more advanced configurations.&lt;br /&gt;
&lt;br /&gt;
= Advanced Topics =&lt;br /&gt;
&lt;br /&gt;
== Using Multiple Security Keys (Optional) ==&lt;br /&gt;
&lt;br /&gt;
Having backup security keys adds convenience - you can switch between devices without reconfiguring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you lose your security key, you can still access the cluster using regular SSH keys (with 2FA unlock) or password login with TOTP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Create a key on your first security key: &amp;lt;code&amp;gt;id_ed25519_sk_key1&amp;lt;/code&amp;gt;&lt;br /&gt;
2. Create another key on your second security key: &amp;lt;code&amp;gt;id_ed25519_sk_key2&amp;lt;/code&amp;gt;&lt;br /&gt;
3. Register &#039;&#039;&#039;both public keys&#039;&#039;&#039; in bwIDM as Interactive Keys&lt;br /&gt;
4. Configure &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; with multiple identities:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host bwunicluster.scc.kit.edu uc*.scc.kit.edu login*.nemo.uni-freiburg.de&lt;br /&gt;
  User fr_user1234&lt;br /&gt;
  IdentityFile ~/.ssh/id_ed25519_sk_key1&lt;br /&gt;
  IdentityFile ~/.ssh/id_ed25519_sk_key2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSH will automatically try each key until it finds one with a connected security key.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common Issues:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Key not working?&#039;&#039;&#039; &lt;br /&gt;
** Make sure your security key is plugged in&lt;br /&gt;
** Try unplugging and re-plugging the security key&lt;br /&gt;
** Check if the key is blinking or lit up (requires touch)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Command not found?&#039;&#039;&#039; &lt;br /&gt;
** Install &amp;lt;code&amp;gt;yubikey-manager&amp;lt;/code&amp;gt; (for Yubikey command-line setup only):&lt;br /&gt;
*** Debian/Ubuntu: &amp;lt;code&amp;gt;sudo apt install yubikey-manager&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Fedora/RHEL/Rocky/Alma: &amp;lt;code&amp;gt;sudo dnf install yubikey-manager&amp;lt;/code&amp;gt;&lt;br /&gt;
** Install &amp;lt;code&amp;gt;openssh-client&amp;lt;/code&amp;gt; if missing&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Old OpenSSH?&#039;&#039;&#039; &lt;br /&gt;
** Check version: &amp;lt;code&amp;gt;ssh -V&amp;lt;/code&amp;gt;&lt;br /&gt;
** Update to version 8.2 or newer&lt;br /&gt;
** On older systems, consider using a newer OpenSSH version or upgrade your OS&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;invalid format&amp;quot; or &amp;quot;unknown key type&amp;quot;?&#039;&#039;&#039;&lt;br /&gt;
** Your OpenSSH version is too old (needs 8.2+)&lt;br /&gt;
** The cluster doesn&#039;t support FIDO2 keys (only bwUniCluster 3.0 and NEMO 2)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PIN locked after too many attempts?&#039;&#039;&#039;&lt;br /&gt;
** Reset FIDO2 PIN: See [[#Step_1:_Set_up_your_FIDO2_Security_Key|Step 1]]&lt;br /&gt;
&lt;br /&gt;
= Learn More =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cluster-Specific Documentation:&#039;&#039;&#039;&lt;br /&gt;
* [[Registration/SSH|Complete SSH Key Registration Guide for bwUniCluster/bwForCluster]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yubikey &amp;amp; FIDO2 SSH Documentation:&#039;&#039;&#039;&lt;br /&gt;
* [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey Comprehensive Yubikey Guide] - Setup, configuration, troubleshooting&lt;br /&gt;
** [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey#creating-discoverable-ssh-keys Resident Keys] - Store keys directly on Yubikey&lt;br /&gt;
** [https://gitlab.rz.uni-freiburg.de/escience-public/yubikey#ssh-configuration-for-fido2-secured-ssh-keys SSH Config Examples] - Automate your SSH connections&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Official Yubico Documentation:&#039;&#039;&#039;&lt;br /&gt;
* [https://developers.yubico.com/SSH/Securing_SSH_with_FIDO2.html Securing SSH with FIDO2] - Technical deep dive&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Registration/SSH&amp;diff=16109</id>
		<title>Registration/SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Registration/SSH&amp;diff=16109"/>
		<updated>2026-05-28T16:12:33Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SSH Key Authentication for HPC Clusters =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SSH Keys&#039;&#039;&#039; allow you to log into a system without entering a password. Instead of proving your identity with something you know (a password), you prove it with something you have (a cryptographic key).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ SSH Key Management Methods by Cluster&lt;br /&gt;
|-&lt;br /&gt;
! Cluster&lt;br /&gt;
! Management Method&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | bwIDM Portal&lt;br /&gt;
| Centralized key management, 180-day validity (720-day for FIDO2 SK keys)&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster BinAC 2&lt;br /&gt;
| style=&amp;quot;background-color:#FFE4B5;&amp;quot; | ~/.ssh/authorized_keys&lt;br /&gt;
| Self-managed, use ssh-copy-id&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | bwServices Portal&lt;br /&gt;
| Centralized key management, 180-day validity&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster JUSTUS 2&lt;br /&gt;
| style=&amp;quot;background-color:#FFE4B5;&amp;quot; | ~/.ssh/authorized_keys&lt;br /&gt;
| Self-managed, use ssh-copy-id&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | bwIDM Portal&lt;br /&gt;
| Centralized key management, 180-day validity (720-day for FIDO2 SK keys)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Choose your cluster below:&#039;&#039;&#039;&lt;br /&gt;
* [[#SSH_Keys_on_BinAC_2_and_JUSTUS_2|BinAC 2 and JUSTUS 2]] - Self-managed keys&lt;br /&gt;
* [[#SSH_Keys_via_bwIDM.2FbwServices|bwUniCluster 3.0, Helix, and NEMO2]] - Centralized management&lt;br /&gt;
&lt;br /&gt;
= SSH Keys on BinAC 2 and JUSTUS 2 =&lt;br /&gt;
&lt;br /&gt;
On &#039;&#039;&#039;bwForCluster BinAC 2&#039;&#039;&#039; and &#039;&#039;&#039;bwForCluster JUSTUS 2&#039;&#039;&#039;, you manage SSH keys yourself using the standard &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
== Quick Setup with ssh-copy-id ==&lt;br /&gt;
&lt;br /&gt;
The easiest method to add your SSH key:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1: Generate an SSH key&#039;&#039;&#039; (if you don&#039;t have one):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519 -C &amp;quot;your_email@example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press Enter to accept the default location, then set a strong passphrase.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2: Copy your key to the cluster:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# For BinAC2:&lt;br /&gt;
ssh-copy-id username@login.binac2.uni-tuebingen.de&lt;br /&gt;
&lt;br /&gt;
# For JUSTUS2:&lt;br /&gt;
ssh-copy-id username@justus2.uni-ulm.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter your service password and OTP when prompted. Your public key will be automatically added to &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3: Test your connection:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# For BinAC2:&lt;br /&gt;
ssh username@login.binac2.uni-tuebingen.de&lt;br /&gt;
&lt;br /&gt;
# For JUSTUS2:&lt;br /&gt;
ssh username@justus2.uni-ulm.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to log in using your SSH key and OTP.&lt;br /&gt;
&lt;br /&gt;
== Manual Setup (Alternative) ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;ssh-copy-id&amp;lt;/code&amp;gt; is not available on your system:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1: Display your public key:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_ed25519.pub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the entire output.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2: Log into the cluster&#039;&#039;&#039; using your service password and OTP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3: Add the key to authorized_keys:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/.ssh&lt;br /&gt;
chmod 700 ~/.ssh&lt;br /&gt;
echo &amp;quot;paste-your-public-key-here&amp;quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
chmod 600 ~/.ssh/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;paste-your-public-key-here&amp;lt;/code&amp;gt; with your actual public key.&lt;br /&gt;
&lt;br /&gt;
= SSH Keys via bwIDM/bwServices =&lt;br /&gt;
&lt;br /&gt;
On &#039;&#039;&#039;bwUniCluster 3.0&#039;&#039;&#039;, &#039;&#039;&#039;bwForCluster Helix&#039;&#039;&#039;, and &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039;, SSH keys are managed centrally through the registration service.&lt;br /&gt;
&lt;br /&gt;
== Why Centralized Management? ==&lt;br /&gt;
&lt;br /&gt;
Centralized SSH key management provides:&lt;br /&gt;
&lt;br /&gt;
* Security enforcement: Keys must use strong algorithms; regular keys have 180-day validity, FIDO2 SK keys have 720-day validity&lt;br /&gt;
* Centralized control: Review and revoke all keys from one location&lt;br /&gt;
* Two key types: Interactive keys (manual logins) and Command keys (automated workflows)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Self-managed &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; files are ignored on these clusters.&lt;br /&gt;
&lt;br /&gt;
== Supported Key Types ==&lt;br /&gt;
&lt;br /&gt;
=== Standard SSH Keys ===&lt;br /&gt;
&lt;br /&gt;
* ED25519: 256 bits (recommended)&lt;br /&gt;
* RSA: 2048 bits or more&lt;br /&gt;
* ECDSA: 521 bits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Always protect your private keys with a strong passphrase.&lt;br /&gt;
&lt;br /&gt;
=== FIDO2 Hardware Keys ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ED25519-SK&#039;&#039;&#039; and &#039;&#039;&#039;ECDSA-SK&#039;&#039;&#039; keys use hardware security keys (like Yubikey or Feitian ePass FIDO A4B) for authentication:&lt;br /&gt;
&lt;br /&gt;
* Valid for &#039;&#039;&#039;720 days&#039;&#039;&#039; - no frequent re-registration needed&lt;br /&gt;
* No pre-login required - no need to first unlock with password and TOTP&lt;br /&gt;
* Hardware-protected - private key never leaves the device&lt;br /&gt;
* Physical presence required - must touch key to authenticate&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ FIDO2 Key Support by Cluster&lt;br /&gt;
|-&lt;br /&gt;
! Cluster&lt;br /&gt;
! SK Support (ED25519-SK / ECDSA-SK)&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | ✓ Supported&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix&lt;br /&gt;
| style=&amp;quot;background-color:#FFB6C1;&amp;quot; | ✗ Not supported&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2&lt;br /&gt;
| style=&amp;quot;background-color:#90EE90;&amp;quot; | ✓ Supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get started:&#039;&#039;&#039; See [[Registration/SSH/SSH-FIDO2-Quick-Start|SSH with FIDO2 - Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
== Step 1: Add Your SSH Key to the Portal ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; background-color: #fff3cd; margin: 10px 0px 10px 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;padding-left: 5px; margin: 0px;&amp;quot;&amp;gt;&#039;&#039;&#039;Important:&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
* Regular SSH keys are valid for &#039;&#039;&#039;180 days&#039;&#039;&#039; and automatically revoked after expiration. FIDO2 hardware keys (SK) are valid for &#039;&#039;&#039;720 days&#039;&#039;&#039;.&lt;br /&gt;
* Upload only your &#039;&#039;&#039;public key&#039;&#039;&#039; file (ending in &amp;lt;code&amp;gt;.pub&amp;lt;/code&amp;gt;, e.g., &amp;lt;code&amp;gt;~/.ssh/id_ed25519.pub&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Generate an SSH key&#039;&#039;&#039; (if you don&#039;t have one):&lt;br /&gt;
* Run in your local terminal: &amp;lt;pre&amp;gt; ssh-keygen -t ed25519 -C &amp;quot;your_email@example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Press Enter to accept the default location, then set a strong passphrase.&lt;br /&gt;
* You now have a private key (~/.ssh/id_ed25519) and a public key (~/.ssh/id_ed25519.pub).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Navigate to SSH key management:&#039;&#039;&#039;&lt;br /&gt;
* [https://login.bwidm.de/user/ssh-keys.xhtml bwUniCluster 3.0 / NEMO 2] (bwIDM)&lt;br /&gt;
* [https://bwservices.uni-heidelberg.de/user/ssh-keys.xhtml bwForCluster Helix] (bwServices)&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-twofa.png|center|600px|thumb|My SSH Pubkeys page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Click &amp;quot;Add SSH Key&amp;quot; / &amp;quot;SSH Key Hochladen&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Bwunicluster 2.0 access ssh keys empty.png|center|400px|thumb|Add SSH Key button]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Enter key details:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Name:&#039;&#039;&#039; Descriptive identifier (e.g., &amp;quot;laptop-work&amp;quot;, &amp;quot;desktop-home&amp;quot;)&lt;br /&gt;
* &#039;&#039;&#039;SSH Key:&#039;&#039;&#039; Paste complete contents of your &amp;lt;code&amp;gt;.pub&amp;lt;/code&amp;gt; file&lt;br /&gt;
* Click &#039;&#039;&#039;Add&#039;&#039;&#039; / &#039;&#039;&#039;Hinzufügen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-key.png|center|400px|thumb|Add SSH key dialog]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Your key appears in the list:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-success.png|center|600px|thumb|SSH key successfully added]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Bind your key to a cluster&#039;&#039;&#039; as either an [[#Step_2A:_Register_Interactive_Key|Interactive Key]] or [[#Step_2B:_Register_Command_Key|Command Key]].&lt;br /&gt;
&lt;br /&gt;
== Step 2A: Register Interactive Key ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interactive Keys&#039;&#039;&#039; are for manual SSH logins.&lt;br /&gt;
&lt;br /&gt;
=== Understanding Key Validity ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regular SSH Keys&#039;&#039;&#039; (RSA, ECDSA, ED25519):&lt;br /&gt;
* Require 2-factor authentication unlock&lt;br /&gt;
* Valid for limited hours after entering OTP + service password&lt;br /&gt;
* Must re-authenticate when validity expires&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ Validity Periods for Regular SSH Keys&lt;br /&gt;
|-&lt;br /&gt;
! Cluster&lt;br /&gt;
! Valid Duration&lt;br /&gt;
|-&lt;br /&gt;
| bwUniCluster 3.0&lt;br /&gt;
| 8 hours&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster Helix&lt;br /&gt;
| 12 hours&lt;br /&gt;
|-&lt;br /&gt;
| bwForCluster NEMO 2&lt;br /&gt;
| 12 hours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FIDO2 Hardware Keys&#039;&#039;&#039; (ED25519-SK, ECDSA-SK):&lt;br /&gt;
* Valid for &#039;&#039;&#039;720 days&#039;&#039;&#039; - no re-authentication needed&lt;br /&gt;
* No pre-login required - no password/TOTP unlock needed&lt;br /&gt;
* Authentication via physical key touch only&lt;br /&gt;
* Only on bwUniCluster 3.0 and NEMO 2 (not Helix)&lt;br /&gt;
* See [[Registration/SSH/SSH-FIDO2-Quick-Start|SSH with FIDO2 - Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
=== Registration Steps ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Add your public key&#039;&#039;&#039; following [[#Step_1:_Add_Your_SSH_Key_to_the_Portal|Step 1]] above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Navigate to &amp;quot;Registered Services&amp;quot; / &amp;quot;Registrierte Dienste&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Set SSH Key&#039;&#039;&#039; / &#039;&#039;&#039;SSH Key setzen&#039;&#039;&#039; for your cluster&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-registered.png|center|600px|thumb|Select cluster]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Find your key and click &amp;quot;Add&amp;quot; / &amp;quot;Hinzufügen&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service-int.png|center|800px|thumb|Add SSH key to service]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Select &amp;quot;Interactive&amp;quot; and confirm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Usage type: &#039;&#039;&#039;Interactive&#039;&#039;&#039;&lt;br /&gt;
* Comment: Optional description&lt;br /&gt;
* Click &#039;&#039;&#039;Add&#039;&#039;&#039; / &#039;&#039;&#039;Hinzufügen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-int.png|center|600px|thumb|Set as Interactive key]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Done!&#039;&#039;&#039; Your key is active for interactive logins&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service.png|center|800px|thumb|SSH key registered]]&lt;br /&gt;
&lt;br /&gt;
== Step 2B: Register Command Key ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Command Keys&#039;&#039;&#039; enable automated workflows (e.g., backups, data transfers) without manual login.&lt;br /&gt;
&lt;br /&gt;
=== Security Requirements ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
Command keys are &#039;&#039;&#039;always valid&#039;&#039;&#039; (no 2FA required), making them security-sensitive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mandatory restrictions:&#039;&#039;&#039;&lt;br /&gt;
* Single command: Specify exact command with full path&lt;br /&gt;
* IP restriction: Limit to specific IP address(es) or subnet&lt;br /&gt;
* Admin approval: Keys require review before activation&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common use case:&#039;&#039;&#039; [[Registration/SSH/rrsync|rrsync for data transfers]]&lt;br /&gt;
&lt;br /&gt;
=== Registration Steps ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Add your public key&#039;&#039;&#039; following [[#Step_1:_Add_Your_SSH_Key_to_the_Portal|Step 1]] above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Navigate to &amp;quot;Registered Services&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;Set SSH Key&#039;&#039;&#039; for your cluster&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-registered.png|center|600px|thumb|Select cluster]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Find your key and click &amp;quot;Add&amp;quot; / &amp;quot;Hinzufügen&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service-com.png|center|800px|thumb|Add SSH key to service]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Configure command restrictions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Usage type:&#039;&#039;&#039; Select &#039;&#039;&#039;Command&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Command:&#039;&#039;&#039; Full path with parameters (see example below)&lt;br /&gt;
* &#039;&#039;&#039;From:&#039;&#039;&#039; IP address or CIDR notation (e.g., &amp;lt;code&amp;gt;192.168.1.0/24&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Comment:&#039;&#039;&#039; Explain purpose (speeds up approval)&lt;br /&gt;
* Click &#039;&#039;&#039;Add&#039;&#039;&#039; / &#039;&#039;&#039;Hinzufügen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Example: rrsync for data transfer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;/usr/local/bin/rrsync -ro /home/aa/aa_bb/aa_abc1/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Verify exact path on your cluster (may be &amp;lt;code&amp;gt;/usr/bin/rrsync&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-com.png|center|600px|thumb|Configure command key]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Wait for approval&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-service.png|center|800px|thumb|Key pending approval]]&lt;br /&gt;
&lt;br /&gt;
== Revoking SSH Keys ==&lt;br /&gt;
&lt;br /&gt;
Revoke keys that are no longer needed or potentially compromised.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #6c757d; padding: 15px; background-color: #e2e3e5; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Revoked keys are immediately disabled and cannot be reused.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Navigate to SSH key management:&#039;&#039;&#039;&lt;br /&gt;
* [https://login.bwidm.de/user/ssh-keys.xhtml bwUniCluster 3.0 / NEMO 2] (bwIDM)&lt;br /&gt;
* [https://bwservices.uni-heidelberg.de/user/ssh-keys.xhtml bwForCluster Helix] (bwServices)&lt;br /&gt;
&lt;br /&gt;
[[File:BwIDM-twofa.png|center|600px|thumb|My SSH Pubkeys page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Click &amp;quot;REVOKE&amp;quot; / &amp;quot;ZURÜCKZIEHEN&amp;quot;&#039;&#039;&#039; next to the key you want to disable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Click &#039;&#039;&#039;REVOKE&#039;&#039;&#039; / &#039;&#039;&#039;ZURÜCKZIEHEN&#039;&#039;&#039; next to the key you want to disable&lt;br /&gt;
&lt;br /&gt;
[[File:Ssh-success.png|center|800px|thumb|Revoke SSH key]]&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16103</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16103"/>
		<updated>2026-05-22T18:12:46Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | NEMO1 Migration&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Still using NEMO1: &#039;&#039;&#039;[[NEMO1|Go To NEMO1 Legacy Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ NEMO Status, Usage and (Maintenance) Announcements]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16102</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16102"/>
		<updated>2026-05-22T18:11:55Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:140%;&amp;gt;&#039;&#039;&#039;Welcome to the bwHPC Wiki.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bwHPC represents services and resources in the State of &#039;&#039;&#039;B&#039;&#039;&#039;aden-&#039;&#039;&#039;W&#039;&#039;&#039;ürttemberg, Germany, for High Performance Computing (&#039;&#039;&#039;HPC&#039;&#039;&#039;), Data Intensive Computing (&#039;&#039;&#039;DIC&#039;&#039;&#039;) and Large Scale Scientific Data Management (&#039;&#039;&#039;LS2DM&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The main bwHPC web page is at &#039;&#039;&#039;[https://www.bwhpc.de/ https://www.bwhpc.de/]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Many topics depend on the cluster system you use. &lt;br /&gt;
First choose the cluster you use,  then select the correct topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS START --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}--&amp;gt;&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Ok}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS END --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot; background:#eeeefe; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Courses / eLearning&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://training.bwhpc.de/ eLearning and Online Courses]&lt;br /&gt;
* [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC (external resource)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Need Access to a Cluster?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[When to use an HPC Cluster]]&lt;br /&gt;
* [[Running Calculations]]&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  HPC System Specific Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
bwHPC encompasses several HPC compute clusters at different universities in Baden-Württemberg. Each cluster is dedicated to [https://www.bwhpc.de/bwhpc-domains.php specific research domains]. &lt;br /&gt;
 &lt;br /&gt;
Documentation differs between compute clusters, please see cluster specific overview pages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BwUniCluster3.0|bwUniCluster 3.0]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | General Purpose, Teaching&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BinAC2|bwForCluster BinAC 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Bioinformatics, Astrophysics, Geosciences, Pharmacy, and Medical Informatics&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot; | [[Helix|bwForCluster Helix]]&lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  |   Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[:JUSTUS2| bwForCluster JUSTUS 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Theoretical Chemistry, Condensed Matter Physics, and Quantum Sciences&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[NEMO2|bwForCluster NEMO 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Neurosciences, Particle Physics, Materials Science, and Microsystems Engineering&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|bwHPC Clusters: [https://www.bwhpc.de/cluster.php operational status] &lt;br /&gt;
Further Compute Clusters in Baden-Württemberg (separate access policies):&lt;br /&gt;
* [[DACHS | Datenanalyse Cluster der Hochschulen (DACHS)]]&lt;br /&gt;
* bwHPC tier 1: [https://kb.hlrs.de/platforms/index.php/Hunter_(HPE) Hunter] ([https://www.hlrs.de/apply-for-computing-time getting access])&lt;br /&gt;
* bwHPC tier 2: [https://www.nhr.kit.edu/userdocs/horeka HoreKa] ([https://www.nhr.kit.edu/userdocs/horeka/projects/ getting access])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Documentation valid for all Clusters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Environment Modules| Software Environment Modules]]: usage of preexisting software&lt;br /&gt;
* [https://www.bwhpc.de/software.html List of Software] on all clusters&lt;br /&gt;
* [[Data Transfer|Data Transfer]]: working with files [[File:Notebook.svg|x15px]] &amp;lt;---&amp;gt; [[File:Clusternodes.svg|x15px]]&lt;br /&gt;
* [[Development| Development]]: software, programming languages, parallel pogramming&lt;br /&gt;
* [[Energy Efficient Cluster Usage | (Energy) Efficient Cluster Usage]] for low waiting times and fast running jobs&lt;br /&gt;
* [[HPC Glossary]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Storage&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
User guides of available scientific data storage services:&lt;br /&gt;
* [[SDS@hd]]: Everyone can join existing storage projects, entitlement needed for creating your own, [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_costs.php cost sheet]&lt;br /&gt;
* [https://uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/projekte/laufende-projekte/bwsfs bwSFS]&lt;br /&gt;
Associated, but local scientific storage services are:&lt;br /&gt;
* [https://wiki.scc.kit.edu/lsdf/index.php/Category:LSDF_Online_Storage LSDF Online Storage] (only for KIT and KIT partners)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Archiving&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data archiving services:&lt;br /&gt;
* [https://www.rda.kit.edu/english bwDataArchive]: Open to all scientists at KIT and institutions in Baden-Württemberg that have signed a service agreement with KIT&lt;br /&gt;
Associated, but local archiving services for scientific data are:&lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/de/service-katalog/speicher/heiarchive heiARCHIVE] (only for members of Heidelberg University)&lt;br /&gt;
For instructions on how to move the data, depending on the offered connections, can be found under [[Data Transfer | Data Transfer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Research Data Management&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://www.forschungsdaten.org/index.php/FDM-Kontakte#Deutschland Research Data Management (RDM)] contact persons&lt;br /&gt;
* [https://www.forschungsdaten.info Portal for Research Data Management] (Forschungsdaten.info)&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[BwSupportPortal|Submit a Ticket in our Support Portal]]&lt;br /&gt;
Support is provided by the [https://www.bwhpc.de/teams.php bwHPC Competence Centers]:&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Please [[Acknowledgement|acknowledge]] our resources in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16101</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16101"/>
		<updated>2026-05-22T18:11:27Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16100</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16100"/>
		<updated>2026-05-21T18:50:13Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16099</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16099"/>
		<updated>2026-05-21T18:49:55Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | NEMO1 Migration&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Still using NEMO1: &#039;&#039;&#039;[[NEMO1|Go To NEMO1 Legacy Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ NEMO Status, Usage and (Maintenance) Announcements]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16098</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16098"/>
		<updated>2026-05-21T17:04:50Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage. Compute nodes and storage are completely inaccessible and cannot be started at this time. Comprehensive file system checks are scheduled for tomorrow.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available. Apologies for the disruption.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | NEMO1 Migration&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Still using NEMO1: &#039;&#039;&#039;[[NEMO1|Go To NEMO1 Legacy Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ NEMO Status, Usage and (Maintenance) Announcements]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16097</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16097"/>
		<updated>2026-05-21T17:04:09Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage. Compute nodes and storage are completely inaccessible and cannot be started at this time. Comprehensive file system checks are scheduled for tomorrow.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available. Apologies for the disruption.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16096</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16096"/>
		<updated>2026-05-21T17:02:40Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:140%;&amp;gt;&#039;&#039;&#039;Welcome to the bwHPC Wiki.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bwHPC represents services and resources in the State of &#039;&#039;&#039;B&#039;&#039;&#039;aden-&#039;&#039;&#039;W&#039;&#039;&#039;ürttemberg, Germany, for High Performance Computing (&#039;&#039;&#039;HPC&#039;&#039;&#039;), Data Intensive Computing (&#039;&#039;&#039;DIC&#039;&#039;&#039;) and Large Scale Scientific Data Management (&#039;&#039;&#039;LS2DM&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The main bwHPC web page is at &#039;&#039;&#039;[https://www.bwhpc.de/ https://www.bwhpc.de/]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Many topics depend on the cluster system you use. &lt;br /&gt;
First choose the cluster you use,  then select the correct topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS START --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Ok}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
[[Status|&#039;&#039;&#039;[Status: Major Outage] bwForCluster NEMO 2&#039;&#039;&#039;]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS END --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot; background:#eeeefe; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Courses / eLearning&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://training.bwhpc.de/ eLearning and Online Courses]&lt;br /&gt;
* [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC (external resource)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Need Access to a Cluster?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[When to use an HPC Cluster]]&lt;br /&gt;
* [[Running Calculations]]&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  HPC System Specific Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
bwHPC encompasses several HPC compute clusters at different universities in Baden-Württemberg. Each cluster is dedicated to [https://www.bwhpc.de/bwhpc-domains.php specific research domains]. &lt;br /&gt;
 &lt;br /&gt;
Documentation differs between compute clusters, please see cluster specific overview pages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BwUniCluster3.0|bwUniCluster 3.0]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | General Purpose, Teaching&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BinAC2|bwForCluster BinAC 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Bioinformatics, Astrophysics, Geosciences, Pharmacy, and Medical Informatics&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot; | [[Helix|bwForCluster Helix]]&lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  |   Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[:JUSTUS2| bwForCluster JUSTUS 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Theoretical Chemistry, Condensed Matter Physics, and Quantum Sciences&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[NEMO2|bwForCluster NEMO 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Neurosciences, Particle Physics, Materials Science, and Microsystems Engineering&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|bwHPC Clusters: [https://www.bwhpc.de/cluster.php operational status] &lt;br /&gt;
Further Compute Clusters in Baden-Württemberg (separate access policies):&lt;br /&gt;
* [[DACHS | Datenanalyse Cluster der Hochschulen (DACHS)]]&lt;br /&gt;
* bwHPC tier 1: [https://kb.hlrs.de/platforms/index.php/Hunter_(HPE) Hunter] ([https://www.hlrs.de/apply-for-computing-time getting access])&lt;br /&gt;
* bwHPC tier 2: [https://www.nhr.kit.edu/userdocs/horeka HoreKa] ([https://www.nhr.kit.edu/userdocs/horeka/projects/ getting access])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Documentation valid for all Clusters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Environment Modules| Software Environment Modules]]: usage of preexisting software&lt;br /&gt;
* [https://www.bwhpc.de/software.html List of Software] on all clusters&lt;br /&gt;
* [[Data Transfer|Data Transfer]]: working with files [[File:Notebook.svg|x15px]] &amp;lt;---&amp;gt; [[File:Clusternodes.svg|x15px]]&lt;br /&gt;
* [[Development| Development]]: software, programming languages, parallel pogramming&lt;br /&gt;
* [[Energy Efficient Cluster Usage | (Energy) Efficient Cluster Usage]] for low waiting times and fast running jobs&lt;br /&gt;
* [[HPC Glossary]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Storage&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
User guides of available scientific data storage services:&lt;br /&gt;
* [[SDS@hd]]: Everyone can join existing storage projects, entitlement needed for creating your own, [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_costs.php cost sheet]&lt;br /&gt;
* [https://uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/projekte/laufende-projekte/bwsfs bwSFS]&lt;br /&gt;
Associated, but local scientific storage services are:&lt;br /&gt;
* [https://wiki.scc.kit.edu/lsdf/index.php/Category:LSDF_Online_Storage LSDF Online Storage] (only for KIT and KIT partners)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Archiving&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data archiving services:&lt;br /&gt;
* [https://www.rda.kit.edu/english bwDataArchive]: Open to all scientists at KIT and institutions in Baden-Württemberg that have signed a service agreement with KIT&lt;br /&gt;
Associated, but local archiving services for scientific data are:&lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/de/service-katalog/speicher/heiarchive heiARCHIVE] (only for members of Heidelberg University)&lt;br /&gt;
For instructions on how to move the data, depending on the offered connections, can be found under [[Data Transfer | Data Transfer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Research Data Management&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://www.forschungsdaten.org/index.php/FDM-Kontakte#Deutschland Research Data Management (RDM)] contact persons&lt;br /&gt;
* [https://www.forschungsdaten.info Portal for Research Data Management] (Forschungsdaten.info)&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[BwSupportPortal|Submit a Ticket in our Support Portal]]&lt;br /&gt;
Support is provided by the [https://www.bwhpc.de/teams.php bwHPC Competence Centers]:&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Please [[Acknowledgement|acknowledge]] our resources in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16095</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16095"/>
		<updated>2026-05-21T17:00:34Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:140%;&amp;gt;&#039;&#039;&#039;Welcome to the bwHPC Wiki.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bwHPC represents services and resources in the State of &#039;&#039;&#039;B&#039;&#039;&#039;aden-&#039;&#039;&#039;W&#039;&#039;&#039;ürttemberg, Germany, for High Performance Computing (&#039;&#039;&#039;HPC&#039;&#039;&#039;), Data Intensive Computing (&#039;&#039;&#039;DIC&#039;&#039;&#039;) and Large Scale Scientific Data Management (&#039;&#039;&#039;LS2DM&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The main bwHPC web page is at &#039;&#039;&#039;[https://www.bwhpc.de/ https://www.bwhpc.de/]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Many topics depend on the cluster system you use. &lt;br /&gt;
First choose the cluster you use,  then select the correct topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS START --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Ok}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|alert|&#039;&#039;&#039;Status: Major Outage bwForCluster NEMO 2}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS END --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot; background:#eeeefe; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Courses / eLearning&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://training.bwhpc.de/ eLearning and Online Courses]&lt;br /&gt;
* [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC (external resource)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Need Access to a Cluster?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[When to use an HPC Cluster]]&lt;br /&gt;
* [[Running Calculations]]&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  HPC System Specific Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
bwHPC encompasses several HPC compute clusters at different universities in Baden-Württemberg. Each cluster is dedicated to [https://www.bwhpc.de/bwhpc-domains.php specific research domains]. &lt;br /&gt;
 &lt;br /&gt;
Documentation differs between compute clusters, please see cluster specific overview pages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BwUniCluster3.0|bwUniCluster 3.0]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | General Purpose, Teaching&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BinAC2|bwForCluster BinAC 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Bioinformatics, Astrophysics, Geosciences, Pharmacy, and Medical Informatics&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot; | [[Helix|bwForCluster Helix]]&lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  |   Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[:JUSTUS2| bwForCluster JUSTUS 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Theoretical Chemistry, Condensed Matter Physics, and Quantum Sciences&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[NEMO2|bwForCluster NEMO 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Neurosciences, Particle Physics, Materials Science, and Microsystems Engineering&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|bwHPC Clusters: [https://www.bwhpc.de/cluster.php operational status] &lt;br /&gt;
Further Compute Clusters in Baden-Württemberg (separate access policies):&lt;br /&gt;
* [[DACHS | Datenanalyse Cluster der Hochschulen (DACHS)]]&lt;br /&gt;
* bwHPC tier 1: [https://kb.hlrs.de/platforms/index.php/Hunter_(HPE) Hunter] ([https://www.hlrs.de/apply-for-computing-time getting access])&lt;br /&gt;
* bwHPC tier 2: [https://www.nhr.kit.edu/userdocs/horeka HoreKa] ([https://www.nhr.kit.edu/userdocs/horeka/projects/ getting access])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Documentation valid for all Clusters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Environment Modules| Software Environment Modules]]: usage of preexisting software&lt;br /&gt;
* [https://www.bwhpc.de/software.html List of Software] on all clusters&lt;br /&gt;
* [[Data Transfer|Data Transfer]]: working with files [[File:Notebook.svg|x15px]] &amp;lt;---&amp;gt; [[File:Clusternodes.svg|x15px]]&lt;br /&gt;
* [[Development| Development]]: software, programming languages, parallel pogramming&lt;br /&gt;
* [[Energy Efficient Cluster Usage | (Energy) Efficient Cluster Usage]] for low waiting times and fast running jobs&lt;br /&gt;
* [[HPC Glossary]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Storage&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
User guides of available scientific data storage services:&lt;br /&gt;
* [[SDS@hd]]: Everyone can join existing storage projects, entitlement needed for creating your own, [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_costs.php cost sheet]&lt;br /&gt;
* [https://uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/projekte/laufende-projekte/bwsfs bwSFS]&lt;br /&gt;
Associated, but local scientific storage services are:&lt;br /&gt;
* [https://wiki.scc.kit.edu/lsdf/index.php/Category:LSDF_Online_Storage LSDF Online Storage] (only for KIT and KIT partners)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Archiving&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data archiving services:&lt;br /&gt;
* [https://www.rda.kit.edu/english bwDataArchive]: Open to all scientists at KIT and institutions in Baden-Württemberg that have signed a service agreement with KIT&lt;br /&gt;
Associated, but local archiving services for scientific data are:&lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/de/service-katalog/speicher/heiarchive heiARCHIVE] (only for members of Heidelberg University)&lt;br /&gt;
For instructions on how to move the data, depending on the offered connections, can be found under [[Data Transfer | Data Transfer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Research Data Management&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://www.forschungsdaten.org/index.php/FDM-Kontakte#Deutschland Research Data Management (RDM)] contact persons&lt;br /&gt;
* [https://www.forschungsdaten.info Portal for Research Data Management] (Forschungsdaten.info)&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[BwSupportPortal|Submit a Ticket in our Support Portal]]&lt;br /&gt;
Support is provided by the [https://www.bwhpc.de/teams.php bwHPC Competence Centers]:&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Please [[Acknowledgement|acknowledge]] our resources in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16094</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Main_Page&amp;diff=16094"/>
		<updated>2026-05-21T17:00:01Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:140%;&amp;gt;&#039;&#039;&#039;Welcome to the bwHPC Wiki.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bwHPC represents services and resources in the State of &#039;&#039;&#039;B&#039;&#039;&#039;aden-&#039;&#039;&#039;W&#039;&#039;&#039;ürttemberg, Germany, for High Performance Computing (&#039;&#039;&#039;HPC&#039;&#039;&#039;), Data Intensive Computing (&#039;&#039;&#039;DIC&#039;&#039;&#039;) and Large Scale Scientific Data Management (&#039;&#039;&#039;LS2DM&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The main bwHPC web page is at &#039;&#039;&#039;[https://www.bwhpc.de/ https://www.bwhpc.de/]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Many topics depend on the cluster system you use. &lt;br /&gt;
First choose the cluster you use,  then select the correct topic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS START --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Ok}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|alert|[Status: Major Outage] bwForCluster NEMO 2}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- bwHPC STATUS END --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot; background:#eeeefe; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold; text-align:left&amp;quot; | Courses / eLearning&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://training.bwhpc.de/ eLearning and Online Courses]&lt;br /&gt;
* [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC Introduction to Linux in HPC (external resource)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Need Access to a Cluster?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[When to use an HPC Cluster]]&lt;br /&gt;
* [[Running Calculations]]&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  HPC System Specific Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
bwHPC encompasses several HPC compute clusters at different universities in Baden-Württemberg. Each cluster is dedicated to [https://www.bwhpc.de/bwhpc-domains.php specific research domains]. &lt;br /&gt;
 &lt;br /&gt;
Documentation differs between compute clusters, please see cluster specific overview pages:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BwUniCluster3.0|bwUniCluster 3.0]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | General Purpose, Teaching&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[BinAC2|bwForCluster BinAC 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Bioinformatics, Astrophysics, Geosciences, Pharmacy, and Medical Informatics&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot; | [[Helix|bwForCluster Helix]]&lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  |   Structural and Systems Biology, Medical Science, Soft Matter, Computational Humanities, and Mathematics and Computer Science&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[:JUSTUS2| bwForCluster JUSTUS 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Theoretical Chemistry, Condensed Matter Physics, and Quantum Sciences&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:5px; width:30%&amp;quot;  | [[NEMO2|bwForCluster NEMO 2]] &lt;br /&gt;
| style=&amp;quot;padding-left:20px;&amp;quot;  | Neurosciences, Particle Physics, Materials Science, and Microsystems Engineering&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|bwHPC Clusters: [https://www.bwhpc.de/cluster.php operational status] &lt;br /&gt;
Further Compute Clusters in Baden-Württemberg (separate access policies):&lt;br /&gt;
* [[DACHS | Datenanalyse Cluster der Hochschulen (DACHS)]]&lt;br /&gt;
* bwHPC tier 1: [https://kb.hlrs.de/platforms/index.php/Hunter_(HPE) Hunter] ([https://www.hlrs.de/apply-for-computing-time getting access])&lt;br /&gt;
* bwHPC tier 2: [https://www.nhr.kit.edu/userdocs/horeka HoreKa] ([https://www.nhr.kit.edu/userdocs/horeka/projects/ getting access])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold; text-align:left&amp;quot; | [[File:Clusternodes.svg|x20px]]  Documentation valid for all Clusters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Environment Modules| Software Environment Modules]]: usage of preexisting software&lt;br /&gt;
* [https://www.bwhpc.de/software.html List of Software] on all clusters&lt;br /&gt;
* [[Data Transfer|Data Transfer]]: working with files [[File:Notebook.svg|x15px]] &amp;lt;---&amp;gt; [[File:Clusternodes.svg|x15px]]&lt;br /&gt;
* [[Development| Development]]: software, programming languages, parallel pogramming&lt;br /&gt;
* [[Energy Efficient Cluster Usage | (Energy) Efficient Cluster Usage]] for low waiting times and fast running jobs&lt;br /&gt;
* [[HPC Glossary]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Storage&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
User guides of available scientific data storage services:&lt;br /&gt;
* [[SDS@hd]]: Everyone can join existing storage projects, entitlement needed for creating your own, [https://sds-hd.urz.uni-heidelberg.de/management/shib/sds_costs.php cost sheet]&lt;br /&gt;
* [https://uni-tuebingen.de/einrichtungen/zentrum-fuer-datenverarbeitung/projekte/laufende-projekte/bwsfs bwSFS]&lt;br /&gt;
Associated, but local scientific storage services are:&lt;br /&gt;
* [https://wiki.scc.kit.edu/lsdf/index.php/Category:LSDF_Online_Storage LSDF Online Storage] (only for KIT and KIT partners)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | [[File:Storage_small.svg|x15px]]  Scientific Data Archiving&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
For user guides of the scientific data archiving services:&lt;br /&gt;
* [https://www.rda.kit.edu/english bwDataArchive]: Open to all scientists at KIT and institutions in Baden-Württemberg that have signed a service agreement with KIT&lt;br /&gt;
Associated, but local archiving services for scientific data are:&lt;br /&gt;
* [https://www.urz.uni-heidelberg.de/de/service-katalog/speicher/heiarchive heiARCHIVE] (only for members of Heidelberg University)&lt;br /&gt;
For instructions on how to move the data, depending on the offered connections, can be found under [[Data Transfer | Data Transfer]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;height:100%; background:#ffeaef; width:100%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f5dfdf; font-size:120%; font-weight:bold;  text-align:left&amp;quot;   | Research Data Management&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://www.forschungsdaten.org/index.php/FDM-Kontakte#Deutschland Research Data Management (RDM)] contact persons&lt;br /&gt;
* [https://www.forschungsdaten.info Portal for Research Data Management] (Forschungsdaten.info)&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[BwSupportPortal|Submit a Ticket in our Support Portal]]&lt;br /&gt;
Support is provided by the [https://www.bwhpc.de/teams.php bwHPC Competence Centers]:&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Acknowledgement&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Please [[Acknowledgement|acknowledge]] our resources in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16093</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16093"/>
		<updated>2026-05-21T16:58:54Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|alert|[Status: Major Outage] bwForCluster NEMO 2}}&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage. Compute nodes and storage are completely inaccessible and cannot be started at this time. Comprehensive file system checks are scheduled for tomorrow.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, but due to the hardware damage, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available. Apologies for the disruption.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16092</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16092"/>
		<updated>2026-05-21T16:57:18Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|alert|[Status: Major Outage] bwForCluster NEMO 2}}&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage. Compute nodes and storage are completely inaccessible and cannot be started at this time. Comprehensive file system checks are scheduled for tomorrow.&lt;br /&gt;
We hope to restore service tomorrow, but due to the hardware damage, we cannot guarantee a specific timeline yet. We will provide another update as soon as more information is available. Apologies for the disruption.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16091</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16091"/>
		<updated>2026-05-21T16:57:07Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|alert|[Status: Major Outage] bwForCluster NEMO 2}}&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
Compute nodes and storage are completely inaccessible and cannot be started at this time.&lt;br /&gt;
Comprehensive file system checks are scheduled for tomorrow.&lt;br /&gt;
We hope to restore service tomorrow, but due to the hardware damage, we cannot guarantee a specific timeline yet.&lt;br /&gt;
We will provide another update as soon as more information is available. Apologies for the disruption.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16090</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Status&amp;diff=16090"/>
		<updated>2026-05-21T16:56:39Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Current Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= bwHPC Cluster and Service Status Page =&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Template:Status|warn|Status: Jobs suspended on Justus 2}}&lt;br /&gt;
Due to work on the power supply of the cooling system all jobs have been suspended to prevent overheating.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Template:Status|ok|&#039;&#039;&#039;Status:&#039;&#039;&#039; Normal operation of all systems}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:Status|alert|[Status: Major Outage] bwForCluster NEMO 2}}&lt;br /&gt;
NEMO2 is currently offline. A power outage damaged the cluster&#039;s UPS, causing an abrupt shutdown of our core infrastructure and parallel storage.&lt;br /&gt;
&lt;br /&gt;
Compute nodes and storage are completely inaccessible and cannot be started at this time.&lt;br /&gt;
Comprehensive file system checks are scheduled for tomorrow.&lt;br /&gt;
&lt;br /&gt;
We hope to restore service tomorrow, but due to the hardware damage, we cannot guarantee a specific timeline yet.&lt;br /&gt;
&lt;br /&gt;
We will provide another update as soon as more information is available. Apologies for the disruption.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Template usage examples: color ok(green),warn(yellow),alert(red). Enter custom text in 3rd field&lt;br /&gt;
{{Template:Status|ok|Status: Ok}}&lt;br /&gt;
{{Template:Status|warn|Status: maintenance upcoming}}&lt;br /&gt;
{{Template:Status|alert|Status: bwUniCluster down}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Relevant Old Messages ==&lt;br /&gt;
None&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwSupportPortal&amp;diff=16088</id>
		<title>BwSupportPortal</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwSupportPortal&amp;diff=16088"/>
		<updated>2026-05-21T10:09:06Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Help, support and any other HPC related request can be addressed to the bwHPC cluster and competence center teams via the &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #28a745; padding: 15px; background-color: #d4edda; margin: 5px 0;&amp;quot;&amp;gt;&lt;br /&gt;
[https://www.bwhpc.de/supportportal &#039;&#039;&#039;Create a ticket at the bwSupportPortal&#039;&#039;&#039;]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating a ticket =&lt;br /&gt;
&lt;br /&gt;
Tickets can be created and assigned to a support unit through the following steps after login:&lt;br /&gt;
&lt;br /&gt;
== Select New Ticket ==&lt;br /&gt;
&lt;br /&gt;
A new ticket can be created by clicking on the &amp;quot;+&amp;quot;-Symbol in the bottom left:&lt;br /&gt;
&lt;br /&gt;
[[File:BwHelpdesk Step1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Navigate the Support Groups ==&lt;br /&gt;
&lt;br /&gt;
Navigate the support groups by using &#039;&#039;&#039;the arrows&#039;&#039;&#039; or use the &#039;&#039;&#039;search bar&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[[File:BwHelpdesk Step2.png]]&lt;br /&gt;
&lt;br /&gt;
== Choose a Support Unit ==&lt;br /&gt;
&lt;br /&gt;
Choose a specific support group:&lt;br /&gt;
&lt;br /&gt;
[[File:BwHelpdesk Step3.png]]&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces/Advanced_Features&amp;diff=16087</id>
		<title>NEMO2/Workspaces/Advanced Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces/Advanced_Features&amp;diff=16087"/>
		<updated>2026-05-20T13:20:54Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Sharing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For basic daily usage see the main [[NEMO2/Workspaces|Workspaces]] guide.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Creating Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate myWs 100&lt;br /&gt;
&lt;br /&gt;
Returns the workspace path, e.g. &amp;lt;tt&amp;gt;/work/classic/$USER-myWs&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Running the same command again is safe — it returns the existing workspace path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capture path in variable:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_allocate myWs 100)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common options:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -g myWs 100                # Group-readable workspace&lt;br /&gt;
   $ ws_allocate -G projectgroup myWs 100   # Group-writable workspace&lt;br /&gt;
   $ ws_allocate -r 7 myWs 100              # Reminder 7 days before expiry&lt;br /&gt;
   $ ws_allocate -c &amp;quot;ML training data&amp;quot; myWs 100   # Add comment (shown in ws_list -l)&lt;br /&gt;
   $ ws_allocate -x myWs 100                # Extend existing workspace&lt;br /&gt;
   $ ws_allocate -x -u alice myWs 100       # Extend Alice&#039;s group workspace&lt;br /&gt;
   $ ws_allocate -r 7 -x myWs 0             # Update reminder only (no extension)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:20%&amp;quot; | Option&lt;br /&gt;
!style=&amp;quot;width:80%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Group-readable workspace&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-G &amp;lt;groupname&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Group-writable workspace. Set default in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-m &amp;lt;email&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Custom email for reminders (overrides identity provider email)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-r &amp;lt;days&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Reminder n days before expiration&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-c &amp;lt;comment&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Comment shown in &amp;lt;tt&amp;gt;ws_list -l&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-x&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Extend existing workspace&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-u &amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Target another user&#039;s workspace (requires &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using workspaces in batch jobs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create the workspace once on the login node, then use &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; in the job script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=my_job&lt;br /&gt;
&lt;br /&gt;
WORKSPACE=$(ws_find myProject)&lt;br /&gt;
cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
./my_program --input input.dat --output results.dat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== User Defaults: ~/.ws_user.conf ===&lt;br /&gt;
&lt;br /&gt;
Set defaults so you never forget important options. The file is in YAML format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
duration:  100&lt;br /&gt;
reminder:  7&lt;br /&gt;
groupname: projectgroup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; The first line must be a setting, not a comment. Some versions interpret a leading &amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt; as an email address.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the config above, &amp;lt;tt&amp;gt;ws_allocate myWs&amp;lt;/tt&amp;gt; automatically creates a 100-day workspace with a 7-day reminder for the default group — no extra flags needed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:25%&amp;quot; | Setting&lt;br /&gt;
!style=&amp;quot;width:75%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;duration:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Default lifetime in days&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;reminder:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Days before expiration for reminder&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;groupname:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Default group for &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; (see [[#Sharing|Sharing]])&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;mail:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Override notification email (optional)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Listing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_list                                # All your workspaces&lt;br /&gt;
   $ ws_list -Rr                            # Sort by remaining time (soonest first)&lt;br /&gt;
   $ ws_list -g                             # Include group workspaces&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id: myWs&lt;br /&gt;
   workspace directory  : /work/classic/$USER-myWs&lt;br /&gt;
   remaining time       : 6 days 23 hours&lt;br /&gt;
   creation time        : Thu Apr 17 09:23:41 2025&lt;br /&gt;
   expiration time      : Mon May 26 09:23:41 2025&lt;br /&gt;
   available extensions : 98&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width:15%&amp;quot; | Option&lt;br /&gt;
!style=&amp;quot;width:85%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-l&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Long listing (shows creation time, comment, extensions remaining)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Show remaining time as human-readable&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Reverse sort order&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-s&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Sort by creation time&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Include group workspaces (not just owned)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Finding Workspace Paths ==&lt;br /&gt;
&lt;br /&gt;
Returns the full path — primarily useful in scripts:&lt;br /&gt;
&lt;br /&gt;
   $ ws_find myWs&lt;br /&gt;
   /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_find myWs)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Extending Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_extend myWs 100                      # Extend by 100 days (same as ws_allocate -x)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Expiry is recalculated from &#039;&#039;now&#039;&#039;. Extending too early reduces remaining time; extending near expiry gives maximum benefit.&lt;br /&gt;
&lt;br /&gt;
Group members can extend each other&#039;s workspaces:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -x -u alice myWs 100        # Requires workspace created with -G&lt;br /&gt;
&lt;br /&gt;
Each extension uses one of the 100 available extensions. Check remaining extensions with &amp;lt;tt&amp;gt;ws_list -l&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Releasing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_release myWs&lt;br /&gt;
&lt;br /&gt;
The workspace directory is immediately moved out of reach. The data is permanently deleted at the next nightly expirer run — &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; is possible until then.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
Do &#039;&#039;&#039;not&#039;&#039;&#039; rely on being able to restore a released workspace. If you have important data, archive it before releasing.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--delete-data&amp;lt;/tt&amp;gt; skips even that window and deletes immediately (&#039;&#039;&#039;cannot be restored&#039;&#039;&#039;). Only use this if you are certain the data is no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Restoring Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Restore workspaces that &#039;&#039;&#039;expired naturally&#039;&#039;&#039; (reached end of lifetime) within the 30-day grace period:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -l                          # (1) List restorable workspaces&lt;br /&gt;
   $ ws_allocate restored 100               # (2) Create target workspace&lt;br /&gt;
   $ ws_restore username-myWs-0 restored    # (3) Restore&lt;br /&gt;
&lt;br /&gt;
Use the &#039;&#039;&#039;full name&#039;&#039;&#039; from &amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; (includes username prefix and timestamp), not the short name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; padding: 12px; background-color: #fff3cd; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Released workspaces&#039;&#039;&#039; (deleted with &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt;) can be restored with &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; until the next nightly expirer run — after that they are permanently deleted.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the workspace is not listed, it has been &#039;&#039;&#039;permanently deleted&#039;&#039;&#039; — not recoverable by anyone.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width:20%&amp;quot; | Option&lt;br /&gt;
!style=&amp;quot;width:80%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-l&amp;lt;/tt&amp;gt;&lt;br /&gt;
|List restorable workspaces&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-u &amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Restore another user&#039;s workspace (requires permission)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workspace Links ==&lt;br /&gt;
&lt;br /&gt;
Creates a directory of symlinks to all your workspaces for quick navigation:&lt;br /&gt;
&lt;br /&gt;
   $ ws_register ~/workspaces&lt;br /&gt;
   $ ls ~/workspaces/&lt;br /&gt;
   myWs -&amp;gt; /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
Re-run after creating new workspaces to keep the links up to date.&lt;br /&gt;
&lt;br /&gt;
== Sharing ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;NEVER use &amp;lt;tt&amp;gt;chmod 777&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;chmod o+rwx&amp;lt;/tt&amp;gt;!&#039;&#039;&#039;&lt;br /&gt;
Making workspaces world-readable is a security policy violation — use the methods below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Group workspaces (recommended) ===&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -g myWs 100                # Group-readable (read-only for group)&lt;br /&gt;
   $ ws_allocate -G projectgroup myWs 100   # Group-writable (recommended for teams)&lt;br /&gt;
   $ ws_allocate -G bw12a001 myWs 100       # Example: project group bw12a001&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;tt&amp;gt;groupname&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt; so you don&#039;t have to type it every time.&lt;br /&gt;
&lt;br /&gt;
Benefits: team members can extend the workspace, &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt; shows it to everyone in the group, and new files automatically inherit group ownership.&lt;br /&gt;
&lt;br /&gt;
=== Read-only sharing after creation ===&lt;br /&gt;
&lt;br /&gt;
Share an existing workspace read-only with specific users outside your group:&lt;br /&gt;
&lt;br /&gt;
   $ ws_share share myWs alice bob          # Grant read access&lt;br /&gt;
   $ ws_share unshare myWs alice            # Remove access&lt;br /&gt;
   $ ws_share list myWs                     # Show who has access&lt;br /&gt;
&lt;br /&gt;
=== ACLs (per-user and per-group fine-grained) ===&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt; when &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ws_share&amp;lt;/tt&amp;gt; do not cover your needs.&lt;br /&gt;
&lt;br /&gt;
==== User ACLs ====&lt;br /&gt;
&lt;br /&gt;
DIR=$(ws_find my_workspace)&lt;br /&gt;
   $ setfacl -Rm user:alice:rX,default:user:alice:rX &amp;quot;$DIR&amp;quot;   # Read-only for alice&lt;br /&gt;
   $ setfacl -Rm user:bob:rwX,default:user:bob:rwX   &amp;quot;$DIR&amp;quot;   # Read-write for bob&lt;br /&gt;
&lt;br /&gt;
==== Group ACLs ====&lt;br /&gt;
&lt;br /&gt;
   $ setfacl -Rm group:readgroup:rX,default:group:readgroup:rX         &amp;quot;$DIR&amp;quot;   # Read-only for group&lt;br /&gt;
   $ setfacl -Rm group:projectgroup:rwX,default:group:projectgroup:rwX &amp;quot;$DIR&amp;quot;   # Read-write for group&lt;br /&gt;
&lt;br /&gt;
==== Inspect &amp;amp; Remove ====&lt;br /&gt;
&lt;br /&gt;
   $ getfacl     &amp;quot;$DIR&amp;quot;   # View current ACLs (users and groups)&lt;br /&gt;
   $ setfacl -Rb &amp;quot;$DIR&amp;quot;   # Remove all ACLs&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt; || Apply recursively to all subdirectories and files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;default:&amp;lt;/tt&amp;gt; || New files automatically inherit the ACL entry&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; || Execute permission only on directories and executable files&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workspace Handover ==&lt;br /&gt;
&lt;br /&gt;
When a team member leaves or transfers a project, their workspaces can be handed over without data loss.&lt;br /&gt;
&lt;br /&gt;
=== Preparation (before someone leaves) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-G groupname&amp;lt;/tt&amp;gt; can only be set &#039;&#039;&#039;at creation time&#039;&#039;&#039;. Always create shared research data with it from the start:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -G projectgroup -c &amp;quot;ML training data – contact alice&amp;quot; myWs 100&lt;br /&gt;
&lt;br /&gt;
This ensures:&lt;br /&gt;
* Group members can see the workspace with &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Any group member can extend it: &amp;lt;tt&amp;gt;ws_allocate -x -u alice myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Data remains accessible after the original owner&#039;s account is deactivated&lt;br /&gt;
&lt;br /&gt;
To ensure someone else receives expiry reminders, there are two options:&lt;br /&gt;
&lt;br /&gt;
* Add their email to &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt; of the owner (or use &amp;lt;tt&amp;gt;-m email&amp;lt;/tt&amp;gt; at allocate time):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mailaddress: alice@uni-freiburg.de,backup@uni-freiburg.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Or actively take over the reminders as the new responsible person:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -r 7 -u alice -x myWs 0   # Redirect reminders to yourself&lt;br /&gt;
&lt;br /&gt;
=== After the owner has left ===&lt;br /&gt;
&lt;br /&gt;
If the workspace was created with &amp;lt;tt&amp;gt;-G groupname&amp;lt;/tt&amp;gt;, a group member can keep it alive:&lt;br /&gt;
&lt;br /&gt;
   $ ws_list -g                                  # Find group workspaces&lt;br /&gt;
   $ ws_allocate -x -u formercolleague myWs 100  # Extend (while still restorable)&lt;br /&gt;
&lt;br /&gt;
If the workspace has already expired, an authorized group member or administrator can restore it:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -u formercolleague -l        # List their restorable workspaces&lt;br /&gt;
   $ ws_allocate newname 100&lt;br /&gt;
   $ ws_restore -u formercolleague formercolleague-myWs-0 newname&lt;br /&gt;
&lt;br /&gt;
=== Workspaces without group access ===&lt;br /&gt;
&lt;br /&gt;
If the workspace was created without &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt;, contact the HPC support team for assistance during the grace period (30 days after expiry).&lt;br /&gt;
&lt;br /&gt;
== Reminders ==&lt;br /&gt;
&lt;br /&gt;
Reminders are automatic. The notification goes to your identity provider email address.&lt;br /&gt;
&lt;br /&gt;
Customize reminder timing at workspace creation:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -r 7 myWs 100              # Reminder 7 days before expiry&lt;br /&gt;
&lt;br /&gt;
Custom email address:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -m custom@example.com myWs 100&lt;br /&gt;
&lt;br /&gt;
Update reminder timing (or take over reminders) without extending:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -r 7 -x myWs 0            # Change timing only&lt;br /&gt;
   $ ws_allocate -r 7 -u alice -x myWs 0   # Take over reminders for Alice&#039;s workspace&lt;br /&gt;
&lt;br /&gt;
The last command is useful when taking responsibility for a colleague&#039;s workspace.&lt;br /&gt;
&lt;br /&gt;
== Quotas &amp;amp; Limits ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:35%&amp;quot; | Parameter&lt;br /&gt;
!style=&amp;quot;width:65%&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
|Default lifetime&lt;br /&gt;
|30 days&lt;br /&gt;
|-&lt;br /&gt;
|Maximum lifetime&lt;br /&gt;
|100 days&lt;br /&gt;
|-&lt;br /&gt;
|Maximum extensions&lt;br /&gt;
|100 times&lt;br /&gt;
|-&lt;br /&gt;
|Storage quota&lt;br /&gt;
|5 TiB per workspace&lt;br /&gt;
|-&lt;br /&gt;
|Grace period (expired workspaces)&lt;br /&gt;
|30 days (recoverable with &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Grace period (released workspaces)&lt;br /&gt;
|next nightly expirer run (&#039;&#039;&#039;not reliably recoverable&#039;&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check quota:&lt;br /&gt;
&lt;br /&gt;
   $ nemoquota                               # HOME + workspace quotas&lt;br /&gt;
   $ df --si $(ws_find myWs)                 # Size of a specific workspace&lt;br /&gt;
&lt;br /&gt;
Released workspaces count toward quota until the nightly cleanup runs. Use &amp;lt;tt&amp;gt;ws_release --delete-data&amp;lt;/tt&amp;gt; for immediate relief (&#039;&#039;&#039;irreversible&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
# Set up &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt; — defaults save time and prevent mistakes&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;-G groupname&amp;lt;/tt&amp;gt; for research data — essential for handover and collaboration&lt;br /&gt;
# Create workspaces on the login node — use &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; in job scripts, don&#039;t create inside jobs&lt;br /&gt;
# Monitor with &amp;lt;tt&amp;gt;ws_list -Rr&amp;lt;/tt&amp;gt; — sort by remaining time to catch workspaces about to expire&lt;br /&gt;
# Archive before expiry — workspaces are not backed up&lt;br /&gt;
# Clean up finished workspaces — &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt; frees quota and reduces clutter&lt;br /&gt;
&lt;br /&gt;
Single-node temporary files belong in &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt;, not workspaces.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces&amp;diff=16086</id>
		<title>NEMO2/Workspaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces&amp;diff=16086"/>
		<updated>2026-05-20T13:07:44Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Sharing Workspaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; padding: 15px; background-color: #fff3cd; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is the updated Workspaces guide for NEMO2. For other clusters please use: [[Workspace]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace tools&#039;&#039;&#039; provide temporary storage on NEMO&#039;s fast parallel filesystem (Weka).&lt;br /&gt;
They are meant for data that needs to persist longer than a single job, but not permanently.&lt;br /&gt;
&lt;br /&gt;
For advanced features — user config (&amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;), reminders, quotas, workspace handover, and more — see [[NEMO2/Workspaces/Advanced_Features|Advanced Features]].&lt;br /&gt;
&lt;br /&gt;
== What are Workspaces? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use workspaces for:&#039;&#039;&#039;&lt;br /&gt;
* Jobs generating intermediate data&lt;br /&gt;
* Data shared between multiple compute nodes&lt;br /&gt;
* Multi-step workflows&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t use workspaces for:&#039;&#039;&#039;&lt;br /&gt;
* Permanent storage (use HOME or project directories)&lt;br /&gt;
* Single-node temporary files (use &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt; instead)&lt;br /&gt;
&lt;br /&gt;
== Important - Read First ==&lt;br /&gt;
&lt;br /&gt;
* No Backup: Data is &#039;&#039;&#039;not backed up&#039;&#039;&#039; and will be &#039;&#039;&#039;automatically deleted&#039;&#039;&#039; after expiration&lt;br /&gt;
* Time-limited: Maximum lifetime is 100 days, up to 100 extensions&lt;br /&gt;
* Email Reminders: You receive email notifications before expiration&lt;br /&gt;
* Backup Important Data: Copy results to permanent storage before expiration&lt;br /&gt;
&lt;br /&gt;
== Command Overview ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_allocate&amp;lt;/tt&amp;gt; - Create or extend workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt; - List your workspaces&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; - Find workspace path (for scripts)&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_extend&amp;lt;/tt&amp;gt; - Extend workspace lifetime&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt; - Release (delete) workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; - Restore expired/released workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_register&amp;lt;/tt&amp;gt; - Create symbolic links&lt;br /&gt;
&lt;br /&gt;
All commands support &amp;lt;tt&amp;gt;-h&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:40%&amp;quot; | Task&lt;br /&gt;
!style=&amp;quot;width:60%&amp;quot; | Command&lt;br /&gt;
|-&lt;br /&gt;
|Create workspace (100 days)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_allocate myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Create group workspace&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_allocate -G groupname myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|List all workspaces&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|See what expires soon&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_list -Rr&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Find path (for scripts)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_find myWs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Extend by 100 days&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_extend myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Delete workspace (permanent, next nightly run)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_release myWs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Restore expired workspace (30d grace)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;ws_restore oldname newname&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Creating Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Create a workspace with a &#039;&#039;&#039;name&#039;&#039;&#039; and &#039;&#039;&#039;lifetime&#039;&#039;&#039; in days:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate myWs 100&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
&lt;br /&gt;
   /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capture path in variable:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_allocate myWs 100)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Running the same command again is safe - returns the existing workspace path.&lt;br /&gt;
&lt;br /&gt;
== Listing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_list                                # List all workspaces&lt;br /&gt;
   $ ws_list -Rr                            # Sort by remaining time, soonest first&lt;br /&gt;
   $ ws_list -g                             # Show group workspaces&lt;br /&gt;
&lt;br /&gt;
== Extending Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_extend myWs 100                      # Extend by 100 days from now&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternative:&#039;&#039;&#039; &amp;lt;tt&amp;gt;ws_allocate -x myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each extension consumes one of your available extensions (100 total).&lt;br /&gt;
&lt;br /&gt;
== Releasing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_release myWs&lt;br /&gt;
&lt;br /&gt;
The workspace becomes inaccessible immediately and is permanently deleted at the next nightly expirer run. &#039;&#039;&#039;Do not rely on recovering a released workspace.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Restoring Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Recover workspaces that &#039;&#039;&#039;expired naturally&#039;&#039;&#039; (reached end of lifetime) within the 30-day grace period:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -l                          # (1) List restorable workspaces&lt;br /&gt;
   $ ws_allocate restored 100               # (2) Create target workspace&lt;br /&gt;
   $ ws_restore username-myWs-0 restored    # (3) Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Use the &#039;&#039;&#039;full name&#039;&#039;&#039; from &amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; (with username and timestamp), not the short name.&lt;br /&gt;
Released workspaces (via &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt;) can also be restored, but only until the next nightly expirer run — after that they are permanently deleted.&lt;br /&gt;
&lt;br /&gt;
== Sharing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
=== Group workspace (recommended) ===&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -g myWs 100                # Group-readable (read-only for group)&lt;br /&gt;
   $ ws_allocate -G projectgroup myWs 100   # Group-writable (recommended for teams)&lt;br /&gt;
   $ ws_allocate -G bw12a001 myWs 100       # Example: project group bw12a001&lt;br /&gt;
&lt;br /&gt;
Anyone in the group can use &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt; to see the workspace and extend it with:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -x -u owner myWs 100&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; also enables smooth handover when team members leave — see [[NEMO2/Workspaces/Advanced_Features#Workspace_Handover|Workspace Handover]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Set default group in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
groupname: bw12a001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces&amp;diff=16085</id>
		<title>NEMO2/Workspaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces&amp;diff=16085"/>
		<updated>2026-05-20T13:01:56Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* Sharing Workspaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; padding: 15px; background-color: #fff3cd; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is the updated Workspaces guide for NEMO2. For other clusters please use: [[Workspace]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workspace tools&#039;&#039;&#039; provide temporary storage on NEMO&#039;s fast parallel filesystem (Weka).&lt;br /&gt;
They are meant for data that needs to persist longer than a single job, but not permanently.&lt;br /&gt;
&lt;br /&gt;
For advanced features — user config (&amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;), reminders, quotas, workspace handover, and more — see [[NEMO2/Workspaces/Advanced_Features|Advanced Features]].&lt;br /&gt;
&lt;br /&gt;
== What are Workspaces? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use workspaces for:&#039;&#039;&#039;&lt;br /&gt;
* Jobs generating intermediate data&lt;br /&gt;
* Data shared between multiple compute nodes&lt;br /&gt;
* Multi-step workflows&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t use workspaces for:&#039;&#039;&#039;&lt;br /&gt;
* Permanent storage (use HOME or project directories)&lt;br /&gt;
* Single-node temporary files (use &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt; instead)&lt;br /&gt;
&lt;br /&gt;
== Important - Read First ==&lt;br /&gt;
&lt;br /&gt;
* No Backup: Data is &#039;&#039;&#039;not backed up&#039;&#039;&#039; and will be &#039;&#039;&#039;automatically deleted&#039;&#039;&#039; after expiration&lt;br /&gt;
* Time-limited: Maximum lifetime is 100 days, up to 100 extensions&lt;br /&gt;
* Email Reminders: You receive email notifications before expiration&lt;br /&gt;
* Backup Important Data: Copy results to permanent storage before expiration&lt;br /&gt;
&lt;br /&gt;
== Command Overview ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_allocate&amp;lt;/tt&amp;gt; - Create or extend workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt; - List your workspaces&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; - Find workspace path (for scripts)&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_extend&amp;lt;/tt&amp;gt; - Extend workspace lifetime&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt; - Release (delete) workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; - Restore expired/released workspace&lt;br /&gt;
* &amp;lt;tt&amp;gt;ws_register&amp;lt;/tt&amp;gt; - Create symbolic links&lt;br /&gt;
&lt;br /&gt;
All commands support &amp;lt;tt&amp;gt;-h&amp;lt;/tt&amp;gt; for help.&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:40%&amp;quot; | Task&lt;br /&gt;
!style=&amp;quot;width:60%&amp;quot; | Command&lt;br /&gt;
|-&lt;br /&gt;
|Create workspace (100 days)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_allocate myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Create group workspace&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_allocate -G groupname myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|List all workspaces&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_list&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|See what expires soon&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_list -Rr&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Find path (for scripts)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_find myWs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Extend by 100 days&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_extend myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Delete workspace (permanent, next nightly run)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_release myWs&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Restore expired workspace (30d grace)&lt;br /&gt;
|&amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;ws_restore oldname newname&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Creating Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Create a workspace with a &#039;&#039;&#039;name&#039;&#039;&#039; and &#039;&#039;&#039;lifetime&#039;&#039;&#039; in days:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate myWs 100&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
&lt;br /&gt;
   /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capture path in variable:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_allocate myWs 100)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Running the same command again is safe - returns the existing workspace path.&lt;br /&gt;
&lt;br /&gt;
== Listing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_list                                # List all workspaces&lt;br /&gt;
   $ ws_list -Rr                            # Sort by remaining time, soonest first&lt;br /&gt;
   $ ws_list -g                             # Show group workspaces&lt;br /&gt;
&lt;br /&gt;
== Extending Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_extend myWs 100                      # Extend by 100 days from now&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternative:&#039;&#039;&#039; &amp;lt;tt&amp;gt;ws_allocate -x myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each extension consumes one of your available extensions (100 total).&lt;br /&gt;
&lt;br /&gt;
== Releasing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_release myWs&lt;br /&gt;
&lt;br /&gt;
The workspace becomes inaccessible immediately and is permanently deleted at the next nightly expirer run. &#039;&#039;&#039;Do not rely on recovering a released workspace.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Restoring Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Recover workspaces that &#039;&#039;&#039;expired naturally&#039;&#039;&#039; (reached end of lifetime) within the 30-day grace period:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -l                          # (1) List restorable workspaces&lt;br /&gt;
   $ ws_allocate restored 100               # (2) Create target workspace&lt;br /&gt;
   $ ws_restore username-myWs-0 restored    # (3) Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Use the &#039;&#039;&#039;full name&#039;&#039;&#039; from &amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; (with username and timestamp), not the short name.&lt;br /&gt;
Released workspaces (via &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt;) can also be restored, but only until the next nightly expirer run — after that they are permanently deleted.&lt;br /&gt;
&lt;br /&gt;
== Sharing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
=== Group workspace (recommended) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ws_allocate -g myWs 100                  # Group-readable (read-only for group)&lt;br /&gt;
ws_allocate -G projectgroup myWs 100     # Group-writable (recommended for teams)&lt;br /&gt;
ws_allocate -G bw12a001 myWs 100         # Example: project group bw12a001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anyone in the group can use &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt; to see the workspace and extend it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ws_allocate -x -u owner myWs 100&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; also enables smooth handover when team members leave — see [[NEMO2/Workspaces/Advanced_Features#Workspace_Handover|Workspace Handover]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Set default group in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
groupname: bw12a001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|Your project group name (e.g. &amp;lt;tt&amp;gt;bw12a001&amp;lt;/tt&amp;gt;) is typically assigned by your HPC site. Use &amp;lt;tt&amp;gt;groups&amp;lt;/tt&amp;gt; on the command line to list all groups you belong to.}}&lt;br /&gt;
&lt;br /&gt;
=== Share after creation ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; at creation, share read-only with &amp;lt;tt&amp;gt;ws_share&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ws_share share myWs alice bob            # Grant read access&lt;br /&gt;
ws_share list myWs                       # Show who has access&lt;br /&gt;
ws_share unshare myWs alice              # Remove access&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Advanced sharing:&#039;&#039;&#039; [[NEMO2/Workspaces/Advanced_Features#Sharing|Sharing guide]] for ACL-based per-user permissions.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces/Advanced_Features&amp;diff=16084</id>
		<title>NEMO2/Workspaces/Advanced Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Workspaces/Advanced_Features&amp;diff=16084"/>
		<updated>2026-05-20T12:59:06Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: /* ACLs (per-user fine-grained) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For basic daily usage see the main [[NEMO2/Workspaces|Workspaces]] guide.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Creating Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate myWs 100&lt;br /&gt;
&lt;br /&gt;
Returns the workspace path, e.g. &amp;lt;tt&amp;gt;/work/classic/$USER-myWs&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Running the same command again is safe — it returns the existing workspace path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Capture path in variable:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_allocate myWs 100)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Common options:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -g myWs 100                # Group-readable workspace&lt;br /&gt;
   $ ws_allocate -G projectgroup myWs 100   # Group-writable workspace&lt;br /&gt;
   $ ws_allocate -r 7 myWs 100              # Reminder 7 days before expiry&lt;br /&gt;
   $ ws_allocate -c &amp;quot;ML training data&amp;quot; myWs 100   # Add comment (shown in ws_list -l)&lt;br /&gt;
   $ ws_allocate -x myWs 100                # Extend existing workspace&lt;br /&gt;
   $ ws_allocate -x -u alice myWs 100       # Extend Alice&#039;s group workspace&lt;br /&gt;
   $ ws_allocate -r 7 -x myWs 0             # Update reminder only (no extension)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:20%&amp;quot; | Option&lt;br /&gt;
!style=&amp;quot;width:80%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Group-readable workspace&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-G &amp;lt;groupname&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Group-writable workspace. Set default in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-m &amp;lt;email&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Custom email for reminders (overrides identity provider email)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-r &amp;lt;days&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Reminder n days before expiration&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-c &amp;lt;comment&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Comment shown in &amp;lt;tt&amp;gt;ws_list -l&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-x&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Extend existing workspace&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-u &amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Target another user&#039;s workspace (requires &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using workspaces in batch jobs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create the workspace once on the login node, then use &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; in the job script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=my_job&lt;br /&gt;
&lt;br /&gt;
WORKSPACE=$(ws_find myProject)&lt;br /&gt;
cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
./my_program --input input.dat --output results.dat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== User Defaults: ~/.ws_user.conf ===&lt;br /&gt;
&lt;br /&gt;
Set defaults so you never forget important options. The file is in YAML format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
duration:  100&lt;br /&gt;
reminder:  7&lt;br /&gt;
groupname: projectgroup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; The first line must be a setting, not a comment. Some versions interpret a leading &amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt; as an email address.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the config above, &amp;lt;tt&amp;gt;ws_allocate myWs&amp;lt;/tt&amp;gt; automatically creates a 100-day workspace with a 7-day reminder for the default group — no extra flags needed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:25%&amp;quot; | Setting&lt;br /&gt;
!style=&amp;quot;width:75%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;duration:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Default lifetime in days&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;reminder:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Days before expiration for reminder&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;groupname:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Default group for &amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; (see [[#Sharing|Sharing]])&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;mail:&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Override notification email (optional)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Listing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_list                                # All your workspaces&lt;br /&gt;
   $ ws_list -Rr                            # Sort by remaining time (soonest first)&lt;br /&gt;
   $ ws_list -g                             # Include group workspaces&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id: myWs&lt;br /&gt;
   workspace directory  : /work/classic/$USER-myWs&lt;br /&gt;
   remaining time       : 6 days 23 hours&lt;br /&gt;
   creation time        : Thu Apr 17 09:23:41 2025&lt;br /&gt;
   expiration time      : Mon May 26 09:23:41 2025&lt;br /&gt;
   available extensions : 98&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width:15%&amp;quot; | Option&lt;br /&gt;
!style=&amp;quot;width:85%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-l&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Long listing (shows creation time, comment, extensions remaining)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Show remaining time as human-readable&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Reverse sort order&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-s&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Sort by creation time&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Include group workspaces (not just owned)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Finding Workspace Paths ==&lt;br /&gt;
&lt;br /&gt;
Returns the full path — primarily useful in scripts:&lt;br /&gt;
&lt;br /&gt;
   $ ws_find myWs&lt;br /&gt;
   /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
   $ WORKSPACE=$(ws_find myWs)&lt;br /&gt;
   $ cd &amp;quot;$WORKSPACE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Extending Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_extend myWs 100                      # Extend by 100 days (same as ws_allocate -x)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Expiry is recalculated from &#039;&#039;now&#039;&#039;. Extending too early reduces remaining time; extending near expiry gives maximum benefit.&lt;br /&gt;
&lt;br /&gt;
Group members can extend each other&#039;s workspaces:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -x -u alice myWs 100        # Requires workspace created with -G&lt;br /&gt;
&lt;br /&gt;
Each extension uses one of the 100 available extensions. Check remaining extensions with &amp;lt;tt&amp;gt;ws_list -l&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Releasing Workspaces ==&lt;br /&gt;
&lt;br /&gt;
   $ ws_release myWs&lt;br /&gt;
&lt;br /&gt;
The workspace directory is immediately moved out of reach. The data is permanently deleted at the next nightly expirer run — &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; is possible until then.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
Do &#039;&#039;&#039;not&#039;&#039;&#039; rely on being able to restore a released workspace. If you have important data, archive it before releasing.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;--delete-data&amp;lt;/tt&amp;gt; skips even that window and deletes immediately (&#039;&#039;&#039;cannot be restored&#039;&#039;&#039;). Only use this if you are certain the data is no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Restoring Workspaces ==&lt;br /&gt;
&lt;br /&gt;
Restore workspaces that &#039;&#039;&#039;expired naturally&#039;&#039;&#039; (reached end of lifetime) within the 30-day grace period:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -l                          # (1) List restorable workspaces&lt;br /&gt;
   $ ws_allocate restored 100               # (2) Create target workspace&lt;br /&gt;
   $ ws_restore username-myWs-0 restored    # (3) Restore&lt;br /&gt;
&lt;br /&gt;
Use the &#039;&#039;&#039;full name&#039;&#039;&#039; from &amp;lt;tt&amp;gt;ws_restore -l&amp;lt;/tt&amp;gt; (includes username prefix and timestamp), not the short name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #ffc107; padding: 12px; background-color: #fff3cd; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Released workspaces&#039;&#039;&#039; (deleted with &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt;) can be restored with &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt; until the next nightly expirer run — after that they are permanently deleted.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the workspace is not listed, it has been &#039;&#039;&#039;permanently deleted&#039;&#039;&#039; — not recoverable by anyone.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width:20%&amp;quot; | Option&lt;br /&gt;
!style=&amp;quot;width:80%&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-l&amp;lt;/tt&amp;gt;&lt;br /&gt;
|List restorable workspaces&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-u &amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|Restore another user&#039;s workspace (requires permission)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workspace Links ==&lt;br /&gt;
&lt;br /&gt;
Creates a directory of symlinks to all your workspaces for quick navigation:&lt;br /&gt;
&lt;br /&gt;
   $ ws_register ~/workspaces&lt;br /&gt;
   $ ls ~/workspaces/&lt;br /&gt;
   myWs -&amp;gt; /work/classic/$USER-myWs&lt;br /&gt;
&lt;br /&gt;
Re-run after creating new workspaces to keep the links up to date.&lt;br /&gt;
&lt;br /&gt;
== Sharing ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 3px solid #dc3545; padding: 15px; background-color: #f8d7da; margin: 10px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;NEVER use &amp;lt;tt&amp;gt;chmod 777&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;chmod o+rwx&amp;lt;/tt&amp;gt;!&#039;&#039;&#039;&lt;br /&gt;
Making workspaces world-readable is a security policy violation — use the methods below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Group workspaces (recommended) ===&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -g myWs 100                # Group-readable (read-only for group)&lt;br /&gt;
   $ ws_allocate -G projectgroup myWs 100   # Group-writable (recommended for teams)&lt;br /&gt;
&lt;br /&gt;
Set &amp;lt;tt&amp;gt;groupname&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt; so you don&#039;t have to type it every time.&lt;br /&gt;
&lt;br /&gt;
Benefits: team members can extend the workspace, &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt; shows it to everyone in the group, and new files automatically inherit group ownership.&lt;br /&gt;
&lt;br /&gt;
=== Read-only sharing after creation ===&lt;br /&gt;
&lt;br /&gt;
Share an existing workspace read-only with specific users outside your group:&lt;br /&gt;
&lt;br /&gt;
   $ ws_share share myWs alice bob          # Grant read access&lt;br /&gt;
   $ ws_share unshare myWs alice            # Remove access&lt;br /&gt;
   $ ws_share list myWs                     # Show who has access&lt;br /&gt;
&lt;br /&gt;
=== ACLs (per-user and per-group fine-grained) ===&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;tt&amp;gt;setfacl&amp;lt;/tt&amp;gt; when &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ws_share&amp;lt;/tt&amp;gt; do not cover your needs.&lt;br /&gt;
&lt;br /&gt;
==== User ACLs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
DIR=$(ws_find my_workspace)&lt;br /&gt;
setfacl -Rm user:alice:rX,default:user:alice:rX &amp;quot;$DIR&amp;quot;   # Read-only for alice&lt;br /&gt;
setfacl -Rm user:bob:rwX,default:user:bob:rwX   &amp;quot;$DIR&amp;quot;   # Read-write for bob&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group ACLs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setfacl -Rm group:readgroup:rX,default:group:readgroup:rX         &amp;quot;$DIR&amp;quot;   # Read-only for group&lt;br /&gt;
setfacl -Rm group:projectgroup:rwX,default:group:projectgroup:rwX &amp;quot;$DIR&amp;quot;   # Read-write for group&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Inspect &amp;amp; Remove ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
getfacl     &amp;quot;$DIR&amp;quot;   # View current ACLs (users and groups)&lt;br /&gt;
setfacl -Rb &amp;quot;$DIR&amp;quot;   # Remove all ACLs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt; || Apply recursively to all subdirectories and files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;default:&amp;lt;/tt&amp;gt; || New files automatically inherit the ACL entry&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; || Execute permission only on directories and executable files&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workspace Handover ==&lt;br /&gt;
&lt;br /&gt;
When a team member leaves or transfers a project, their workspaces can be handed over without data loss.&lt;br /&gt;
&lt;br /&gt;
=== Preparation (before someone leaves) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-G groupname&amp;lt;/tt&amp;gt; can only be set &#039;&#039;&#039;at creation time&#039;&#039;&#039;. Always create shared research data with it from the start:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -G projectgroup -c &amp;quot;ML training data – contact alice&amp;quot; myWs 100&lt;br /&gt;
&lt;br /&gt;
This ensures:&lt;br /&gt;
* Group members can see the workspace with &amp;lt;tt&amp;gt;ws_list -g&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Any group member can extend it: &amp;lt;tt&amp;gt;ws_allocate -x -u alice myWs 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Data remains accessible after the original owner&#039;s account is deactivated&lt;br /&gt;
&lt;br /&gt;
To ensure someone else receives expiry reminders, there are two options:&lt;br /&gt;
&lt;br /&gt;
* Add their email to &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt; of the owner (or use &amp;lt;tt&amp;gt;-m email&amp;lt;/tt&amp;gt; at allocate time):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mailaddress: alice@uni-freiburg.de,backup@uni-freiburg.de&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Or actively take over the reminders as the new responsible person:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -r 7 -u alice -x myWs 0   # Redirect reminders to yourself&lt;br /&gt;
&lt;br /&gt;
=== After the owner has left ===&lt;br /&gt;
&lt;br /&gt;
If the workspace was created with &amp;lt;tt&amp;gt;-G groupname&amp;lt;/tt&amp;gt;, a group member can keep it alive:&lt;br /&gt;
&lt;br /&gt;
   $ ws_list -g                                  # Find group workspaces&lt;br /&gt;
   $ ws_allocate -x -u formercolleague myWs 100  # Extend (while still restorable)&lt;br /&gt;
&lt;br /&gt;
If the workspace has already expired, an authorized group member or administrator can restore it:&lt;br /&gt;
&lt;br /&gt;
   $ ws_restore -u formercolleague -l        # List their restorable workspaces&lt;br /&gt;
   $ ws_allocate newname 100&lt;br /&gt;
   $ ws_restore -u formercolleague formercolleague-myWs-0 newname&lt;br /&gt;
&lt;br /&gt;
=== Workspaces without group access ===&lt;br /&gt;
&lt;br /&gt;
If the workspace was created without &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;-G&amp;lt;/tt&amp;gt;, contact the HPC support team for assistance during the grace period (30 days after expiry).&lt;br /&gt;
&lt;br /&gt;
== Reminders ==&lt;br /&gt;
&lt;br /&gt;
Reminders are automatic. The notification goes to your identity provider email address.&lt;br /&gt;
&lt;br /&gt;
Customize reminder timing at workspace creation:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -r 7 myWs 100              # Reminder 7 days before expiry&lt;br /&gt;
&lt;br /&gt;
Custom email address:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -m custom@example.com myWs 100&lt;br /&gt;
&lt;br /&gt;
Update reminder timing (or take over reminders) without extending:&lt;br /&gt;
&lt;br /&gt;
   $ ws_allocate -r 7 -x myWs 0            # Change timing only&lt;br /&gt;
   $ ws_allocate -r 7 -u alice -x myWs 0   # Take over reminders for Alice&#039;s workspace&lt;br /&gt;
&lt;br /&gt;
The last command is useful when taking responsibility for a colleague&#039;s workspace.&lt;br /&gt;
&lt;br /&gt;
== Quotas &amp;amp; Limits ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!style=&amp;quot;width:35%&amp;quot; | Parameter&lt;br /&gt;
!style=&amp;quot;width:65%&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
|Default lifetime&lt;br /&gt;
|30 days&lt;br /&gt;
|-&lt;br /&gt;
|Maximum lifetime&lt;br /&gt;
|100 days&lt;br /&gt;
|-&lt;br /&gt;
|Maximum extensions&lt;br /&gt;
|100 times&lt;br /&gt;
|-&lt;br /&gt;
|Storage quota&lt;br /&gt;
|5 TiB per workspace&lt;br /&gt;
|-&lt;br /&gt;
|Grace period (expired workspaces)&lt;br /&gt;
|30 days (recoverable with &amp;lt;tt&amp;gt;ws_restore&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Grace period (released workspaces)&lt;br /&gt;
|next nightly expirer run (&#039;&#039;&#039;not reliably recoverable&#039;&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check quota:&lt;br /&gt;
&lt;br /&gt;
   $ nemoquota                               # HOME + workspace quotas&lt;br /&gt;
   $ df --si $(ws_find myWs)                 # Size of a specific workspace&lt;br /&gt;
&lt;br /&gt;
Released workspaces count toward quota until the nightly cleanup runs. Use &amp;lt;tt&amp;gt;ws_release --delete-data&amp;lt;/tt&amp;gt; for immediate relief (&#039;&#039;&#039;irreversible&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
# Set up &amp;lt;tt&amp;gt;~/.ws_user.conf&amp;lt;/tt&amp;gt; — defaults save time and prevent mistakes&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;-G groupname&amp;lt;/tt&amp;gt; for research data — essential for handover and collaboration&lt;br /&gt;
# Create workspaces on the login node — use &amp;lt;tt&amp;gt;ws_find&amp;lt;/tt&amp;gt; in job scripts, don&#039;t create inside jobs&lt;br /&gt;
# Monitor with &amp;lt;tt&amp;gt;ws_list -Rr&amp;lt;/tt&amp;gt; — sort by remaining time to catch workspaces about to expire&lt;br /&gt;
# Archive before expiry — workspaces are not backed up&lt;br /&gt;
# Clean up finished workspaces — &amp;lt;tt&amp;gt;ws_release&amp;lt;/tt&amp;gt; frees quota and reduces clutter&lt;br /&gt;
&lt;br /&gt;
Single-node temporary files belong in &amp;lt;tt&amp;gt;$TMPDIR&amp;lt;/tt&amp;gt;, not workspaces.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Containers&amp;diff=16080</id>
		<title>NEMO2/Containers</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2/Containers&amp;diff=16080"/>
		<updated>2026-05-19T08:42:54Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NEMO supports two container runtimes for different use cases.&lt;br /&gt;
Neither requires root privileges and both integrate with the cluster&#039;s shared filesystems (&amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;/work&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! [[NEMO2/Containers/Enroot|Enroot + Pyxis]] (recommended)&lt;br /&gt;
! [[NEMO2/Containers/Apptainer|Apptainer / Singularity]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Image source&#039;&#039;&#039;&lt;br /&gt;
| Docker Hub, NGC, any OCI registry&lt;br /&gt;
| Docker Hub, NGC, any OCI registry; SIF files&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Image format&#039;&#039;&#039;&lt;br /&gt;
| SquashFS (&amp;lt;tt&amp;gt;.sqsh&amp;lt;/tt&amp;gt;)&lt;br /&gt;
| SIF (&amp;lt;tt&amp;gt;.sif&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Slurm integration&#039;&#039;&#039;&lt;br /&gt;
| Native via Pyxis plugin (&amp;lt;tt&amp;gt;--container-name&amp;lt;/tt&amp;gt; etc.)&lt;br /&gt;
| Manual — wrap in batch script&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GPU support&#039;&#039;&#039;&lt;br /&gt;
| Automatic, no extra flags needed&lt;br /&gt;
| Via &amp;lt;tt&amp;gt;--nv&amp;lt;/tt&amp;gt; flag&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Installation&#039;&#039;&#039;&lt;br /&gt;
| System-wide, always available&lt;br /&gt;
| System-wide, always available&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Best for&#039;&#039;&#039;&lt;br /&gt;
| Docker-based workflows, GPU workloads, Slurm batch jobs&lt;br /&gt;
| Existing SIF images, reproducible science, portability&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== When to use what ==&lt;br /&gt;
&lt;br /&gt;
; Enroot + Pyxis&lt;br /&gt;
: Use this if you want to run Docker images directly from a registry, submit containerised jobs via &amp;lt;tt&amp;gt;srun&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;sbatch&amp;lt;/tt&amp;gt;, or need tight GPU integration.&lt;br /&gt;
: [[NEMO2/Containers/Enroot|→ Enroot &amp;amp; Pyxis details]]&lt;br /&gt;
&lt;br /&gt;
; Apptainer / Singularity&lt;br /&gt;
: Use this if you have an existing &amp;lt;tt&amp;gt;.sif&amp;lt;/tt&amp;gt; image, need a self-contained portable image you can copy between systems, or are working with workflows that already use Apptainer/Singularity.&lt;br /&gt;
: [[NEMO2/Containers/Apptainer|→ Apptainer details]]&lt;br /&gt;
&lt;br /&gt;
== Note on Docker ==&lt;br /&gt;
&lt;br /&gt;
Plain Docker is &#039;&#039;&#039;not available&#039;&#039;&#039; on NEMO. Both Enroot and Apptainer can pull Docker/OCI images directly from registries without a local Docker installation.&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16071</id>
		<title>NEMO2</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=NEMO2&amp;diff=16071"/>
		<updated>2026-05-12T16:02:22Z</updated>

		<summary type="html">&lt;p&gt;M Janczyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Serverraum-2024-09.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bwForCluster NEMO 2&#039;&#039;&#039; is dedicated to research in the bwHPC domains Neuroscience, Elementary Particle Physics, Microsystems Engineering and Material Science (NEMO).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | NEMO1 Migration&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* Still using NEMO1: &#039;&#039;&#039;[[NEMO1|Go To NEMO1 Legacy Wiki]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Users of NEMO1 must&#039;&#039;&#039; [[Registration/bwForCluster/NEMO2|&#039;&#039;&#039;re-register for NEMO2&#039;&#039;&#039;]] (only step C necessary). You keep your existing projects (Rechenvorhaben).&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate NEMO1 workspaces to NEMO2 workspaces|Migrate NEMO1 workspaces to NEMO2 workspaces]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[NEMO2/Migrate Moab to Slurm jobs|Migrate Moab to Slurm jobs]]&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#ffa833; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#f80; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Maintenance&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;strong&amp;gt;[https://www.nemo.uni-freiburg.de/nemo/stat/ Scheduled Power Maintenance 09.04.2024]&amp;lt;/strong&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#FEF4AB; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#FFE856; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | News and Events&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/news/ NEMO News]&lt;br /&gt;
* [https://www.nemo.uni-freiburg.de/nemo/stat/ NEMO Status, Usage and (Maintenance) Announcements]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#eeeefe; width:100%;&amp;quot; &lt;br /&gt;
| style=&amp;quot;padding:8px; background:#dedefe; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Training &amp;amp; Support&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* [[NEMO2/Start|Getting Started]]&lt;br /&gt;
* [https://training.bwhpc.de E-Learning Courses]&lt;br /&gt;
* Contact and [[NEMO2/Support|Support]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#deffee; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#cef2e0; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | User Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Registration]] for one of the bwHPC clusters&lt;br /&gt;
* [[NEMO2/Login|Login]]&lt;br /&gt;
* [[NEMO2/Hardware|Hardware and Architecture]]&lt;br /&gt;
* [[NEMO2/Hardware#File_Systems|File Systems]]&lt;br /&gt;
** [[NEMO2/Workspaces|Workspaces]]&lt;br /&gt;
** [[NEMO2/SDS_hd|Using SDS@hd on NEMO2]]&lt;br /&gt;
* Cluster Specific Software:&lt;br /&gt;
** [[NEMO2/Modules|Available Modules (Wiki)]] or [https://www.nemo.uni-freiburg.de/easybuild-modules/ Available Modules (HTML, incl. search)] on NEMO2&lt;br /&gt;
** [[NEMO2/Easybuild Modules|Easybuild Modules]] (hints for building your own software!)&lt;br /&gt;
** [[Conda]]&lt;br /&gt;
** [[NEMO2/Containers|Containers]] (Enroot and Apptainer/Singularity)&lt;br /&gt;
* [[NEMO2/Slurm|Submitting and managing Jobs with Slurm]] ([[HPC_Glossary#Batch_System|Batch System]])&lt;br /&gt;
* [[Development]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;  background:#e6e9eb; width:100%;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:8px; background:#d1dadf; font-size:120%; font-weight:bold;  text-align:left&amp;quot; | Cluster Funding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Please [[NEMO2/Acknowledgement|acknowledge]] the NEMO2 in your publications.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>M Janczyk</name></author>
	</entry>
</feed>