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
Dockerfile
s; - Another repository for
Dockerfile
s 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