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:

  1. Criar um arquivo com diretivas sobre o job a ser executado

  2. 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)