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: PyTorch1.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:
- DockerHub for a list of latest official CMSSW Docker images;
- This repository for the corresponding
Dockerfiles; - Another repository for
Dockerfiles for building CMSSW on older platforms.
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
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
/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=...
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