Contents
Estado | |
---|---|
Slurm | Online |
OpenMPI | Online |
GlusterFS | Online |
Suporte
Suporte por email está disponível através de cluster@rnl.tecnico.ulisboa.pt.
Acesso
O acesso é feito por SSH para a máquina cluster.rnl.tecnico.ulisboa.pt
com o ID do Técnico (istxxxxxx).
Esta máquina está limitada a 512MB de RAM por utilizador e não deve ser utilizada para mais do que a submissão dos jobs, que devem ser submetidos para o Cluster através do Slurm ou OpenMPI.
Descrição do serviço
O Cluster da RNL é fornecido pelos computadores dos laboratórios, com arquitetura x86_64, que utilizam a distribuição Ubuntu 20.04.
Dependendo das horas do dia e da atividade dos laboratórios, estão disponíveis entre 40 a 360 cores, com cerca de 2GB de RAM por core.
De momento, existem as seguintes plataformas de computação:
Para armazenamento temporário existem os seguintes sistemas de ficheiros:
O software instalado encontra-se na lista de software dos laboratórios. Necessidades de software específicas podem requisitadas por email para rnl@tecnico.ulisboa.pt.
Além da área AFS mantida pela DSI, é também disponibilizado o sistema de ficheiros distribuídos do GlusterFS, que pode ser utilizado para armazenamento temporário.
Uma vez que o cluster da RNL utiliza computadores dos laboratórios, não são feitas garantias de disponibilidade dos mesmos. Os jobs poderão ser afetados pela utilização das máquinas por parte de alunos que, inclusive, poderão reiniciar as mesmas e levar à terminação dos jobs.
Slurm
Estão disponíveis 90 nós com 4 CPUs cada, totalizando 360 cores disponíveis para computação.
Submissão de Jobs
A submissão de jobs no Slurm pode ser feita através de vários métodos. O comando srun
é utilizado para uma sessão interativa e bloqueante em que o output é enviado para o terminal. O comando sbatch
é utilizado para submeter um shell script com uma sequência de comandos srun
que corre em background e redireciona o output para um ficheiro slurm-<job-id>.out
, onde <job-id>
é o ID do job que é devolvido quando o script é submetido, e que pode ser consultado através do comando squeue
. Qualquer um destes comandos recebe vários parâmetros opcionais. Exemplos de parâmetros são:
-o
define o ficheiro de output-e
define o ficheiro de output de erros-n
define o número de tarefas a lançar-C
restringe o lab onde lançar as tarefas-N
define o número de nós onde executar o job-h
mostra todas as opções possíveis
Eis um exemplo de utilização:
ist123456@borg$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST compute* up infinite 90 idle lab1p[1-10],lab2p[1-20],lab3p[1-10],lab4p[1-10],lab5p[1-22],lab6p[1-9],lab7p[1-9] ist123456@borg$ sbatch -n 20 run.sh Submitted batch job 17 ist123456@borg$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 17 compute run.sh ist123456 R 0:03 5 lab6p[1-5] ist123456@borg$ srun -C lab6 -N 5 hostname lab6p3 lab6p2 lab6p4 lab6p1 lab6p5
Quaisquer ficheiros que precisem de ser acedidos pela tarefa submetida devem ser colocados na home de utilizador do GlusterFS.
Cancelamento de Jobs
Caso seja detetado um problema no código que cause a necessidade de cancelar um job, deve ser usado o comando scancel
.
ist123456@borg$ scancel <ID do job>
OpenMPI
O lançamento de trabalhos MPI deve ser feito utilizando o Slurm ( srun
ou sbatch
). O comando mpirun
não deve ser utilizado na máquina cluster.rnl.tecnico.ulisboa.pt
para a submissão de jobs.
Usando o srun
, é possível executar diretamente o ficheiro sem necessidade de utilizar o mpirun
. Exemplo:
srun -n <número de nodes> <caminho para o executável>
É possível também utilizar o comando sbatch
para executar um script com comandos srun. Exemplo:
ist123456@borg$ cat run.sh #!/bin/bash srun -o /mnt/cirrus/users/5/6/ist123456/dataset1.out /mnt/cirrus/users/5/6/ist123456/executavel_de_mpi /mnt/cirrus/users/5/6/ist123456/dataset1.csv srun -o /mnt/cirrus/users/5/6/ist123456/dataset2.out /mnt/cirrus/users/5/6/ist123456/executavel_de_mpi /mnt/cirrus/users/5/6/ist123456/dataset2.csv ist123456@borg$ sbatch -n 20 run.sh Submitted batch job 69
O software na máquina de acesso ao Cluster difere do software no Cluster em si, pelo que software compilado neste pode não funcionar quando submetido. Por isso aconselha-se que os projetos sejam compilados presencialmente nos postos de trabalhos nos laboratórios ou máquinas com a mesma distribuição e versão instalada. O uso de máquinas que não as descritas para compilar os projetos não são suportadas e não são dadas garantias do correto funcionamento dos mesmos neste caso.
Mais informações sobre a utilização do MPI podem ser obtidas nas páginas seguintes:
- MPI Forum – forum de discussão sobre o MPI
- MPI Project – homepage do projecto MPI
- MPI Routines – Web pages for MPI Routines
GlusterFS
No Cluster é disponibilizado o sistema de ficheiros GlusterFS que se encontra montado em:
/mnt/cirrus
A sua área pessoal pode ser acedida em:
/mnt/cirrus/users/y/z/istxxxxyz
O acesso remoto aos dados do GlusterFS pode ser feito por SSH/SCP ou SFTP para cluster.rnl.tecnico.ulisboa.pt
com o seu ID do Técnico, na pasta acima mencionada. Exemplos de ferramentas que permitem este tipo de acesso remoto são o FileZilla (SFTP), WinSCP (SFTP e SCP) e PuTTY (SSH/SCP).
Para facilitar o acesso à home do Cluster a partir da área de AFS aconselha-se a criação de um symlink para a mesma da seguinte forma:
ln -s /mnt/cirrus/users/y/z/istxxxxyz ~/cluster-home
Dados para processamento com o Slurm ou OpenMPI devem devem ser sempre colocados no GlusterFS.
Docker
O lançamento de docker containers pode ser efetuado pelo Slurm.
Por motivos de segurança, é necessário seguir os seguintes passos para correr comandos de docker num script fornecido ao Slurm:
- Incluir
source slurm-docker start
antes das chamadas ao docker - Incluir
slurm-docker stop
no final para parar o daemon do docker
É importante que o script fornecido seja escrito em bash.
ist123456@borg$ cat /mnt/cirrus/users/5/6/ist123456/run.sh #!/bin/bash source slurm-docker start docker run hello-world slurm-docker stop ist123456@borg$ srun /mnt/cirrus/users/5/6/ist123456/run.sh Hello from Docker! ...