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 jobsllmodify
: para modificar jobs pendentellcancel
: para remocao de jobs das filasllstatus
: exibe o estado dos nósllq
: exibe o estado dos jobsllclass
: 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)