EESSI - European Environment for Scientific Software Installations¶
The European Environment for Scientific Software Installations (EESSI, pronounced as "easy") is a collaboration between different European partners in HPC community. The goal of this project is to build a common stack of scientific software installations for HPC systems and beyond, including laptops, personal workstations and cloud infrastructure.
The EESSI software stack is available on the ULHPC platform, and gives you access to software modules maintained by the EESSI project and optimized for the CPU architectures available on the ULHPC platform.
UL HPC systems compute nodes¶
On a compute node, to set up the EESSI environment, simply load the EESSI module:
module load EESSI
The first usage may be slow as the files are downloaded from an upstream Stratum 1 server, but the files are cached locally.
You should see the following output:
$ module load EESSI
EESSI/2023.06 loaded successfully
Your environment is now set up, you are ready to start running software provided by EESSI! To see which modules (and extensions) are available, run:
module avail
Here is a short excerpt of the output produced by module avail:
----- /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/amd/zen2/modules/all -----
ALL/0.9.2-foss-2023a ESPResSo/4.2.1-foss-2023a foss/2023a h5py/3.9.0-foss-2023a
ParaView/5.11.2-foss-2023a PyTorch/2.1.2-foss-2023a QuantumESPRESSO/7.2-foss-2022b VTK/9.3.0-foss-2023a
ELPA/2022.05.001-foss-2022b foss/2022b foss/2023b (D) OpenFOAM/11-foss-2023a
...
Accessing development versions of EESSI
New releases of EESSI are hidden while they are under development. However, you can still access the hidden modules. To view releases under development enable reporting of hidden modules, with
$ module --show_hidden avail
$ module --show_hidden avail EESSI
$ module load EESSI/2025.06
For more precise information, please refer to the official documentation.
Grid'5000 compute nodes¶
The EESSI environment is also accessible on Grid'5000 compute nodes, but EESSI must first be installed. This article explains the installation of EESSI in a node running Debian, which is the default operating system for Grid'5000. The installation process is similar if you prefer to deploy another operating system.
Root rights are required to install EESSI. Start an interactive session in a compute node and get access to the sudo command with the sudo-g5k command.
sudo-g5k
The installation of EESSI requires first the installation of CernVM-FS which the underlying file system used to distribute the software binaries.
-
Start by adding the GPG keys for the CernVM-FS repository.
wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb dpkg-deb --raw-extract cvmfs-release-latest_all.deb cvmfs-release sudo cp cvmfs-release/etc/apt/trusted.gpg.d/cernvm.gpg /etc/apt/trusted.gpg.d/cernvm.gpg
-
Add the CernVM-FS repository in the list of sources.
sudo cp cvmfs-release/usr/share/cvmfs-release/cernvm.list.$(lsb_release --codename | awk '{print $2}') /etc/apt/sources.list.d/cernvm.listInstallation in Debian 13 (trixie)
The APT interface was updated in Debian 13. Currently Debian 13 (trixie) is only supported by the experimental release of CERN VM-FS. Install the APT sources with the following command:
sudo bash -c 'cat <<EOF > /etc/apt/sources.list.d/cernvm.sources Types: deb URIs: http://cvmrepo.s3.cern.ch/cvmrepo/apt/ Suites: trixie-testing Components: main Signed-By: /etc/apt/trusted.gpg.d/cernvm.gpg EOF'
-
Install CernVM-FS.
sudo apt update sudo apt install cvmfs
Now the EESSI can be installed and configured from the official package.
-
Download the package for EESSI.
wget https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
-
Install and configure EESSI.
sudo dpkg -i cvmfs-config-eessi_latest_all.deb # create client configuration file for CernVM-FS (no squid proxy, 10GB local CernVM-FS client cache) sudo bash -c "echo 'CVMFS_CLIENT_PROFILE="single"' > /etc/cvmfs/default.local" sudo bash -c "echo 'CVMFS_QUOTA_LIMIT=10000' >> /etc/cvmfs/default.local" # make sure that EESSI CernVM-FS repository is accessible sudo cvmfs_config setup
The EESSI environment can now be accessed by sourcing the appropriate initialization script.
source /cvmfs/software.eessi.io/versions/2023.06/init/lmod/bash
Installing in all nodes of a job¶
The installation process for EESSI must be performed every time you access a new compute node. If your job involves multiple nodes, you have to repeat the process in each compute node.
The UL HPC provides a repository of installation scripts that automate the installation of EESSI in all nodes of a Grid'5000 job. To install, clone the repository on your Grid'5000 home directory that is mount on all login and compute nodes of a site:
git clone https://github.com/ULHPC/Installing-EESSI-in-G5K-nodes.git
Then, launch a job, change into the repository directory in a login node, and run the installation script:
cd Installing-EESSI-in-G5K-nodes
./install-eessi-in-g5k-job-nodes <job ID>
Accessing the job ID
To get the job ID of a submitted job, use the oarstat command.
$ oarstat --user "${USER}"
Job id Name User Submission Date S Queue
---------- -------------- -------------- ------------------- -------- ----------
<job ID> <user name> <date> <status> <queue>
The first column of the output contains the job ID.
Installation scripts
The installation repository is composed by a couple of installation scripts. The main script extracts the nodes of the job, and then lunches an installation script to all nodes of the job with cluster shell (clush).
install-eessi-in-g5k-job-nodes
#!/usr/bin/bash
set -euo pipefail
declare node_list=""
declare job_id="${1}"
while [ -z "${node_list}" ]; do
node_list=$(oarstat --full --job "${job_id}" | awk 'BEGIN {FS="="} $1 ~ /assigned_hostnames/ {gsub(" ", "", $2); gsub(".luxembourg.grid5000.fr", "", $2); gsub("+", ",", $2); print $2}')
[ -z "${node_list}" ] && sleep 5
done
clush --dshbak -w "${node_list}" "${PWD}/install-eessi-in-g5k"
install-eessi-in-g5k
#!/usr/bin/bash
set -euo pipefail
declare DEBIAN_FRONTEND=noninteractive
main() {
sudo-g5k
install_cvmfs
install_eessi
}
install_cvmfs() {
# Install CMFS keys
if [ ! -f /tmp/cvmfs-release-latest_all.deb ]; then
wget --output-document=/tmp/cvmfs-release-latest_all.deb https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
fi
dpkg-deb --raw-extract /tmp/cvmfs-release-latest_all.deb /tmp/cvmfs-release
sudo cp /tmp/cvmfs-release/etc/apt/trusted.gpg.d/cernvm.gpg /etc/apt/trusted.gpg.d/cernvm.gpg
# Add CVMFS sources
sudo cp /tmp/cvmfs-release/usr/share/cvmfs-release/cernvm.list.$(lsb_release --codename | awk '{print $2}') /etc/apt/sources.list.d/cernvm.list
# Install CVMFS
sudo apt --assume-yes update
sudo apt --assume-yes install cvmfs
cleaup_cvmfs_installation_files
}
cleaup_cvmfs_installation_files() {
rm /tmp/cvmfs-release-latest_all.deb
rm -r /tmp/cvmfs-release
}
install_eessi() {
# Install EESSI package
if [ ! -f /tmp/cvmfs-config-eessi_latest_all.deb ]; then
wget --output-document=/tmp/cvmfs-config-eessi_latest_all.deb https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
fi
sudo dpkg -i /tmp/cvmfs-config-eessi_latest_all.deb
# create client configuration file for CernVM-FS (no squid proxy, 10GB local CernVM-FS client cache)
sudo bash -c "echo 'CVMFS_CLIENT_PROFILE="single"' > /etc/cvmfs/default.local"
sudo bash -c "echo 'CVMFS_QUOTA_LIMIT=10000' >> /etc/cvmfs/default.local"
# make sure that EESSI CernVM-FS repository is accessible
sudo cvmfs_config setup
cleanup_eessi_installation_files
}
cleanup_eessi_installation_files() {
rm /tmp/cvmfs-config-eessi_latest_all.deb
}
main
