Skip to content

Listando cores disponíveis

Guilherme Gall edited this page Mar 29, 2017 · 2 revisions

Para submeter os jobs de modelagem, primeiro é preciso determinar quantos cores estão disponíveis. Abaixo listo algumas ideias de como fazer isso em clusters diversos:

Sun Grid Engine

$ qstat -g c -q fila

A saída desse comando é parecida com o seguinte:

CLUSTER QUEUE                   CQLOAD   USED    RES  AVAIL  TOTAL aoACDS  cdsuE  
--------------------------------------------------------------------------------
fila                              0.35     56      0     32    208      0    120

Nesse caso, 32 cores estão disponíveis na fila fila.

É possível formatar a saída do comando como XML:

$ qstat -g c -q fila -xml
<?xml version='1.0'?>
<job_info  xmlns:xsd="http://gridengine.sunsource.net/source/browse/*checkout*/gridengine/source/dist/util/resources/schemas/qstat/qstat.xsd?revision=1.11">
  <cluster_queue_summary>
    <name>fila</name>
    <load>0.34991</load>
    <used>56</used>
    <resv>0</resv>
    <available>32</available>
    <total>208</total>
    <temp_disabled>0</temp_disabled>
    <manual_intervention>120</manual_intervention>
  </cluster_queue_summary>
</job_info>

A documentação do cluster altix-xe lista apenas o formato qstat -f para obter informações das filas. Se decidirmos usar apenas essa forma e filtrar os cores disponíveis com comandos do shell, podemos fazer:

qstat -f | grep 'fila' | grep -v '[adu]$' | awk '{ print $3 }' | awk -F'/' '{ print $3-$2 }' | paste -s -d'+' | bc
32

Slurm

Consultando nós em estado idle na partição cpu:

$ sinfo -p cpu -s
PARTITION AVAIL  TIMELIMIT   NODES(A/I/O/T)  NODELIST
cpu*         up   infinite     619/5/22/646  sdumont[1000-1503,3100-3197,5000-5003,5014-5053]

Consultando CPUs em estado idle na partição cpu (mais útil, provavelmente):

$ sinfo -p cpu -t idle --format='%C'
CPUS(A/I/O/T)
0/120/0/120

Além do estado idle, nós podem estar em estado mixed (algumas CPUs do nó estão alocadas e outras estão idle):

$ sinfo -p cpu -t mixed,idle --format='%C'
CPUS(A/I/O/T)
27/165/0/192

Não sei se a listagem mixed+idle já exclui as CPUs alocadas por outros usuários com o parâmetro --exclusive. Provavelmente sim, mas ainda não encontrei confirmação disso nos manuais.

Clone this wiki locally