Mudanças entre as edições de "Cluster"

De Instituto de Física - UFRGS
(Submeter jobs)
 
(20 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
== Submeter jobs ==
+
= Clusters Ada and Lovelace - Instituto de Física UFRGS =
Para rodar, criar um arquivo (script.sh) com o seguinte conteúdo.
+
  
  #!/bin/bash  
+
 
  #SBATCH -n 1 # Number of cores
+
The clusters are located at Instituto de Física da UFRGS, in Porto Alegre.
  #SBATCH -N 1 # Number of nodes  
+
 
  #SBATCH -t 0-00:05 # Runtime in D-HH:MM  
+
== Infraestruture ==
  #SBATCH -p short # Partition to submit to
+
 
  #SBATCH --qos qos_short # QOS  
+
=== Management Software ===
 +
 
 +
<pre>
 +
Slurm Workload Manager
 +
 
 +
Site :https://slurm.schedmd.com/
 +
</pre>
 +
 
 +
=== Hardware in the  ada nodes ===
 +
 
 +
<pre>
 +
CPU: x86_64
 +
RAM: varies between 8 GB - 16 GB
 +
GPU: some nodes have NVIDIA CUDA
 +
Storage: storage with 50GB  quota per user
 +
</pre>
 +
 
 +
=== Hardware in the lovelace nodes ===
 +
 
 +
<pre>
 +
CPU: Ryzen (32 and 2*24 cores)
 +
RAM: varia entre 64 GB
 +
GPU: two nodes have NVIDIA CUDA
 +
Storage: storage with 50GB  quota per user
 +
</pre>
 +
 
 +
=== Software in the nodes ===
 +
 
 +
<pre>
 +
OS: Debian 8 (in cluster ada)
 +
OS: Debian 11 (in cluster lovelace)
 +
Basic packages installed:
 +
GCC
 +
gfortran
 +
python2
 +
python3
 +
</pre>
 +
 
 +
== How to use ==
 +
 
 +
=== Conect to  cluster-slurm ===
 +
 
 +
The clusters are accessible through server cluster-slurm.if.ufrgs.br (ou ada.if.ufrgr.br). To access through a unix-like system use:
 +
<pre>
 +
ssh <user>@cluster-slurm.if.ufrgs.br
 +
</pre>
 +
 
 +
or
 +
 
 +
<pre>
 +
ssh <user>@ada.if.ufrgs.br
 +
</pre>
 +
 
 +
Under windows you may use winscp.
 +
 
 +
If you are not registered, ask for registration sending an email to fisica-ti@ufrgs.br
 +
 
 +
=== Using softwares in the cluster ===
 +
 
 +
To execute a software in a cluster job this program must:
 +
 
 +
1. Be already installed
 +
 +
OR
 +
 
 +
2. Be copied to the user home
 +
 
 +
Ex:
 +
<pre>
 +
scp my_programm <user>@cluster-slurm.if.ufrgs.br:~/
 +
</pre>
 +
 
 +
If you are compiling your program in the cluster, one option is to user <code>gcc</code>.
 +
 
 +
Ex:
 +
<pre>
 +
scp -r source-code/ usuario@cluster-slurm.if.ufrgs.br:~/
 +
ssh <user>@cluster-slurm.if.ufrgs.br:~/
 +
cd source-code
 +
gcc main.c funcoes.c
 +
</pre>
 +
This will generate file <code>a.out</code>, which is the executable.
 +
 
 +
Being accessible by methods 1 or 2, the program can be executed in the cluster through one <strong>JOB</strong>.
 +
 
 +
OBS: If you execute your executable without submitting as <strong>JOB</strong>, it will be executed in the server, not in the nodes. This is not recommended since the server computational capabilities are limited and you will be slowing down the server for everyone else. 
 +
 
 +
=== Criating and executing a Job ===
 +
 
 +
Slurm manages jobs and each job represents a program or task being executed.
 +
 
 +
To submit a new job, you must create a script file describing the requisites and characteristics of the Job.
 +
 
 +
A typical example of the content of a submission script is below
 +
 
 +
Ex: <code>job.sh</code>
 +
 
 +
<pre>
 +
#!/bin/bash  
 +
#SBATCH -n 1 # Number of cpus to be allocated (Despite the # these SBATCH lines are compiled by the slurm manager!)
 +
#SBATCH -N 1 # Nummber of nodes to be allocated  (You don't have to use all requisites, comment with ##)
 +
#SBATCH -t 0-00:05 # Limit execution time (D-HH:MM)
 +
#SBATCH -p long # Partition to be submitted
 +
#SBATCH --qos qos_long # QOS  
 
    
 
    
  ./a.out
+
# Your program execution commands
 +
./a.out
 +
</pre>
  
As partições possuem um qos associado, com o mesmo nome, adicionando "qos_" a frente do nome:
+
In option --qos, use the partition name with "qos_" prefix:
partição: short -> qos: qos_short
+
 
partição: long -> qos: qos_long
+
partition: short -> qos: qos_short -> limit  2 weeks
 +
 
 +
partition: long -> qos: qos_long -> limit de 3 month
 
    
 
    
 +
If you run on GPU, specify the "generic resource" gpu in cluster ada:
  
Caso deseje rodar em gpu, é necessário especificar a fila e pedir explicitamente a ''gereric resource'' gpu:
+
<pre>
  #!/bin/bash  
+
#!/bin/bash  
  #SBATCH -n 1 # Number of cores
+
#SBATCH -n 1  
  #SBATCH -N 1 # Number of nodes
+
#SBATCH -N 1
  #SBATCH -t 0-00:05 # Runtime in D-HH:MM
+
#SBATCH -t 0-00:05  
  #SBATCH -p gpu # Partition to submit to
+
#SBATCH -p long
  #SBATCH --qos qos_gpu # QOS
+
#SBATCH --qos qos_long # QOS  
  #SBATCH --gres=gpu:1
+
#SBATCH --gres=gpu:1
 
    
 
    
  ./a.out
+
# Comandos de execução do seu programa:
Para pedir alguma gpu específica, use um constraint adicionando a linha:
+
./a.out
  #SBATCH --constraint="gtx970"
+
</pre>
  
 +
To ask for a specific gpu:
 +
<pre>
 +
#SBATCH --constraint="gtx970"
 +
</pre>
  
Para submeter o job, execute o comando
+
To submit the job, execute:
  sbatch script.sh
+
  
== Comandos úteis ==
+
<pre>
* Para listar os jobs:
+
sbatch job.sh
 +
</pre>
 +
 
 +
== Usefull commands ==
 +
* To list jobs:
 
   squeue
 
   squeue
  
* Para deletar um job:
+
* To list all jobs running in the cluster now:
   scancel
+
   sudo squeue
  
* Para listar as partições disponíveis:
+
* To delete a running job:
 +
  scancel [job_id]
 +
 
 +
* To list available partitions:
 
   sinfo
 
   sinfo
  
* Para listar as gpus presentes nos nós:
+
* To list gpu's in the nodes:
 
   sinfo -o "%N %f"
 
   sinfo -o "%N %f"
 +
 +
* To list characteristic of all nodes:
 +
  sinfo -Nel

Edição atual tal como às 15h51min de 14 de março de 2022

Clusters Ada and Lovelace - Instituto de Física UFRGS

The clusters are located at Instituto de Física da UFRGS, in Porto Alegre.

Infraestruture

Management Software

Slurm Workload Manager

Site :https://slurm.schedmd.com/

Hardware in the ada nodes

CPU: x86_64
RAM: varies between 8 GB - 16 GB
GPU: some nodes have NVIDIA CUDA
Storage: storage with 50GB  quota per user 

Hardware in the lovelace nodes

CPU: Ryzen (32 and 2*24 cores)
RAM: varia entre 64 GB
GPU: two nodes have NVIDIA CUDA
Storage: storage with 50GB  quota per user 

Software in the nodes

OS: Debian 8 (in cluster ada)
OS: Debian 11 (in cluster lovelace)
Basic packages installed:
 GCC
 gfortran
 python2
 python3

How to use

Conect to cluster-slurm

The clusters are accessible through server cluster-slurm.if.ufrgs.br (ou ada.if.ufrgr.br). To access through a unix-like system use:

ssh <user>@cluster-slurm.if.ufrgs.br

or

ssh <user>@ada.if.ufrgs.br

Under windows you may use winscp.

If you are not registered, ask for registration sending an email to fisica-ti@ufrgs.br

Using softwares in the cluster

To execute a software in a cluster job this program must:

1. Be already installed

OR

2. Be copied to the user home

Ex:

scp my_programm <user>@cluster-slurm.if.ufrgs.br:~/

If you are compiling your program in the cluster, one option is to user gcc.

Ex:

scp -r source-code/ usuario@cluster-slurm.if.ufrgs.br:~/
ssh <user>@cluster-slurm.if.ufrgs.br:~/
cd source-code
gcc main.c funcoes.c

This will generate file a.out, which is the executable.

Being accessible by methods 1 or 2, the program can be executed in the cluster through one JOB.

OBS: If you execute your executable without submitting as JOB, it will be executed in the server, not in the nodes. This is not recommended since the server computational capabilities are limited and you will be slowing down the server for everyone else.

Criating and executing a Job

Slurm manages jobs and each job represents a program or task being executed.

To submit a new job, you must create a script file describing the requisites and characteristics of the Job.

A typical example of the content of a submission script is below

Ex: job.sh

#!/bin/bash 
#SBATCH -n 1 # Number of cpus to be allocated (Despite the # these SBATCH lines are compiled by the slurm manager!)
#SBATCH -N 1 # Nummber of nodes to be allocated  (You don't have to use all requisites, comment with ##)
#SBATCH -t 0-00:05 # Limit execution time (D-HH:MM)
#SBATCH -p long # Partition to be submitted
#SBATCH --qos qos_long # QOS 
  
# Your program execution commands
./a.out

In option --qos, use the partition name with "qos_" prefix:

partition: short -> qos: qos_short -> limit 2 weeks

partition: long -> qos: qos_long -> limit de 3 month

If you run on GPU, specify the "generic resource" gpu in cluster ada:

#!/bin/bash 
#SBATCH -n 1 
#SBATCH -N 1
#SBATCH -t 0-00:05 
#SBATCH -p long 
#SBATCH --qos qos_long # QOS 
#SBATCH --gres=gpu:1
  
# Comandos de execução do seu programa:
./a.out

To ask for a specific gpu:

#SBATCH --constraint="gtx970"

To submit the job, execute:

sbatch job.sh

Usefull commands

  • To list jobs:
 squeue
  • To list all jobs running in the cluster now:
 sudo squeue
  • To delete a running job:
 scancel [job_id]
  • To list available partitions:
 sinfo
  • To list gpu's in the nodes:
 sinfo -o "%N %f"
  • To list characteristic of all nodes:
 sinfo -Nel