Manual de Utilização

Acesso ao cluster

O acesso ao cluster é feito por SSH (TCP/22) ao endereço argus.ua.pt com recurso ao Utilizador Universal (exemplo: ssh utilizador@ua.pt@argus.ua.pt). Os Utilizadores Universais são autorizados a pedido dos responsáveis das Unidades.

Armazenamento

O cluster dispõe de diversos locais de armazenamento, nomeadamente:
NomeLocalização Descrição
Home /home/<conta_do_utilizador>
Exemplo: /home/utilizador@UA.PT
Área individual que se encontra disponível em todos os nós da plataforma. Cada área é criada automaticamente aquando do primeiro acesso à plataforma. Cada utilizador só tem acesso à sua área individual.
Área de Unidade /<UNIDADE> As diversas áreas de Unidade de Investigação ou Departamento encontram-se disponíveis em todos os nós da plataforma. Cada área é criada de acordo com as aquisições realizadas pela Unidade. Os utilizadores que sejam membros das unidades terão acesso às respetivas áreas e apenas a essas.
Scratch local /scratch Cada nó de processamento tem uma área de scratch que está apenas disponível para ser acedida pelos trabalhos em execução no próprio nó. A informação que reside em cada área de cada nó apenas reside no próprio nó e deverá ser eliminada logo que seja dispensável para o trabalho em execução. Caso não seja eliminada pelo próprio trabalho, a plataforma ou os seus administradores procederão à sua eliminação.
Scratch paralelo /scratch_p Cada nó de processamento tem uma área de scratch paralelo que está disponível para ser acedida pelos trabalhos em execução em qualquer nó. A informação que reside nesta área deverá ser eliminada logo que seja dispensável para o trabalho em execução. Caso não seja eliminada pelo próprio trabalho, a plataforma ou os seus administradores procederão à sua eliminação.

Utilização e gestão dos recursos

Os recursos são partilhados e finitos. Devem ser requeridos os recursos estritamente necessários à execução do trabalho, não devendo ser requeridos os recursos que não se conta utilizar, uma vez que:

  • a execução provavelmente demorará mais tempo a ser iniciada, dado que o gestor de recursos também demorará mais tempo a reunir todos os recursos requeridos;
  • durante a execução de um trabalho, os recursos requeridos estarão reservados e não poderão ser disponibilizados para execução de outros trabalhos.

A gestão de recursos / agendamento de trabalhos é feita com o software SLURM (Simple Linux Utility for Resource Management). A documentação completa do SLURM pode ser encontrado no site http://slurm.schedmd.com/documentation.html.

Abaixo encontram-se exemplos de como executar as ações mais comuns para utilização do cluster. Em caso de dúvidas relativamente a um comando especifico pode-se sempre consultar o manual com o comando man (exemplo: man squeue).

Ações mais comuns

Submissão de trabalhos

Comando: sbatch <nome_do_script>

