CSCS
The following section provides details on how to run Sencast on the supercomputer Piz Daint at CSCS.
Register for an account
Get access permission to Daint from your local IT Admin. You will be required to set up multifactor authentication
Access using Jupyter
Login at https://jupyter.cscs.ch/
Select Node Type = Multicore
Click Launch Jupyterlab
Select Terminal
Access using ssh
This access is only valid for 24 hours after which the process will need to be repeated. For details on how to automate see here: https://user.cscs.ch/access/auth/mfa and for Windows see here: https://user.cscs.ch/access/auth/mfa/windows
Login at https://sshservice.cscs.ch/
Click Get a signed key follow the instructions and download the private and public key
Move the keys to your users .ssh directory
mv /downloads/location/cscs-key-cert.pub ~/.ssh/cscs-key-cert.pub
mv /download/location/cscs-key ~/.ssh/cscs-key
chmod 0600 ~/.ssh/cscs-key
Login to the CSCS entrance server
ssh -A username@ela.cscs.ch
Switch to Piz Daint
ssh username@daint.cscs.ch
Install Sencast
This step must be completed on the command line after logging into Piz Daint using one of the above methods.
Load the required modules
module load daint-mc
module load sarus
Clone the repo for sencast to your user area:
cd ~
git clone https://github.com/eawag-surface-waters-research/sencast.git
Update the environment and parameters scripts that you want to run.
Pull the image you want from dockerhub:
srun -C mc -A em09 sarus pull --login eawag/sencast:0.0.2
then enter your credentials for the repository (There is no prompt)
<username> <password>
The docker image (now for sarus) is automatically saved in ${SCRATCH}/.sarus
If this fails try running the command again.
Run Sencast
Move to the scratch drive and create an output folder don’t save large amounts of data to user area Data stored in the scratch drive is removed after 30 days.
cd ${SCRATCH}
mkdir DIAS
Create a submission script containing the following (adjust details to match your user) - make sure you are writing to scratch.
vim run.sh
#!/bin/bash -l
#SBATCH --job-name="sencast"
#SBATCH --account="em09"
#SBATCH --mail-type=ALL
#SBATCH --mail-user=username@eawag.ch
#SBATCH --time=24:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-core=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=36
#SBATCH --partition=normal
#SBATCH --constraint=mc
#SBATCH --hint=nomultithread
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
module load daint-mc
module load sarus
image='eawag/sencast:0.0.2'
envvars='docker.ini'
params='parameters.ini'
filepath="${SCRATCH}/DIAS"
cd ~/sencast
srun sarus run --mount=type=bind,source=${filepath},destination=/DIAS --mount=type=bind,source=$(pwd),dst=/sencast ${image} -e ${envvars} -p ${params}
:w save file
:q exit vim
Then you can run Sencast:
sbatch run.sh
See the status of your job:
squeue -u username
You get an email when the job begins and if it fails. A live log is deposited in the directory from where you start the run.