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

De Instituto de Física - UFRGS
Linha 1: Linha 1:
== Submeter jobs ==
+
= Cluster Ada - Instituto de Física UFRGS =
Para rodar, criar um arquivo (script.sh) com o seguinte conteúdo.
+
  
  #!/bin/bash  
+
O Cluster está localizado no Instituto de Física da UFRGS, em Porto Alegre.
  #SBATCH -n 1 # Number of cores  
+
 
  #SBATCH -N 1 # Number of nodes  
+
== Infraestrutura ==
  #SBATCH -t 0-00:05 # Runtime in D-HH:MM  
+
 
  #SBATCH -p long # Partition to submit to
+
=== Software de gerenciamento ===
  #SBATCH --qos qos_long # QOS  
+
 
 +
<pre>
 +
Slurm Workload Manager
 +
 
 +
Site :https://slurm.schedmd.com/
 +
</pre>
 +
 
 +
=== Hardware dos nodes ===
 +
 
 +
<pre>
 +
CPU: x86_64
 +
RAM: varia entre 4 GB - 16 GB
 +
GPU: alguns nodes possuem NVIDIA CUDA
 +
Storage: storage em rede com quota de 50 GB por usuário, os nodes não possuem HD local
 +
</pre>
 +
 
 +
=== Software nos nodes ===
 +
 
 +
<pre>
 +
OS: Debian 8 (Jessie) x86_64
 +
Pacotes instalados:
 +
gcc
 +
docker
 +
</pre>
 +
 
 +
== Como utilizar ==
 +
 
 +
=== Conectar-se ao cluster-slurm ===
 +
 
 +
O cluster é acessível através do server cluster-slurm. Para acessar o server via SSH, use:
 +
<pre>
 +
ssh usuario@cluster-slurm.if.ufrgs.br
 +
</pre>
 +
 
 +
Caso você não tenha cadastro ou não é vinculado ao Instituto de Física, solicite o cadastro enviando um email para fisica-ti@ufrgs.br.
 +
 
 +
=== Utilizando softwares no Cluster ===
 +
 
 +
Para que seja possível executar um programa em um job no cluster, o programa deve:
 +
 
 +
1. Já estar instalado
 +
 
 +
ou
 +
 
 +
2. Ser copiado para sua home (pasta do seu usuário)
 +
 
 +
Ex:
 +
<pre>
 +
scp meu_executavel usuario@cluster-slurm.if.ufrgs.br:~/
 +
</pre>
 +
 
 +
Estando acessível pelo método 1 ou 2, o programa pode ser executado no Cluster através de um <strong>JOB</strong>.
 +
 
 +
OBS: Caso você execute o programa sem submetê-lo como <strong>JOB</strong>, ele não será executado nos nodes, e sim apenas no próprio server (cluster-slurm), que possui capacidades bem limitadas de processamento.
 +
 
 +
 
 +
=== Criando um Job ===
 +
 
 +
O Slurm gerencia jobs, e cada job representa um programa ou tarefa sendo executado.
 +
 
 +
Para submeter um novo Job, deve-se criar um arquivo de script descrevendo os requisitos e características de execução do Job.
 +
 
 +
Formato do arquivo abaixo.
 +
 
 +
Ex: <code>job.sh</code>
 +
 
 +
<pre>
 +
#!/bin/bash  
 +
#SBATCH -n 1 # Numero de CPU cores a serem alocados
 +
#SBATCH -N 1 # Numero de nodes a serem alocados
 +
#SBATCH -t 0-00:05 # Tempo limite de execucao (D-HH:MM)
 +
#SBATCH -p long # Particao (fila) a ser submetido
 +
#SBATCH --qos qos_long # QOS  
 
    
 
    
  ./a.out
+
# Comandos de execução do seu programa:
 +
./a.out
 +
</pre>
  
As partições possuem um qos associado, com o mesmo nome, adicionando "qos_" a frente do nome:
+
Na opção --qos, deve-se colocar o nome da partição com o prefixo "qos_":
  
 
partição: short -> qos: qos_short -> limite de 2 semanas
 
partição: short -> qos: qos_short -> limite de 2 semanas
Linha 18: Linha 91:
 
    
 
    
  
Caso deseje rodar em gpu, é necessário especificar a fila e pedir explicitamente a ''gereric resource'' gpu:
+
Caso deseje rodar em GPU, é necessário especificar a fila e pedir explicitamente a ''gereric resource'' gpu:
  #!/bin/bash  
+
<pre>
  #SBATCH -n 1 # Number of cores