Exemplo:

  1. Primeiro é necessário criar o ficheiro com o script a ser executado:

  2. [utilizador@argus utilizador@ua.pt]$ vim script.sh
    #!/bin/bash
    #SBATCH --nodes=2
    #SBATCH --time=10
    #SBATCH --mem-per-cpu=2
    hostname


    echo "Starting at `date`"
    echo "Running on hosts: $SLURM_NODELIST"
    echo "Running on $SLURM_NNODES nodes."
    echo "Running on $SLURM_NPROCS processors."
    echo "Current working directory is `pwd`"

    export VARIAVEL_PARA_O_MEU_PROGRAMA=1234

    #caso pretenda utilizar Intel MPI
    # descomente as 2 linhas que se seguem
    #export I_MPI_PMI_LIBRARY=/usr/lib64/libpmi.so
    #export I_MPI_FABRICS=shm:ofa


    #caso pretenda utilizar OpenMP
    # descomente as 7 linhas que se seguem
    #if [ -n "$SLURM_CPUS_PER_TASK" ]; then
    # omp_threads=$SLURM_CPUS_PER_TASK
    #else
    # omp_threads=1
    #fi
    #export I_MPI_PMI_LIBRARY=/usr/lib64/libpmi.so
    #export I_MPI_FABRICS=shm:ofa

    srun o_meu_programa
    echo "Program finished with exit code $? at: `date`"

  3. Depois para submeter o trabalho propriamente dito, basta:
  4. [utilizador @argus utilizador@ua.pt]$ sbatch script.sh

    Nota:
    Os parâmetros são passados ao gestor de recursos através da diretiva “#SBATCH <parâmetro>”. Os parâmetros mais pertinentes são os seguintes:

    ParâmetroSignificado
    --nodes=<número de nós> Numero de nós para o trabalho
    --tasks-per-node=<número de processos> Processos por nó
    --ntasks=<número de processos> Número total de processos (em todos os nós)
    --cpus-per-task=<número de CPUS> Número de CPU cores por processo
    --nodelist=<nós> Pedido de nós especificos para correr o trabalho
    --exclude=<nós> Nós nos quais não se quer que corra o trabalho
    --time=<min> ou
    --time=<dd-hh:mm:ss>
    Limite temporal do trabalho. Se o for pedido mais tempo que o limite da partição o trabalho fica "PENDING"
    --mem=<quantidade de memória> Memória RAM, em MB, por node (não utilizar com a flag --mem-per-cpu)
    --mem-per-cpu=<quantidade de memória> Memória RAM, em MB, por CPU core (não utilizar com a flag --mem)
    --job-name=<nome do trabalho> Especificar o nome do trabalho
    --partition=<nome da partição> Submeter o trabalho a uma partição especifica
    --mail-user=<endereço de email> Endereço de email para qual enviar alertas do trabalho
    --mail-type=[BEGIN ou END ou FAIL ou REQUEUE ou ALL] Tipo de email a enviar
Verificar estado de trabalhos

Comando: squeue -u <utilizador>

Exemplo:

[utilizador@argus utilizador@ua.pt]$ squeue -u utilizador
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
847 teste script.s utilizador R 0:01 2 argus[1-2]
Cancelar um trabalho

Comando: scancel <id do trabalho a parar>

Exemplo:

  1. Ver os trabalhos que estão em execução:
  2. [utilizador@argus utilizador@ua.pt]$ squeue -u utilizador
    JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    853 teste script.s utilizador R 0:01 2 argus[1-2]
    852 teste script.s utilizador R 0:03 2 argus[1-2]
    851 teste script.s utilizador R 0:04 2 argus[1-2]
  3. Cancelar o trabalho

  4. [utilizador@argus utilizador@ua.pt]$ scancel 852
  5. Verificar que o trabalho já não está em execução

  6. [utilizador@argus utilizador@ua.pt]$ squeue -u utilizador
    JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    853 teste script.s utilizador R 0:15 2 argus[1-2]
    851 teste script.s utilizador R 0:18 2 argus[1-2]
Consultar a utilização de recursos

Comando: sacct

Exemplo:

[utilizador@argus utilizador@ua.pt]$ sacct
JOBID JOBNAME PARTITION ACCOUNT AllocCPUS STATE ExitCode
869 script.sh teste stic 2 CANCELED+ 0:0
869.batch batch   stic 1 CANCELED 0:15
870 script.sh teste stic 2 COMPLETED 0:0
870.batch batch   stic 1 COMPLETED 0:15
871 script.sh teste stic 2 RUNNING 0:0
Estados dos trabalhos:

O estado de um trabalho num determinado instante pode ser um dos que seguem:

Estado Significado
PENDING Trabalho está a espera de recursos para correr.
RUNNING Trabalho tem alocação.
COMPLETED Trabalho terminou em todos os nós.
FAILED Trabalho terminou com outro código que não 0.
CANCELLED Trabalho cancelado pelo utilizador, por um administrador ou por falta de recursos. O trabalho pode ou não ter iniciado
última atualização a 27-04-2016
Este sítio web utiliza cookies sem recolher informação pessoal que permita a identificação dos utilizadores. Ao navegar neste sítio está a consentir a sua utilização.saber mais
Para que esta página funcione corretamente deve ativar a execução de Javascript. Se tal não for possível, algumas funcionalidades poderão estar limitadas.