The goal of this step is for you to get familiar with the ESC working environment and check that everything is correctly set up for the school exercises.
If something doesn’t work as expected, please ask one of the organizers.
When using these computing resources you agree to comply with the “Regulation on the use of INFN computing resources”, available in Italian and English. Please read also the “General information note on processing of personal data by INFN”, available in Italian and English.
Wi-Fi access
You can use either the eduroam or the CeUB Wi-Fi networks. For the latter
you should have received your personal credentials.
SSH access to School computers
You have been assigned a personal account to access computing resources hosted at INFN-CNAF. Credentials are that of your INFN AAI account.
To log on the computer prepared for the School, named
esc26.cloud.cnaf.infn.it, please use your AAI username.
[me@mylaptop ~]$ ssh username@esc26.cloud.cnaf.infn.it
username@esc26.cloud.cnaf.infn.it's password:
Last login: ...
[username@esc26-01 ~]$
The available server is equipped with four nVidia H100 80GB GPUs, 192 CPU cores and 1.4 TB of RAM.
The name of the machine can be tedious to type, but you can get around it by creating a config file for ssh. With the ssh configuration on your laptop:
[me@mylaptop ~]$ cat ~/.ssh/config
Host esc
Hostname esc26.cloud.cnaf.infn.it
User username
[me@mylaptop ~]$ ssh esc
username@esc26.cloud.cnaf.infn.it's password:
Last login: ...
[username@esc26-01 ~]$
To further simplify the login to esc, you can use an SSH key. You first need
to create it (if you don’t have one already), copy it remotely on
esc and set it in your SSH configuration.
[me@mylaptop ~]$ ssh-keygen -C username@esc -f ~/.ssh/student_esc -N ""
Generating public/private ed25519 key pair.
...
[me@mylaptop ~]$ ssh-copy-id -i ~/.ssh/student_esc esc
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/me/.ssh/student_esc.pub"
...
username@esc26.cloud.cnaf.infn.it's password:
...
[me@mylaptop ~]$ cat ~/.ssh/config
Host esc
Hostname esc26.cloud.cnaf.infn.it
User username
IdentityFile ~/.ssh/student_esc
[me@mylaptop ~]$ ssh esc
Last login: ...
[username@esc26-01 ~]$
Your shell is bash.
Please note that:
- The
esccomputer is not assigned exclusively to a student. - Your home directory will be wiped out and your
usernameaccount will be disabled soon after the end of the School. Please make sure to save somewhere else what you want to keep.
School material
All the school hands-on material is included in a git repository. Get it using:
[username@esc26-01 ~]$ git clone https://github.com/infn-esc/esc26.git
The repository contains also these pages.
Check the environment
Once logged into esc, verify that the environment is set up correctly:
[username@esc26-01 ~]$ gcc --version
gcc (GCC) 14.3.1 20251022 (Red Hat 14.3.1-4)
...
[username@esc26-01 ~]$ gdb --version
GNU gdb (AlmaLinux) 16.3-3.1.el10_2
...
[username@esc26-01 ~]$ valgrind --version
valgrind-3.26.0
[username@esc26-01 ~]$ module load gcc-toolset-15
[username@esc26-01 ~]$ gcc --version
gcc (GCC) 15.2.1 20260123 (Red Hat 15.2.1-7)
...
As you can see from the last command, beside the native compiler (gcc v. 14.3), there is also a more recent version (gcc v. 15.2), available through environment modules.
Editing source code
Editing locally
On esc you can find several editors available, such as vim and emacs.
Editing remotely
The best option to edit files remotely is to use Visual Studio Code with its remote development extension.
Alternatively you could edit the source code for the exercises on your laptop,
synchronizing them with the esc machine, for example using one of the
following:
-
scp: You can copy files remotely usingscp, in both directions. -
sshfs: You can mount youreschome directory on your laptop viasshfs. -
rsync: You can synchronize your local workspace with the one you keep onescusingrsync. Please refer to thersyncmanual to fully understand the meaning of the different options, so to avoid mistakes that could cause loss of data.
For all these options to work seamlessly, however, you should first simplify
your use of SSH to connect to esc, as described above.
Environment configuration for MPI hands-on
.bashrc configuration to locate openmpi bins and libs
OpenMPI is installed on the nodes, but it is needed to add to the .bashrc the following exports:
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/comm_libs/13.0/hpcx/hpcx-2.25.1/ompi/bin:$PATH
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/compilers/bin:$PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/comm_libs/13.0/hpcx/hpcx-2.25.1/ompi/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/compilers/lib:$LD_LIBRARY_PATH
Environment configuration for TBB hands-on
Set the environment to locate the TBB library
[me@esc1 ~]$ source /opt/intel/oneapi/tbb/latest/env/vars.sh
[me@esc1 ~]$ echo $TBBROOT
/opt/intel/oneapi/tbb/2022.2/env/..
Enviroment configuration for CUDA hands-on
Set the enviroment to locate the CUDA toolkit
[me@esc1 ~]$ export PATH=/usr/local/cuda-13/bin:$PATH
[me@esc1 ~]$ export LD_LIBRARY_PATH=/usr/local/cuda-13/lib64:$LD_LIBRARY_PATH
[me@esc1 ~]$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Aug_20_01:58:59_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.88
Build cuda_13.0.r13.0/compiler.36424714_0