+
#!/bin/bash  
  #SBATCH -N 1 # Number of nodes  
+
#SBATCH -n 1 # Numero de CPU cores a serem alocados
  #SBATCH -t 0-00:05 # Runtime in D-HH:MM  
+
#SBATCH -N 1 # Numero de nodes a serem alocados
  #SBATCH -p gpu # Partition to submit to
+
#SBATCH -t 0-00:05 # Tempo limite de execucao (D-HH:MM)
  #SBATCH --qos qos_gpu # QOS
+
#SBATCH -p long # Particao (fila) a ser submetido
  #SBATCH --gres=gpu:1
+
#SBATCH --qos qos_long # QOS  
 +
#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>
  
 +
Para pedir alguma GPU específica, use um constraint adicionando a linha:
 +
<pre>
 +
#SBATCH --constraint="gtx970"
 +
</pre>
  
 
Para submeter o job, execute o comando  
 
Para submeter o job, execute o comando  
  sbatch script.sh
+
 
 +
<pre>
 +
sbatch job.sh
 +
</pre>
  
 
== Comandos úteis ==
 
== Comandos úteis ==

Edição das 12h23min de 24 de abril de 2017

Cluster Ada - Instituto de Física UFRGS

O Cluster está localizado no Instituto de Física da UFRGS, em Porto Alegre.

Infraestrutura

Software de gerenciamento

Slurm Workload Manager

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

Hardware dos nodes

CPU: x86_64
RAM: varia entre 4 GB - 16 GB
GPU: alguns nodes possuem NVIDIA CUDA
Storage: storage em rede com quota de 50 GB por usuário, os nodes não possuem HD local 

Software nos nodes

OS: Debian 8 (Jessie) x86_64
Pacotes instalados:
 gcc
 docker

Como utilizar

Conectar-se ao cluster-slurm

O cluster é acessível através do server cluster-slurm. Para acessar o server via SSH, use:

ssh usuario@cluster-slurm.if.ufrgs.br

Caso você não tenha cadastro ou não é vinculado ao Instituto de Física, solicite o cadastro enviando um email para fisica-ti@ufrgs.br.

Utilizando softwares no Cluster

Para que seja possível executar um programa em um job no cluster, o programa deve:

1. Já estar instalado

ou

2. Ser copiado para sua home (pasta do seu usuário)

Ex:

scp meu_executavel usuario@cluster-slurm.if.ufrgs.br:~/

Estando acessível pelo método 1 ou 2, o programa pode ser executado no Cluster através de um JOB.

OBS: Caso você execute o programa sem submetê-lo como JOB, ele não será executado nos nodes, e sim apenas no próprio server (cluster-slurm), que possui capacidades bem limitadas de processamento.


Criando um Job

O Slurm gerencia jobs, e cada job representa um programa ou tarefa sendo executado.

Para submeter um novo Job, deve-se criar um arquivo de script descrevendo os requisitos e características de execução do Job.

Formato do arquivo abaixo.

Ex: job.sh

#!/bin/bash 
#SBATCH -n 1 # Numero de CPU cores a serem alocados 
#SBATCH -N 1 # Numero de nodes a serem alocados
#SBATCH -t 0-00:05 # Tempo limite de execucao (D-HH:MM)
#SBATCH -p long # Particao (fila) a ser submetido
#SBATCH --qos qos_long # QOS 
  
# Comandos de execução do seu programa:
./a.out

Na opção --qos, deve-se colocar o nome da partição com o prefixo "qos_":

partição: short -> qos: qos_short -> limite de 2 semanas

partição: long -> qos: qos_long -> limite de 3 meses


Caso deseje rodar em GPU, é necessário especificar a fila e pedir explicitamente a gereric resource gpu:

#!/bin/bash 
#SBATCH -n 1 # Numero de CPU cores a serem alocados 
#SBATCH -N 1 # Numero de nodes a serem alocados
#SBATCH -t 0-00:05 # Tempo limite de execucao (D-HH:MM)
#SBATCH -p long # Particao (fila) a ser submetido
#SBATCH --qos qos_long # QOS 
#SBATCH --gres=gpu:1
  
# Comandos de execução do seu programa:
./a.out

Para pedir alguma GPU específica, use um constraint adicionando a linha:

#SBATCH --constraint="gtx970"

Para submeter o job, execute o comando

sbatch job.sh

Comandos úteis

  • Para listar os jobs:
 squeue
  • Para deletar um job:
 scancel
  • Para listar as partições disponíveis:
 sinfo
  • Para listar as gpus presentes nos nós:
 sinfo -o "%N %f"