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 federation, ask the organization for an alternative access upon your arrival.
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.
Most of the exercises will be done on the following host: esc26s.cloud.cnaf.infn.it (IP: 131.154.98.210, that also has the esc26s-01 hostname).
To log on this server, prepared for the School, just SSH on it using your AAI username.
[me@mylaptop ~]$ ssh username@esc26s.cloud.cnaf.infn.it
username@esc26s.cloud.cnaf.infn.it's password:
Last login: ...
[username@esc26s-01 ~]$
From esc26s-01 you can then log onto the other School computers. There
are two servers available, named esc2s-01 and esc26s-02. Both
are equipped with four nVidia H100 80GB GPUs, 192 physical CPU cores and 1.5 TB of
RAM. We will use the second one just for the MPI exercises, and you should not log on it unless the tutors tell you to this explicitely.
NOTE that esc26s-02 is not a public hostname and it is known only within esc26s-01.
The names of the machines 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 you can also avoid the explicit jump through the
esc26s-01 host and forward the X11 display and the SSH agent.
[me@mylaptop ~]$ cat ~/.ssh/config
Host esc1
Hostname esc26s.cloud.cnaf.infn.it
User username
ForwardX11 yes
ForwardAgent yes
[me@mylaptop ~]$ ssh esc1
username@esc26s-01's password:
Last login: ...
[username@esc26-01 ~]$
To further simplify the login to esc1, you can use an SSH key. You first need
to create it (if you don’t have one already), copy it remotely on esc1 and set it in your SSH configuration.
[me@mylaptop ~]$ ssh-keygen -C username@esc1 -f ~/.ssh/id_rsa_student_esc
Generating public/private rsa key pair.
...
[me@mylaptop ~]$ ssh-copy-id -i ~/.ssh/id_rsa_student_esc esc1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/me/.ssh/id_rsa_student_esc.pub"
...
username@esc26s-01's password:
...
[me@mylaptop ~]$ cat ~/.ssh/config
Host esc1
Hostname esc26s.cloud.cnaf.infn.it
User username
IdentityFile ~/.ssh/id_rsa_student_esc
ForwardX11 yes
ForwardAgent yes
[me@mylaptop ~]$ ssh esc1
Last login: ...
[username@esc26s-01 ~]$
Now, to allow passwordless authentication between the to esc nodes for the MPI exercises, you should copy the key-pair and the config file in ~/.ssh/ of esc1 (which is, by the way, also shared with esc2).
[me@mylaptop ~]$ scp .ssh/id_rsa_student_esc esc1:.ssh/
[me@mylaptop ~]$ scp .ssh/id_rsa_student_esc.pub esc1:.ssh/
[me@mylaptop ~]$ scp .ssh/config esc1:.ssh/
Now edit the .ssh/config file in esc1 to add an entry also for esc2.
[username@esc26s-01 ~]$ cat ~/.ssh/config
Host esc1
Hostname esc26s.cloud.cnaf.infn.it
User username
IdentityFile ~/.ssh/id_rsa_student_esc
ForwardX11 yes
ForwardAgent yes
Host esc2
Hostname esc26s-02
User username
IdentityFile ~/.ssh/id_rsa_student_esc
ForwardX11 yes
ForwardAgent yes
Now you should be able to login passwordless:
- from your laptop to esc1
- from esc1 to esc2.
- from esc2 to esc1
This passwordless login(s) will be important for the MPI exercises.
Try the following, type yes when asked to add a fingerprint (this will be asked only during the first attempt).
[me@mylaptop ~]$ ssh esc1
[username@esc26s-01 ~]$ ssh esc2
[username@esc26s-02 ~]$ ssh esc1
[username@esc26s-01 ~]$
Your shell is bash.
Please note that:
- Each
esccomputer is not assigned exclusively to a student. - Your home directory is shared between all
esccomputers - 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@esc26s-01 ~]$ git clone https://github.com/infn-esc/sesame26.git
The repository contains also these pages.
Check the environment
Once logged into esc, verify that the environment is set up correctly:
[username@esc26s-01 ~]$ gcc --version
gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11)
...
[username@esc26s-01 ~]$ gdb --version
GNU gdb (AlmaLinux) 16.3-2.el9
...
[username@esc26s-01 ~]$ valgrind --version
valgrind-3.25.1
[username@esc26s-01 ~]$ scl enable gcc-toolset-15 -- gcc --version
gcc (GCC) 15.1.1 20250521 (Red Hat 15.1.1-2)
...
As you can see from the last command, beside the native compiler (gcc v. 11.5), there are also more recent version (gcc v. 14.2 and 15.1), available through a so-called software collection.
To always work with the more recent version, enable the toolset in a new shell:
[username@esc26s-01 ~]$ scl enable gcc-toolset-14 bash
[username@esc26s-01 ~]$ gcc --version
gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
[username@esc26s-01 ~]$ scl enable gcc-toolset-15 bash
[username@esc26s-01 ~]$ gcc --version
gcc (GCC) 15.1.1 20250521 (Red Hat 15.1.1-2)
...
Editing source code
Editing locally
On esc you can find several editors available, such as vim, nvim,
hx, and emacs. If the X display is available, graphical editors will
open a window on your laptop; the network latency however may not be
good enough to give you a fine experience. Just try.
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
To execute the MPI exercises you should be able to login passwordless among the esc nodes as shown in the previous paragraphs.
OpenMPI is installed and configured on the esc nodes. Just check that the “mpirun” command is avaible in this way:
[username@esc26s-01 ~]$ which mpirun
/opt/hpcx-v2.25.1-gcc-doca_ofed-redhat9-cuda13-x86_64/ompi/bin/mpirun
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