Skip to content

Software

Packages available through yum on CentOS 7 can be installed based on reasonable request.

Singularity / Apptainer

Modern compilers and various python packages are available through Apptainer (formerly Singularity).

An image file contains all the necessary packages, and can be used as follows :

/home/software/bin/run-env.sh /home/software/singularity/base.simg \
  python3 my_program.py

The list of maintained image files is below:

  • /home/software/singularity/base.simg: Latest GCC, CMake, OpenCL, ROOT
  • /home/software/singularity/pytorch.simg: PyTorch 1.13
  • /home/software/singularity/tf-2.14.0.simg: TensorFlow 2.14.0

They can be updated in our Github repository.

Singularity also accepts Docker images. Here are some useful links:

Using singularity shell

If for some reason you need to create a virtual environment and want to run needed software in that environment interactively, singularity shell is a good way to go.

For example: for a given software development you need to have python3.10 available.

First, create the directory for the virtual environment and enter it:

mkdir venv && cd $_

Pull the needed Docker image and build it:

apptainer pull docker://python:3.10.13-slim-bookworm
apptainer build --sandbox venv python_3.10.13-slim-bookworm.sif

Now you can enter the virtual environment:

apptainer shell --writable venv/

By default /home is already attached. Still, the data you need to access is probably not located at /home. Therefore, in order to attach for example /scratch/persistent, you first need to create this directory inside your virtual environment:

mkdir -p /scratch/persistent

and only then you can bind the /scratch/persistent to your environment:

apptainer shell --bind /scratch/persistent --writable venv

Now you can access your data from /scratch/persistent

CMS software (CMSSW)

Initializing the CMSSW environment is done as follows:

source /cvmfs/cms.cern.ch/cmsset_default.sh

In case you haven't set up a CMSSW area (of your liking), you can create one with:

cmsrel CMSSW_X_Y_Z
Here you have to replace CMSSW_X_Y_Z with the CMSSW version you want to use. Once you have it set up, just navigate to that area and execute cmsenv.

It is worth noting that since CMSSW_12_Y_Z the default python version is python3.

Jupyter notebook

To launch the jupyter notebook server on the login node, run the following on manivald:

/home/software/bin/run-env.sh \
  /home/software/singularity/base.simg jupyter notebook
Note that you can use a different singularity image instead of /home/software/singularity/base.simg, as long as it has jupyter installed in it.

If successful, there will be a message that contains the URL of the form:

Or copy and paste one of these URLs:
    http://localhost:XXXX/?token=...
where XXXX is a port number assigned to you randomly, and token is a long string of letters and numbers.

To make that URL accessible from your laptop, open an SSH tunnel from your laptop to manivald, on the port XXXX, replacing it with the numerical value of the port, and replacing MYUSER with your user name on manivald:

ssh -N -L XXXX:localhost:XXXX MYUSER@manivald.hep.kbfi.ee

Now you can copy-paste the URL into your browser on the laptop to access the jupyter notebook