You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

Welcome to the GPU Cluster introduction page of the TU-Wien Datalab. 
This page will provide you with a short overview about the cluster, login methods and a short introduction to Slurm. Further information about Slurm is available on the official documentation

You can join our slack channel: https://join.slack.com/t/gpuclu-tuw/shared_invite/zt-2g2qzpz3b-O1pmYVXO3kkhP_HhPMKKHQ,  if you have any issue you can reach us via email to datalab@tuwien.ac.at 

Creating a User

To access the Slurm cluster you first need to have a datalab user account in https://login.datalab.tuwien.ac.at where you can configure your ssh public key. You can create this account yourself if you have TU Wien credentials, otherwise you need to contact us.

Once you created your own account you need to contact datalab@tuwien.ac.at to provide you with the permission to login.


Login to the Cluster

SSH (Secure Shell):

Afterwards you may remotely login to the head node of the cluster where you put your apply your jobs

$ ssh cluster.datalab.tuwien.ac.at

Jupyter Notebook:

If you want to access the cluster via a Jupyter notebook you can instead call https://jupyter.datalab.tuwien.ac.at from  your browser you need to have a password set in the previous step when creating your user.

Slurm Cluster

Cluster Nodes:

HostnameCPU TypeCPUsCoresThreadsGPU TypeCountGPU Mem
a-a100-o-1AMD2322A100880GB
a-a100-o-2AMD2642A100880GB
a-a100-os-3AMD2642A100840GB
a-a100-os-4AMD2642A100840GB
a-a100-q-5AMD2642A100480GB
a-a100-q-6AMD2322A100480GB
a-a100-qs-7AMD2642A100440GB
a-a100-qs-8AMD2642A100440GB
i-v100-o-1Intel2122V100832GB
i-v100-h-2Intel2282V1001632GB
i-v100-q-3Intel282V100832GB
i-v100-q-4Intel282V100832GB

Storage:

The main Storage used is Ceph as a network file system that includes /home and /share on all servers

  • /home for user's home directory
  • /share to have groups directory for collaborations (please reach us for special groups and permissions)
  • /scratch is a local nvme storage RAID 0 it exist only on GPU nodes - they are mounted on head nodes as NFS as well.

Partitions (queues):

  • GPU-a100: a-a100-o-[1-2],a-a100-q-[5-6]
  • GPU-a100s: a-a100-os-[3-4],a-a100-qs-[7-8]
  • GPU-v100: i-v100-o-1,i-v100-h-2,i-v100-q-[3-4]

Basic Slurm commands

  • sinfo gives information which partitions (queue) are available for job submission. 
  • scontrol is used to view SLURM configuration including: job, job step, node, partition, reservation, and overall system configuration. Without a command entered on the execute line, scontrol operates in an interactive mode and prompt for input. With a command entered on the execute line, scontrol executes that command and terminates.
  • scontrol show job 32 shows information on the job with number 32.
  • scontrol show partition shows information on available partitions.
  • squeue to see the current list of submitted jobs, their state and resource allocation. Here is a description of the most important job reason codes returned by the squeue command.
  • scancel 32 to cancel your job number 32.

Submitting a batch job:

Processing computational tasks requires submitting jobs to the Slurm scheduler. Slurm offers two commands to submit jobs: sbatch and srun. Always use sbatch to submit jobs to the scheduler, unless you need an interactive terminal. Otherwise only use srun within sbatch for submitting job steps within an sbatch script context.

The command sbatch accepts script files as input. Scripts should be written in bash, and should include the appropriate Slurm directives at the top of the script telling the scheduler the requested resources. Read on to learn more about how to use Slurm effectively.

For interactive session as in the following example:

$ srun --pty bash

You simply create you bash script and run it with the command sbatch how in the following examples:


A small example job submission script called hello-world.sh 

#!/bin/bash

#SBATCH --partition=GPU-a100 		# select a partition i.e. "GPU-a100"
#SBATCH --nodes=2 					# select number of nodes
#SBATCH --ntasks-per-node=32 		# select number of tasks per node
#SBATCH --time=00:15:00 			# request 15 min of wall clock time
#SBATCH --mem=2GB 					# memory size required per node

echo "hello, world"

the part between the shebang and your script by putting #SBATCH [option] you can define the resources needed for your script and this is tunable please check the sbatch command man pages for other options.


to submit the job:

$ sbatch hello-world.sh


Links
















  • No labels