Cluster

Estado
Slurm Online
OpenMPI Online
Hadoop & HDFS 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.

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, OpenMPI ou Hadoop.

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 18.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:

  • Slurm – Workload Manager
  • OpenMPI – High Performance Message Passing Library
  • Hadoop – MapReduce

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.

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
  • -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 lab6p[1-9],lab7p[1-9],lab8p[1-10],lab10p[1-10],lab11p[1-22],lab13p[1-10],lab14p[1-20]
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 GlusterFS.

OpenMPI

O lançamento de trabalhos MPI deve ser feito utilizando o Slurm ( srun ou sbatch) ou o HTCondor (condor_submit). 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:

Hadoop

O Hadoop encontra-se a disponível nos 90 nós do Cluster.
Ao todo existe um máximo possível de 360 slots distribuídos com o mesmo peso para Map e Reduce.

No caso de falta de bibliotecas não presentes para execução de jobs no hadoop deve contactar a administração por email.

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/clusterxxxxyz

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/clusterxxxxyz ~/cluster-home

Dados para processamento com o HTCondor ou OpenMPI devem devem ser sempre colocados no GlusterFS.

HDFS


A transferência de ficheiros para o HDFS deve ser efetuada através dos comandos do Hadoop.

A pasta /tmp tem permissões no HDFS para transferir os dados para processamento. Aconselha-se a criação de uma pasta com o IST ID do utilizador para evitar colisões. No jar submetido deve ser utilizado o full path /tmp/... para indicar o caminho para os dados a processar.

O Hadoop cria automaticamente a pasta /users/istxxxxyz onde guarda os dados de processamento. Caso não se indique explicitamente outro local para o output a pasta out aparecerá nesse local.de