Mudanças

Ir para navegação Ir para pesquisar

Slurm - Veredas

404 bytes adicionados, 23h20min de 26 de outubro de 2021
sem sumário de edição
== Comandos do Slurm ==
Segue abaixo, uma lista de comandos úteis disponíveis para o Slurm que permite a interação dos usuários.A lista completa de comandos por ser encontrada na documentação oficial do Slurm através do link [https://slurm.schedmd.com/quickstart.html https://slurm.schedmd.com/quickstart.html]
{|class="wikitable" width=100% border=1 cellpadding=35px
|-
|'''SRUN'''
|submete Submete na linha de comando um job para execução.
|-
|'''SBATCH'''
|submete Submete scripts shell (eg. bash) para a fila de espera do SLURM.
|-
|'''SALLOC'''
|reserva Reserva recursos do cluster (tempo de cpu, memória, quantidade de nós, etc) para a execução de uma tarefa computacional.
|-
|'''SBCAST'''
|para Para transmissão de um arquivo para todos os nós que foram alocados para um determinado job.
|-
|'''SCANCEL'''
|para Para cancelar um job que esteja sendo executado ou que ainda esteja na fila de espera.
|-
|'''SQUEUE'''
|para Para monitorar o estado dos jobs nas diversas filas de espera do SLURM.
|-
|'''SINFO'''
|para Para monitorar o estado global das partições configuradas (filas).
|-
|'''SVIEW'''
|providencia Providencia a integração de toda a informação e disponibiliza-a através de uma interface gráfica.
|}
<br/>
No UNIVERSO do SLURM o conceito de '''filas''' envolve a noção de partição de nós computacionais em grupos. Esses grupos não são necessariamente disjuntos (nós podem participar de mais de uma partição) e podem ser solicitados de acordo com a especificação de recursos do sistema (tempo de cpu, memória, etc). Para respeitar a herança do PBS Pro iremos nos referir indistintamente aos termos '''filas''' e '''partições'''.
O cluster BULL-Veredas possui no momento três filas de submissão definidas apenas pelo recurso '''walltime''':
* partição '''full''': nós '''veredas[12-107]''' sem restrição de tempo.
* partição '''short''': nós '''veredas[2-11]''' máximo 1 hora.
</pre>
=== Tarefas paralelas com ''threads'' (MPI+OpenMP) ===
Cada nó computacional do cluster BULL Veredas da UFMG possui '''2 quad-cores''' totalizando '''8 ''cores'''''. Mostramos a seguir um exemplo de submissão de uma tarefa paralela (MPI+OpenMP) que utiliza a Infiniband, cujo executável foi compilado com o '''Intel MPI''' e que requisita '''8 processos''', sendo que cada processo é um conjunto de '''4 ''threads'''''.
Repare que propositalmente, e contráriamente ao caso anterior, a ferramenta '''[https://docs.par-tec.com/html/psmpi-userguide/rn01re01.html mpiexec]''' foi utilizada em vez do '''srun''' para lançar os processos MPI. O SLURM foi então utilizado apenas para reservar os recursos necessários.
[[image:DiagramaTheadsMPI ClusterVeredas.png|frame|center|'''Figura 1''' - Diagrama com processos MPI e distribuição das '''''threads''''' em dois nós computacionais e 32 cores]]
<br/>
 
=== Variáveis de ambiente do Slurm ===
Quaisquer variáveis de ambiente que você define com o comando '''sbatch''' serão passadas para o seu ''job''. Por esse motivo, se o seu programa precisar que determinadas variáveis de ambiente , é melhor colocá-las no ''script'' do seu ''job''. Isso também facilita a reprodução dos resultados do ''job'' posteriormente, caso você necessite.
|-
|'''SLURM_JOB_ID (and SLURM_JOBID for backwards compatibility)'''
|''The ID of the job allocation.''
|-
|'''SLURM_JOB_NAME'''
|''Name of the job.''
|-
|'''SLURM_JOB_NODELIST (and SLURM_NODELIST for backwards compatibility)'''
|''List of nodes allocated to the job.''
|-
|'''SLURM_JOB_NUM_NODES (and SLURM_NNODES for backwards compatibility)'''
|''Total number of different nodes in the job's resource allocation.''
|-
|'''SLURM_ARRAY_TASK_COUNT'''
|''Total number of tasks in a job array.''
|-
|'''SLURM_ARRAY_TASK_ID'''
|''Job array ID (index) number.''
|-
|'''SLURM_ARRAY_TASK_MAX'''
|''Job array's maximum ID (index) number.''
|-
|'''SLURM_ARRAY_TASK_MIN'''
|''Job array's minimum ID (index) number.''
|-
|'''SLURM_ARRAY_TASK_STEP'''
|''Job array's index step size.''
|-
|'''SLURM_ARRAY_JOB_ID'''
|''Job array's master job ID number.''
|-
|'''SLURM_CLUSTER_NAME'''
|''Name of the cluster on which the job is executing.''
|-
|'''SLURM_CPUS_ON_NODE'''
|''Number of CPUS on the allocated node.''
|-
|'''SLURM_CPUS_PER_TASK'''
|''Number of cpus requested per task. Only set if the '''--cpus-per-task''' option is specified.''
|-
|'''SLURM_JOB_ACCOUNT'''
|''Account name associated of the job allocation.''
|-
|'''SLURM_JOB_CPUS_PER_NODE'''
|''Count of processors available to the job on this node.''
|-
|'''SLURM_JOB_DEPENDENCY'''
|''Set to value of the '''--dependency''' option.''
|-
|'''SLURM_MEM_PER_NODE'''
|''Same as '''--mem'''.''
|-
|'''SLURM_MEM_PER_CPU'''
|''Same as '''--mem-per-cpu'''.''
|-
|'''SLURM_NTASKS (and SLURM_NPROCS for backwards compatibility)'''
|''Same as '''-n, --ntasks'''''.
|-
|'''SLURM_NTASKS_PER_NODE'''
|''Number of tasks requested per node. Only set if the '''--ntasks-per-node''' option is specified.''
|-
|'''SLURM_NTASKS_PER_SOCKET'''
|''Number of tasks requested per socket. Only set if the '''--ntasks-per-socket''' option is specified.''
|-
|'''SLURM_SUBMIT_DIR'''
|''The directory from which '''sbatch''' was invoked.''
|-
|'''SLURM_SUBMIT_HOST'''
|''The hostname of the computer from which '''sbatch''' was invoked.''
|-
|'''SLURM_TASK_PID'''
|''The process ID of the task being started.''
|-
|'''SLURMD_NODENAME'''
|''Name of the node running the job script.''
|}
 
<br/>
== Comparação entre o SLURM e o PBS Pro ==
Segue alguns comandos essenciais do SLURM e seus equivalentes no PBS Pro.
'''Aviso:''' Para uma informação mais detalhada sobre o escalonador '''SLURM''' o usuário poderá baixar e consultar o arquivo [https://www.lcc.ufmg.br/sites/default/files/manuais/BullXClusterSuite-UserGuide.pdf Bullx cluster suite: User’s Guide]. Para quem estiver interessado o [https://www.cscs.ch Swiss National Supercomputing Centre] disponibiza um video no qual são feitas várias demonstrações de como o usuário pode interagir com o '''SLURM'''.
</div>
 
 
[[Category:Manuais]]
[[Category:Cluster Veredas]]
[[Category:Slurm]]
[[Category:Gerenciador de filas]]

Menu de navegação