Uso do Cluster IBM-AIX¶
Este guia contém informações básicas para o uso do Cluster IBM.
Acesso de dentro da FT
Conexão ao sistema IBM:
$ ssh usuario@143.106.243.190
Acesso de fora da FT
Para acesso de fora da FT primeiro é necessário se conectar em lascado.ft.unicamp.br
.
\$ ssh usuario@lascado.ft.unicamp.br
Após conectado a máquina lascado
, conectar normalmente ao cluster IBM.
Execução de Jobs
Na máquina para uso interativo (xcat01.cluster.net
), os usuários podem efetuar
login e executar comandos, compilar programas, editar scripts, submeter jobs, etc.
As máquinas para processamento batch (node01, … node05) não permitem login pelos usuários, apenas processam os jobs submetidos por meio do LoadLeveler (Tivoli Workload Scheduler LoadLeveler V4.1). LoadLeveler é o sistema gerenciador de filas, responsável pela submissão e execução de jobs.
A documentação do software Loadleveler pode ser obtida em http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/topic/com.ibm.cluster.loadl.doc/llbooks.html
Alguns dos principais comandos do LoadLeveler são:
llsubmit - para submissao de jobs
llmodify - para modificar jobs pendente
llcancel - para remocao de jobs das filas
llstatus - exibe o estado dos nós
llq - exibe o estado dos jobs
llclass - exibe a configuração e o estado das filas
Main informações através das man
pages: ex.: $ man llq
)
Submissão de Jobs
Para submeter um job para execução no ambiente IBM P755 do LaSCADo, o usuário deve:
Criar um arquivo com diretivas sobre o job a ser executado
Submeter o job, executando o comando
\$ llsubmit arquivo_de_diretrizes
Filas
Os jobs em execução ou aguardando a disponibilidade de recursos para execução são mantidos em uma fila. Quando um usuário submete um job ao LoadLeveler, este job é colocado nesta fila, que é uma base de dados com os jobs do sistema de filas.
A fila de jobs pode ser consultada através do comando llq
.
O ambiente de processamento de jobs do LaSCADo está dividido em filas para processamento serial e paralelo.
Classe |
Número máximo de jobs simultâneos disponíveis |
Número máximo de processadores (cores) por job |
Limite de tempo processamento (horas) |
---|---|---|---|
Serial |
25 |
1 |
720 |
Paralela |
160 |
160 |
720 |
Obs: A única fila com limitações para usuários é a pequena com 2 jobs no máximo por usuário.
Jobs Serial
Um exemplo de script para job serial é (serial.cmd):
# arquivo serial.cmd
#!/bin/ksh
#
# @ class = serial
# @ restart = no
# @ output = t.out
# @ error = t.err
# @ queue
./meu_programa_serial
Para submeter o exemplo de job serial acima basta apenas
\$ llsubmit serial.cmd
Jobs Paralelos
Um exemplo de script para job paralelo (MPI) é (paralelo.cmd):
# arquivo paralelo.cmd
#!/bin/ksh
#
# @ class = paralela
# @ restart = no
# @ output = t.out
# @ error = t.err
# @ job_type = parallel
# @ node = 2
# @ tasks_per_node = 8
# @ network.MPI = sn_single,shared,us
# @ checkpoint = no
# @ queue
/usr/bin/poe -np 16 meu_programa_mpi_poe -infolevel 2
Esse exemplo executa 16 processos (8 tasks em 2 nós).
Para submeter o exemplo de job paralelo acima basta apenas
\$ llsubmit paralelo.cmd
Como usar os compiladores (localizados em /usr/vac/bin e /usr/vacpp/bin e /usr/lpp/ppe.poe/bin):
Serial:
xlc -g -q64 -qarch=pwr7 -qtune=pwr7
xlf -g -q64 -qarch=pwr7 -qtune=pwr7
Paralelo:
mpxlc_r -g -q64 -qarch=pwr7 -qtune=pwr7
mpxlf90_r -g -q64 -qfree -qarch=pwr7 -qtune=pwr7
mpxlf -g -q64 -qarch=pwr7 -qtune=pwr7
Observação importante: Para gerar um código 64 bits é necessário utilizar a flag -q64
na compilação e, na execução, definir a variável de ambiente:
export OBJECT_MODE=64
Como usar as bibliotecas científicas::
+ ESSL = -lessl -lpessl
+ MPI = -L/usr/lpp/ppe.poe/lib/ -lmpi
+ LIBS = $(ESSL) $(MPI)
Nós IBM System x (processadores Intel Xeon): - Intel Fortran - Intel C - Intel MKL (Math Kernel Library)