Cluster
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 1GB 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.
Descrição do serviço
O Cluster da RNL é fornecido pelos computadores dos laboratórios, com arquitetura x86_64, que utilizam a distribuição NixOS.
Dependendo das horas do dia e da atividade dos laboratórios, estão disponíveis entre 40 a 438 cores, com cerca de 1GB 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.
O acesso ao AFS é difícil quando se utiliza o cluster por necessitar de autenticação por Kerberos em cada máquina usada. Concretamente, tanto os jobs executados pelo Slurm como ligações SSH autenticadas por chave pública não têm acesso ao AFS. Usar o NFS.
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 um total de 438 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-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 -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 NFS.
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
A submissão de jobs 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
#!/usr/bin/env 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
Os projetos deverão ser compilados nas máquinas dos laboratórios, ou presencialmente ou através do comando srun
na máquina do Cluster.
Não deverá ocorrer compilação diretamente na máquina de acesso ao Cluster.
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
NFS
Os dados guardados no NFS são considerados voláteis e poderão ser apagados a qualquer altura.
No Cluster é disponibilizado o sistema de ficheiros NFS 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 NFS 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 NFS.