Cluster
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 - 8 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 python2 python3
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:~/
Caso queira compilar o programa para uso no Cluster, uma das opções é usar o gcc
.
Ex:
scp -r source-code/ usuario@cluster-slurm.if.ufrgs.br:~/ ssh usuario@cluster-slurm.if.ufrgs.br:~/ cd source-code gcc main.c funcoes.c
Isso irá gerar um arquivo a.out
, que é o executável.
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 e executando 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 generic 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 seus jobs:
squeue
- Para deletar um job:
scancel [job_id]
- Para listar as partições disponíveis:
sinfo
- Para listar as gpus presentes nos nodes:
sinfo -o "%N %f"
- Para listar um resumo de todos os nodes:
sinfo -Nel