Topics on HPC

Connection setup

Remote HPC connection setup

For users who do not wish to run Providentia locally, there is the option to run it on a remote HPC.

For BSC users, Providentia has been designed to be run optimally on the MareNostrum5 and Nord4 HPC machines. It is recommended that users run Providentia on MareNostrum5 as it is guaranteed that there will be no lack of computational resources.

As users connect to these remote machines by ssh, the graphical refresh speed of Providentia is limited by x11 forwarding, thus in order to exploit the full potential of the Providentia, the connections to these machines should be setup in an optimal fashion.

Note that not all remote BSC HPC machines have access to the same data locations. In case you want to load observations that are located on the /esarchive, then you should run Providentia on Nord4, as MareNostrum5 does not have access to the /esarchive.

.ssh/config

To optimise the ssh connection to the remote HPC machine, you will modify the .ssh/config file in the $HOME directory of the local machine used to connect to the remote machines following the examples for the connection to the MareNostrum5 and Nord4 BSC machines:

Host mn5
    HostName glogin4.bsc.es
    User bscXXXXXX
    IdentityFile ~/.ssh/id_rsa
    ForwardX11 yes
    ForwardX11Trusted yes
    Compression yes
    Ciphers aes128-gcm@openssh.com
    ForwardX11Timeout 7d
Host nord4
    HostName n4login0.bsc.es
    User bscXXXXXX
    IdentityFile ~/.ssh/id_rsa
    ForwardX11 yes
    ForwardX11Trusted yes
    Compression yes
    ForwardX11Timeout 7d
    Ciphers aes128-gcm@openssh.com

ForwardX11 yes ensures x11 forwarding is active.
ForwardX11Trusted yes ensures X11 forwarding is trusted.
Compression yes compresses the connection (i.e. speeds up).
Ciphers aes128-gcm@openssh.com sets a speed-optimised cipher for the connection to ensure less time is spent on encryption/decryption.
ForwardX11Timeout 7d ensures the x11 forwarding does not time out (it times out by default after 15 minutes on some machines).

.bashrc for BSC HPC machines

For BSC users, you should also have these lines in your .bashrc file in the $HOME directory of the remote HPC machine:

if [ "$BSC_MACHINE" == "mn5" ]; then
    module use /gpfs/projects/bsc32/software/rhel/9.2/modules/all
elif [ $BSC_MACHINE == "nord4" ]; then
   module load nord3-singu
   module load bsc/current
   module use /gpfs/projects/bsc32/software/suselinux/11/modules/all
   unset PYTHONSTARTUP
fi

External connections (VPN)

If you are connecting to a HPC machine externally (i.e. via VPN), then the ssh connection configuration on the local machine to the gateway machine you are connecting to should be setup in the exact same way.

Running the tool on debug

If you are on Nord4 or Marenostrum 5, this will request an interactive session:

./bin/providentia

After some seconds you will have entered onto an allocated node and the dashboard will be launched. If you want to launch it multiple times and avoid waiting in the queue you can use the debug mode. To do this, you will need to run the tool using the --debug flag and then rerun it:

./bin/providentia --debug
./bin/providentia

Mounting HPC filesystems

It is possible to mount filesystems, such as esarchive from MN5, on your personal computer. This can then be used to load observations/models that are stored remotely on these filesystems while using Providentia on your local machine. The Providentia data paths should be updated to point to the local mounted directory in settings/data_paths.yaml.

How this is done varies by operating system. In this section you will find information on how to mount esarchive, you can use this as inspiration for other filesystems.

Mounting esarchive

Linux

On the Linux the esarchive can be setup permanently.

Firstly, create a local directory where you want the esarchive to be mounted, e.g. /localdir/tomount/esarchive.

Next, add the following line to the /etc/fstab file (changing your BSC username and local directory):

sshfs#bscXXXXXX@dt01.bsc.es:/gpfs/archive/bsc32/esarchive /localdir/tomount/esarchive fuse defaults,allow_other,reconnect,ro 0 0

Install sshfs if it is not in your computer yet:

sudo apt-get install sshfs

The esarchive can finally be mounted by:

sudo mount -av

To unmount the esarchive, the following command can be used:

sudo umount /localdir/tomount/esarchive

Mac

On Mac, the mounting cannot be setup permanently, but will stay open while the terminal session is active. Before trying to setup the connection you must install FUSE and SSHFS, please follow the instructions here: https://earth.bsc.es/wiki/doku.php?id=computing:addesarchive&s[]=sshfs.

After that is done, create a local directory where you want the esarchive to be mounted, e.g. /localdir/tomount/esarchive.

Then run the following command (changing your BSC username and local directory):

sshfs bscXXXXXX@dt01.bsc.es:/gpfs/archive/bsc32/esarchive /localdir/tomount/esarchive -o volname=esarchive,defer_permissions,allow_other,IdentityFile=$HOME/.ssh/id_rsa,reconnect,ro

To unmount the esarchive, the following command can be used:

diskutil umount force /localdir/tomount/esarchive

Windows

As present, the esarchive cannot be mounted on Windows machines.