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)