Você está na página 1de 40

Centro Nacional de Processamento

de Alto Desempenho em So Paulo


UNICAMP / MCT-FINEP
Junho / 2013

Sumrio

Apresentao ............................................................................ 05
CENAPAD-SP .......................................................................... 06
Informaes e Suporte aos Usurios ........................................ 07
Convenes adotadas ............................................................... 08
Equipamentos disponveis ........................................................ 09
Ambiente SGI .......................................................................... 10
Softwares disponveis(Ambiente SGI) ..................................... 13
Ambiente IBM .......................................................................... 14
Softwares disponveis (Ambiente IBM) ................................... 16
Contas, projetos e contabilizao de uso .................................. 17
Acesso aos equipamentos ......................................................... 18
Escolhendo o ambiente operacional a ser utilizado .................. 20
Como executar jobs batch (Ambiente SGI Altix 1350/450) .... 22
Como executar jobs batch (Ambiente IBM) ............................ 28
Como executar jobs batch (Ambiente SGI Altix ICE ) ................ 35
Treinamentos ............................................................................ 40

Apresentao

Senhor usurio,

Este manual descreve sucintamente as caractersticas do ambiente CENAPAD-SP e


registra algumas informaes referentes utilizao do mesmo. Tutoriais que tratam mais
detalhadamente os tpicos aqui abordados, bem como informaes atualizadas sobre o
ambiente de hardware e de software podem ser obtidas pelo nosso servio on-line, no
endereo:
www.cenapad.unicamp.br
Dvidas que no forem esclarecidas por nenhuma das vias indicadas, sugestes,
comentrios ou reclamaes que contribuam para o aperfeioamento do nosso servio
devem ser encaminhadas para a equipe tcnica do CENAPAD-SP, atravs do endereo
eletrnico:
consult@cenapad.unicamp.br
Esperamos que este manual seja uma boa ferramenta de auxlio ao desenvolvimento
de sua pesquisa.
Atenciosamente,
Suporte Tcnico
CENAPAD-SP

CENAPAD-SP

O CENAPAD-SP um dos Centros Nacionais de Processamento de Alto


Desempenho que compem o programa SINAPAD, implementado no Brasil pelo MCT
atravs da FINEP. Foi instalado em junho de 1994, sendo hoje um Centro ligado ProReitoria de Pesquisa da UNICAMP.
Sua misso apoiar as atividades de P&D nas reas de cincia e tecnologia do Pas,
disponibilizando um ambiente de alto desempenho e afins, atuando como um centro de
excelncia em novas tendncias computacionais e contribuindo para a formao da
comunidade cientfica e empresarial. Para isso, disponibiliza aos seus usurios um
poderoso ambiente para computao de alto desempenho, com recursos de hardware e
software, bem com suporte tcnico e operacional necessrios.
O CENAPAD-SP oferece ainda Treinamentos especializados na rea de
Computao de Alto Desempenho, abertos comunidade cientfica e empresarial.

Informaes e Suporte aos Usurios

Todas as informaes relativas ao CENAPAD-SP e ao Projeto SINAPAD esto


disponveis em:
WWW: www.cenapad.unicamp.br
CENAPAD-SP Notcias: www.cenapad.unicamp.br/servicos/noticias/noticias.shtml

E-mails:
consult@cenapad.unicamp.br
Devem ser encaminhadas para este endereo quaisquer dvidas relativas ao uso do
ambiente, de compiladores e aplicativos em geral.
suporte@cenapad.unicamp.br
Este endereo deve ser utilizado para a notificao de problemas no ambiente, tais
como impossibilidade de acesso, falhas no sistema operacional, ou qualquer ocorrncia que
impea a utilizao de recursos computacionais oferecidos pelo CENAPAD-SP.
cursos@cenapad.unicamp.br
Informaes acerca da programao e inscrio de cursos oferecidos pelo
CENAPAD-SP devem ser solicitadas por este endereo.

Telefone: (0xx19) 3521-2195

Convenes Adotadas

Neste documento, foram adotadas as seguintes convenes:

O comando digitado pelo usurio representado por meio da fonte couriernegrito e


a sada gerada pelo sistema representada pela fonte couriernormal.
A parte varivel do comando (parmetro) representada em itlico.
O caractere ^ indica que a tecla control deve ser pressionada simultaneamente com a tecla
que o segue. Por exemplo, ^C.
Os parmetros opcionais de um comando so representados entre colchetes "[...]".
O sinal de prompt indicado pelo smbolo %.
O nome das mquinas ser representado em itlico negrito.

Equipamentos Disponveis
O CENAPAD-SP disponibiliza um ambiente computacional poderoso, baseado em
mquinas RISC (IBM) e Intel (SGI), com sistema operacional baseado em Unix. A
capacidade de processamento terica desses dois ambientes totaliza em torno de 33
TFLOPS, alm de 250 TB de disco externo. Seu uso medido em Service Units, que so
contabilizadas conforme os usurios executam comandos e processam jobs.
Os ambientes computacionais disponveis no CENAPAD-SP so:

Ambiente IBM

(Sistema Operacional: Unix AIX)

Ambiente SGI Altix (Sistema Operacional: Linux SUSE)

Cada um desses ambientes tem seus recursos, suas ferramentas, suas limitaes e
especificidades. A seguir, sero relacionadas as principais caractersticas das mquinas de
cada um desses ambientes.
Maiores detalhes podem ser obtidos a partir de:
www.cenapad.unicamp.br

Ambiente SGI
SGI Altix ICE 8400 LX
O sistema Altix ICE 8400 LX instalado no CENAPAD-SP tem 32 ns, interconectados
atravs de uma rede Infiniband de alto desempenho, dispostos em 2 individual Rack Unit
(iRU), cada um deles com desempenho terico de 160 GFLOPs e com a seguinte
configurao:
2 processadores Intel Xeon Six Core 5680 de 3.33GHz
36GB de memria RAM
hostnames r1i0n0.ice.cenapad-sp.br .. r1i0n15.ice.cenapad-sp.br
hostnames r1i1n0.ice.cenapad-sp.br .. r1i1n15.ice.cenapad-sp.br
N de acesso
O n de acesso ao sistema SGI Altix ICE ice.cenapad.unicamp.br
(143.106.42.235) que corresponde ao n ice.ice.cenapad.sp.br (10.1.5.12).
Sistema Operacional
SUSE LINUX Enterprise Server 11 SP1 (x86_64) kernel 2.6.32.13 64bits.
SGI Altix 1350/450
O sistema Altix 1350 instalado no CENAPAD-SP tem 6 ns Intel Itanium2 com a
seguinte configurao:
4 ns com 16 processadores Intel Itanium2, 1.5GHz e 64GB RAM
1 n com 4 processadores Intel Itanium2, 1.5GHz - 8GB RAM
1 n com 2 processadores Intel Itanium2, 1.5GHz - 12GB RAM
ns interconectados atravs de uma rede Infiniband de alto desempenho
O sistema Altix 450 instalado no CENAPAD-SP tem 4 ns Intel Itanium2 Dual
Core com a seguinte configurao:
2 ns com 22 processadores Intel Itanium2 Dual-core srie9000 1.6GHz e 88GB RAM
1 n com 22 processadores Intel Itanium2 Dual-core srie9000 1.6GHz e 144GB RAM
1 n com 22 processadores Intel Itanium2 Dual-core srie9000 1.6GHz - 176GB RAM
ns interconectados atravs de uma rede Infiniband de alto desempenho

10

Ns
Os ns esto dispostos em 4 frames:
Frame 01
1 n com 2 processadores Intel Itanium2, 1.5GHz
o Desempenho terico de 12 GFLOPs
o 12 GB de memria RAM
o 150 GB de espao em disco
o Hostname sg1gd1.cenapad-sp.br
2 ns com 16 processadores Intel Itanium2, 1.5GHz
o Desempenho terico de 96 GFLOPs por n
o 64 GB de memria RAM por n
o 480 GB de espao em disco (/work com 300 GB) por n
o Hostnames: sg1gh1.cenapad-sp.br, sg1gh2.cenapad-sp.br
Frame 02
1 n com 4 processadores Intel Itanium2, 1.5GHz
o Desempenho terico de 24 GFLOPs
o 8 GB de memria RAM por n
o Hostname: sg2gq1.cenapad-sp.br (athenas.cenapad.unicamp.br)
2 ns com 16 processadores Intel Itanium2, 1.5GHz
o Desempenho terico de 96 GFLOPs por n
o 64 GB de memria RAM por n
o 480 GB de espao em disco (/work com 300 GB) por n
o Hostnames: sg2gh1.cenapad-sp.br, sg2gh2.cenapad-sp.br
Frame 03
2 ns com 22 processadores Intel Itanium2 Dual-core srie9000, 1.6GHz
o Desempenho terico de 240 GFLOPs por n
o 88 GB de memria RAM por n
o 300 GB de espao em disco
o Hostnames: sg3gv1.cenapad-sp.br, sg3gv2.cenapad-sp.br
1 n com 16 processadores Intel Itanium2 Dual-core srie9000, 1.6GHz
o Desempenho terico de 175 GFLOPs no n
o 96 GB de memria RAM no n
o 300 GB de espao em disco
o Hostname: sg3gh1.cenapad-sp.br
11

Frame 04
1 n com 22 processadores Intel Itanium2 Dual-core srie9000, 1.6GHz
o Desempenho terico de 240 GFLOPs
o 176 GB de memria RAM
o 350 GB de espao em disco
o 2.2 TB de espao em disco (fastscratch)
o Hostnames: sg4gv1.cenapad-sp.br
1 n com 22 processadores Intel Itanium2 Dual-core srie9000, 1.6GHz
o Desempenho terico de 240 GFLOPs por n
o 144 GB de memria RAM
o 300 GB de espao em disco
o Hostname: sg4gv2.cenapad-sp.br

N de acesso
O n de acesso ao sistema SGI athenas.cenapad.unicamp.br (143.106.42.243) que
corresponde ao n:
sg2gq1.cenapad-sp.br.
Este n tambm o servidor de arquivos (36 TB) e de controle do sistema SGI.
Sistema Operacional
SUSE LINUX Enterprise Server 10 (ia64)
kernel 2.6.16 64bits

12

Linguagens de programao, editores e


bibliotecas - Ambiente SGI

Linguagens de programao
Intel Fortran
Intel C
GNU C e GNU C++ (gcc/g++)
Bibliotecas Cientficas
Intel MKL (Math Kernel Library)
Bibliotecas para Processamento Paralelo
MPI (Message Passing Interface)
SGI MPT (Message Passing Toolkit)
Softwares
Gaussian 2003 (Somente no ambiente SGI Altix 1350/450)
Editores de Texto
vi
emacs
Software
Uma lista completa dos recursos de software disponveis no ambiente est disponvel a
partir de :
www.cenapad.unicamp.br

13

Ambiente IBM
O equipamento IBM do CENAPAD-SP composto por 40 ns computacionais SMP
modelo IBM P750, que utilizam processadores Power7 de 3.55GHz. So 32 cores (ncleos
de processamento), 128GB de memria RAM e 908,8 GFlops de desempenho terico em
cada n computacional, totalizando 1280 cores, 5TB de memria RAM e capacidade
terica de processamento de aproximadamente 37 TFLOPs.
Conta tambm com sistema de armazenamento IBM System Storage DS5020 com
224TB e trs unidades Tape Library IBM TS3200 para backup. Possui ainda doze placas
GPU nVIDIA Tesla M2050, instaladas em seis servidores X86 com processadores Intel
Xeon Processor X5570 (2.93GHz).
Ns
O sistema composto por 48 ns dispostos em 5 frames:
40 ns IBM P750 (Hostnames: tyrno01.cenapadsp.br .. tyrno40.cenapadsp.br), cada um
com:
o 4 processadores IBM Power7 8Cores, 3.55GHz;
o 128GB de memria RAM;
o 2 discos SAS 300GB 10K;
6 ns IBM System x iDataPlex
(Hostnames: gpuno01.cenapadsp.br .. gpuno06.cenapadsp.br), cada um com:
o 2 processadores Intel Xeon Processor X5570 (2.93GHz 8MB Cache 95W),
o 2 placas nVIDIA Tesla M2050;
o 24GB de memria RAM
o 2 discos 1000GB.
1 n IBM P520 (Hostname: tyr.cenapad.unicamp.br), para acesso ao sistema, com:
o 2 processadores IBM Power6 + 2Cores, 4.7GHz;
o 16 GB de memria RAM;
o 4 discos SAS 300GB 15K;
1 n IBM P550 (Hostname: tsm.cenapadsp.br), para controle de storage e backup de
dados, com:
o 2 processadores IBM Power6+ 2Cores, 5GHz;
o 32GB de memria RAM;
o 4 discos SAS 300GB 15K;

14

Os ns so interconectados por meio de uma rede Infiniband de alto desempenho. O


n de controle e de acesso ao sistema IBM tyr.cenapad.unicamp.br (143.106.42.195),
que corresponde ao n tyr.cenapadsp.br.

Sistema Operacional
Ns P750, P550 e P520 (processadores IBM Power):
o AIX 6.1
Ns IBM System x (processadores Intel Xeon):
o SUSE Linux Enterprise Server 11 (x86_64)

15

Linguagens de programao, editores e


bibliotecas Ambiente IBM

Linguagens de Programao
C/C++
Compilador GNU de C e C++ (gcc/g++)
Compilador AIX de C e C++ (xlc/xlC)
FORTRAN
Compilador IBM de FORTRAN (xlf e f77)
Compilador IBM de FORTRAN90 (xlf90)
Bibliotecas Cientficas
ESSL (Engineering and Scientific Subroutine Library, que inclui LAPACK,
SCALAPACK, BLAS, BLACS, etc)
Bibliotecas para Processamento Paralelo
MPI (Message Passing Interface)
Editores de texto
emacs
vi

Software
Uma lista completa dos recursos de software disponveis no ambiente est disponvel a
partir de :
www.cenapad.unicamp.br

16

Contas, Projetos e
Contabilizao de Uso

O CENAPAD-SP estabelece dois tipos de contas de usurios: contas


experimentais temporrias e contas-projeto.
Contas experimentais temporrias: tm por objetivo dar ao usurio a
oportunidade de avaliar o CENAPAD-SP no que diz respeito aos equipamentos,
ambientes computacionais e softwares disponveis. Essas contas tm validade
mxima de trs meses, e sero expiradas antes desse prazo caso sejam utilizadas
mais de 10 Service Units (o equivalente a 40 horas de CPU em uma das
servidoras IBM-P750).
Contas-projeto: so contas permanentes, criadas a partir de encaminhamento
de um projeto de pesquisa.
A contabilizao do uso feita atravs de Service Units, segundo a tabela :
Modelo

Horas de CPU equivalentes


a uma Service Unit

Nmero de mquinas
no ambiente

IBM-P750

4,0 h

40

GPU

6,0 h

SGI-ICE

6,0 h

32

SGI-Itanium2

20,0h

11

s contas-projeto so alocadas inicialmente 8.000 Service Units, que podem


ser aumentadas conforme a necessidade.
No primeiro ano de vigncia de sua conta-projeto, o usurio deve encaminhar ao
CENAPAD-SP, semestralmente, um relatrio de acompanhamento, descrevendo a
utilizao que foi feita do ambiente. A partir do segundo ano de vigncia de sua conta
permanente, esse relatrio passa a ser anual. Em ambos os casos, o usurio recebe por email, com um ms de antecedncia, o modelo do relatrio peridico. Este deve ser
preenchido e enviado por e-mail para o endereo eletrnico:
suporte@cenapad.unicamp.br
Maiores informaes sobre procedimentos de abertura de contas, encaminhamento
de projetos e relatrios de acompanhamento podem ser obtidas no site:
www.cenapad.unicamp.br

17

Acesso aos Equipamentos

Para acessar remotamente o ambiente CENAPAD-SP, preciso que o usurio


possua o software SSH instalado em sua mquina. O programa telnet, que oferecia o
mesmo servio, no pode ser utilizado para conexo ao CENAPAD-SP, pois com ele a
senha do usurio trafega pela Internet sem encriptao. H verses do SSH para as
plataformas mais comuns, incluindo Windows e Unix, disponveis no FTP annimo da
UNICAMP (ftp.unicamp.br).
O acesso remoto ao CENAPAD-SP pode ser feito segundo os procedimentos a
seguir, que direcionaro o usurio para a mquina interativa do ambiente SGI Altix
1350/450.
Em ambiente Unix, executar o comando
%sshcenapad.unicamp.br[lusername]
fornecendo, quando solicitado, a identificao da conta (username) e a senha de acesso. O
SSH assume como username o login da conta por onde o usurio tenta acessar a sua conta
do CENAPAD-SP, vetando seu acesso mesma, caso as duas no tenham logins similares.
Apenas neste caso, preciso utilizar o termo entre colchetes, colocando no lugar de
username o login da sua conta no CENAPAD-SP.
Em ambiente Windows, executar o programa ssh, indicando como hostname a mquina
cenapad.unicamp.br e fornecendo, quando solicitado, a identificao da conta (username)
e a senha de acesso.
Vale ainda mencionar que, sempre que o SSH solicitar uma resposta do tipo yes or
no, a mesma deve ser escrita com todas as letras escritas em minsculo. Respostas escritas
em letras maisculas, ou abreviaes do tipo y ou n, no so aceitas.

Na transferncia de arquivos (FTP) de/para sua conta no CENAPAD-SP, o usurio


deve utilizar o SCP, um dos componentes do SSH. O SCP utiliza criptografia, impedindo
que terceiros tenham acesso s informaes transmitidas.

18

Todas as transferncias de arquivos feitas para o ambiente CENAPAD-SP devem


necessariamente ser feitas utilizando-se como destino a mquina :
cenapad.unicamp.br

A mquina cenapad.unicamp.br faz parte do ambiente SGI Altix 1350/450. Se o


usurio desejar usar seus arquivos transferidos em algum dos outros ambientes
computacionais do CENAPAD-SP, dever transferi-los do ambiente SGI Altix 1350/450
para os demais ambientes. Essa transferncia tambm dever ser feita utilizando-se o SCP,
de acordo com o ambiente escolhido como destino:
Se o destino for o ambiente IBM, o usurio deve fazer o SCP do arquivo de sua conta no
ambiente SGI para sua conta no ambiente IBM, atravs do comando:
%scp<nome_do_arquivo>login_do_usurio@tyr:~
Opcionalmente, pode-se copiar arquivos do ambiente SGI Altix 1350/450 para o ambiente
IBM atravs do comando:
%cp<nome_do_arquivo>homeibm

Se o destino for o ambiente SGI Altix - ICE, o usurio deve fazer o SCP do arquivo de
sua conta no ambiente SGI para sua conta no ambiente ICE, atravs do comando:
%scp<nome_do_arquivo>login_do_usurio@ice:~
Opcionalmente, pode-se copiar arquivos do ambiente SGI Altix 1350/450 para o ambiente
SGI-ICE atravs do comando:
%cp<nome_do_arquivo>homeice
IMPORTANTE - Caso o arquivo de origem tenha sido criado em uma mquina
Windows, preciso convert-lo para o formato Linux antes de us-lo no
ambiente CENAPAD. Para fazer essa converso, o usurio deve usar o
seguinte comando (no ambiente CENAPAD) :
%dos2unix<nome_do_arquivo>
19

Escolhendo o ambiente computacional a ser


utilizado

O CENAPAD-SP dispe de trs ambientes computacionais distintos, a saber :


Ambiente SGI Altix 1350/450
Ambiente IBM
Ambiente SGI Altix - ICE
Ao conectar-se ao CENAPAD-SP, o usurio estar por default conectado ao ambiente
SGI 1350/450
Se desejar se conectar a algum dos outros dois ambientes, o usurio deve faz-lo
atravs de um dos comandos abaixo :
%sshtyr - para direcionar sua sesso para o front-end do ambiente IBM
%sshice - para direcionar sua sesso para o front-end do ambiente ICE
O login e a senha do usurio no CENAPAD-SP so sempre os mesmos, independente
do ambiente computacional utilizado.
Em todos os ambientes, as mquinas podem ser usadas de duas maneiras:
1) Modo Interativo - usado para compilao de programas, criao e edio de inputs,
verificao de outputs e submisso de jobs a serem executados.
2) Modo Batch - usado para o processamento propriamente dito. Nesse modo, o job
submetido a um Sistema de Filas, para ser executado quando houver mquina/recursos
disponveis. Podem ser executados em batch programas seriais ou paralelos.

20

necessrio que se utilize as ferramentas adequadas em cada um dos ambientes


computacionais do CENAPAD-SP, dada a sua heterogeneidade. Algumas so comuns aos
trs ambientes (a maioria dos comandos UNIX, por exemplo). Mas h muitas diferenas
nas ferramentas disponveis em cada ambiente no que diz respeito s compilaes de
programas e s submisses de jobs para processamento.
Nos prximos captulos deste Guia sero descritos os procedimentos bsicos para
submisso de tarefas computacionais (jobs batch) em cada um dos trs diferentes ambientes
computacionais disponveis no CENAPAD-SP.

21

Como executar jobs batch


(ambiente SGI Altix 1350/450)
Submisso de jobs
Para que um job seja executado no ambiente SGI do CENAPAD-SP, o usurio deve
submet-lo ao sistema gerenciador de filas desse ambiente (PBSPro). Os jobs devem ser
submetidos ao PBSPro atravs de um arquivo de comandos (script), onde devem ser
especificadas as caractersticas e as necessidades desse job.
Os jobs podem ser seriais ou paralelos. Para ambos, o usurio deve criar um script
de submisso, e submet-lo atravs do comando :
%qsub<nome_do_script>
As filas e restries definidas no PBSPro so:

pequena
media
grande

Num Max
Jobs exec
45
35

Num Max
cpus/jobs
1
1
1

Tempo Max
uso / cpu
2 hs
120 hs
720 hs

Tempo Max
(elapsed)
-

Num Max
Jobs/user
-

Filas
Paralelas
paralela
par22
gaussian
exp32

Num Max
Jobs exec
2
1

Num Max
cpus/jobs
16
22 (fixo)
16
32(fixo)

Tempo Max
uso / cpu
1536 hs
3696 hs
2688 hs
768 hs

Tempo Max
(elapsed)
768 hs
240 hs
720 hs
25 hs

Num Max
Jobs/user
1
2
-

Filas Seriais

reas scratch
As reas scratch disponveis, para gravao de arquivos temporrios durante o
processamento dos jobs so:

22

Filesystem

Tamanho

Uso

/workssa

1,7 TB

compartilhada por todos os ns

/work

300 GB

local em cada um dos ns

No ambiente SGI-Altix 1350/450 esto definidos os seguintes limites para cada usurio:

O nmero mximo de jobs em execuo simultnea para um mesmo usurio 4.

O nmero mximo de jobs aguardando execuo (estados Queued ou Hold) 10.

O nmero mximo de processadores sendo utilizados simultaneamente por um


mesmo usurio 36.

O nmero mximo de jobs na fila exp32 para um mesmo usurio 2 (os jobs
excedentes sero automaticamente cancelados).

O nmero mximo de jobs nas filas par22 para um mesmo usurio 2 (os jobs
excedentes sero automaticamente cancelados).

O tempo de processamento na fila paralela contabilizado pela soma do uso de


todos os processadores.

Criando um Arquivo de Comandos


Para executar um processamento, preciso criar um arquivo de comandos que
descreve o job a ser executado.
Exemplos de arquivos de comandos (scripts) de submisso para as diferentes classes
(filas)
1)

Jobs Seriais

Para submisso de jobs para as classes que processam programas seriais, deve-se
usar um script como esse do exemplo a seguir:
#PBSqpequena
#PBSNtestjob
#PBSV
#!/bin/sh
cd$PBS_O_WORKDIR
echo""
echo"Iniciodojob:"`date`
echo"Hostname:"`hostname`
<chamadadoexecutveldoprogramacomseusparmetros>
echo"Finaldojob:"`date`
echo""

23

A classe escolhida no exemplo anterior a classe pequena; h tambm as classes


mdia e grande que podem ser usadas, dependendo do tempo estimado de execuo do
processamento (ver tabela na pgina 22).

2)

Jobs Paralelos

A execuo de programas paralelos que necessitam mais de um processador em


qualquer n, feita atravs do comando mpirun, que administra o ambiente paralelo, e por
sua vez, a comunicao entre os processadores.
A execuo de jobs paralelos, deve ser feita atravs da submisso de um script.
Por exemplo, o script jobpar.sh pode conter:
#PBSqparalela
#PBSNtestjob
#PBSV
#PBSlncpus=4
#!/bin/sh
cd$PBS_O_WORKDIR
echo""
echo"Iniciodojob:"`date`
echo"Hostname:"`hostname`
echo"PWD:"$PWD
echo"Arquivos:"
mpirunnp4<chamadadoexecutveldoprogramacomseusparmetros>
echo"Finaldojob:"`date`
echo""

Neste caso, acrescenta-se a diretiva PBS -l que especifica os recursos necessrios


para a execuo do job.
Para uma execuo em paralelo, o principal recurso o nmero de processadores
que sero utilizados.
#PBS -l ncpus=<n>
Nmero n de processadores.

24

O comando mpirun ainda pode especificar o nmero de processos que sero


inicializados para execuo, atravs da opo -np.
Se o nmero de processos for igual ao nmero de processadores, o mpirun iniciar
um processo por processador.
Se o nmero de processos for maior que o nmero de processadores, o mpirun
iniciar mais de um processo por processador.

3)

Jobs Gaussian

A execuo de jobs Gaussian pode ser feita atravs da submisso de um script como
o exemplo a seguir.
Neste exemplo, devem ser alterados:

o nmero de cpus a serem utilizadas (-l ncpus=numero)

o nome do job (-N nome)

o login do usurio (mkdir -p /work/G03/loginusuario)

o login do usurio (cd /work/G03/loginusuario)

o nome dos arquivos de entrada e sada na linha g03 < nomeinput > & nomesaida

25

Exemplo de script utilizando 4 CPUs:


#!/bin/sh
#PBSqgaussian
#PBSlncpus=4
#PBSNtesteg03
echo""
echo"Iniciodojob:"`date`
echo"Hostname:"`hostname`
echo"PWD:"$PWD
echo""
exportPATH=$PATH:/opt/gaussian/g03
exportGAUSS_EXEDIR=/opt/gaussian/g03
mkdirp/work/G03/loginusuario
cd/work/G03/loginusuario
g03<input.com>&output.log
echo""
echo"Finaldojob:"`date`
echo""

Importante:
No script acima, preciso colocar o "caminho" dos arquivos de input e output
desejados na linha de comando em que se faz a chamada do G03. Se esses arquivos
estiverem no diretrio raz de sua conta, basta especificar para o exemplo acima
~/input.com e ~/output.log
Para processamentos do G03 utilizando mais do que uma CPU, preciso que o
arquivo de input correspondente seja configurado de maneira consistente com o nmero de
CPUs solicitado. Para o exemplo acima (4 CPUs) o arquivo de input correspondente deve
indicar tambm 4 CPUs, na diretiva nprocshared :
%nprocshared=4
4)

Jobs Gamess

A execuo de jobs Gamess pode ser feita atravs da submisso de um script como
o exemplo abaixo.
Neste exemplo, devem ser alterados:

26

nmero_de_cpus - nmero de cpus a serem utilizadas

nomejob - identificao do job

nomejob_out - nome do arquivo stdout a ser gravado

nomejob_err - nome do arquivo stderr a ser gravado

input_gms - nome do arquivo de input para o Gamess (se no estiver no mesmo


diretrio do script deve ser especificado todo o path)

log_gms - nome do arquivo de sada do Gamess (se no estiver no mesmo diretrio


do script deve ser especificado todo o path)

Exemplo de script:
#!/bin/sh
#PBSqparalela
#PBSlncpus=numero_de_cpus
#PBSNnomejob
#PBSonomejob_out
#PBSenomejob_err
echo""
echo"Iniciodojob:"`date`
echo"Nodesutilizadosparaexecucao:"
cat$PBS_NODEFILE
echo""
cd$PBS_O_WORKDIR
dirgms=/usr/local/gamess_12_JAN_2009_R3
NCPUS=numero_cpus
$dirgms/rungmsinput_gms00$NCPUS>&log_gms
echo""
echo"Finaldojob:"`date`
echo""

27

Como executar jobs batch


(ambiente IBM)

Submisso de jobs
Para submeter um job para execuo no ambiente IBM P750 do CENAPAD-SP o usurio
deve:
1.

Logar no CENAPAD-SP

2.
Logar na mquina interativa deste ambiente por meio do comando:
%sshtyr
(utilizando o mesmo usurio e a mesma senha do CENAPAD-SP)
3.

Criar um arquivo com diretivas sobre o job a ser executado

4.
Submeter o job a ser executado para o sistema de filas (LoadLeveler), atravs do
comando:
%llsubmit<script>
Configurao do sistema de filas - LoadLeveler
Classes
O ambiente de processamento de jobs do CENAPAD-SP est dividido em dois grandes
grupos:

processamento serial
processamento paralelo

Para atender as necessidades de cada um destes dois grupos existem seis tipos de
classes, que foram definidas com o objetivo de distribuir da melhor forma possvel os
recursos do ambiente entre os usurios e, principalmente, otimizar o tempo de
processamento e o tempo de espera na fila.
As classes diferenciam-se por:

28

quantidade de processadores utilizados;


limite de uso de CPU (tempo total de CPU utilizado);
limite de tempo de execuo (tempo que o job pode permanecer em execuo);
quantidade mxima de jobs.

As classes disponveis possuem a seguinte configurao:


Nmero
de ns

Tipo

Serial

Paralela

Classe

Limite de
uso de CPU

Limite de tempo
processamento

Num. Mx.
de cores

Num. Mx.
de threads

pequena

2 horas

2:30 horas

20

media

5 dias

5 dias e 12 horas

grande

30 dias

31 dias

20

paralela

256 dias

30 dias e 4 horas

64

256

exp512

512 dias

1 dia e 30 minutos

128

512

11

par128

896 dias

7 dias e 2 horas

32

128

gaussian

256 dias

30 dias e 4 horas

32

reas scratch
As reas scratch disponveis, para gravao de arquivos temporrios durante o
processamento dos jobs so:
Filesystem

Tamanho

/work

200 GB

Uso
local em cada um dos ns

/workpar

32 TB

compartilhado pelos ns que executam jobs da fila paralela

/work128

29 TB

compartilhado pelos ns que executam jobs da fila par128

/work512

29 TB

compartilhado pelos ns que executam jobs da fila exp512

/workgau

32 TB

disponvel no n que executa jobs da fila gaussian

No ambiente IBM esto definidos os seguintes limites para cada usurio:

mximo de 2 jobs em execuo na fila gaussian.


mximo de 1 job em execuo na fila exp512.
mximo de 2 jobs em execuo na fila par128.
mximo de 6 jobs em execuo simultnea (jobs no estado Running) nas filas;
mximo de 10 jobs aguardando recursos para execuo (jobs no estado Idle).

O tempo de processamento na fila paralela contabilizado pela soma do uso de todos os


processadores.
Criando um Arquivo de Comandos
Antes de submeter um job para execuo, necessria a criao de um arquivo de
comandos, que descreve o job que dever ser executado. Ou seja, todo job deve ser
submetido atravs de um arquivo de comandos, pois o LoadLeveler no submete arquivos
executveis.
29

Este arquivo de comandos assemelha-se a um shell script, que contm comandos


dados por palavras-chaves do LoadLeveler (diretivas) que descrevem o job a ser executado.
Pode tambm conter linhas de comentrios (no executveis).
Exemplos de arquivos de comandos (scripts) de submisso para as diferentes classes
(filas)
1)

Jobs Seriais

Para submisso de jobs para as classes que processam programas seriais, deve-se
usar um script como o exemplo a seguir:
##Jobserial
#@class=pequena
#@job_name=jobT
#@output=jobT.$(jobid).out
#@error=jobT.$(jobid).err
#@notification=never
#@queue
#exibenoarquivodesaidaonomedohostondejobfois
#executadoedata/hora
echo=============================================
echo"`/bin/hostname``/bin/date`"
echo=============================================
#execucaodoprograma
./programa</dev/null>output.$$2>&1

A classe escolhida no exemplo acima a classe pequena; h tambm as classes


mdia e grande que podem ser usadas, dependendo do tempo estimado de execuo do
processamento (ver tabela na pgina 29).

2)

Jobs Paralelos

Jobs paralelos so processados por meio da submisso para as classes paralela,


par128 ou exp512. Cada uma destas classes tem caractersticas diferenciadas, como por
exemplo: tempo de cpu, tempo mximo (wall_clock) de execuo e nmero de
processadores alocados. Para a submisso de jobs para uma destas classes deve ser
utilizado um script como um dos exemplos a seguir.

30

Classe Paralela

#!/bin/sh
#
#@node=1
#@total_tasks=4
#@node_usage=shared
#@job_name=jobpar
#@input=/dev/null
#@output=jobpar.$(Cluster).$(Process).out
#@error=jobpar.$(Cluster).$(Process).err
#@notification=never
#@environment=COPY_ALL
#@job_type=parallel
#@class=paralela
#@queue
./programa</dev/null>output.$$2>&1

No exemplo acima foi solicitado para o job 1 node e 4 tasks (CPUs/cores). Pode-se
solicitar no mximo 8 nodes e 64 tasks (CPUs/cores) por job. Caso o nmero de nodes (ou
seja, a diretiva "#@ node") no seja especificado no script de submisso, ser assumido que
o nmero de nodes desejado 1 (um). Nesse caso, o valor mximo permitido para a
diretiva "#@ total_tasks" de 32 (que o nmero de CPUs em cada node desse ambiente).

Classe Par128

#!/bin/sh
#Exemplojobclassepar128
#@node=1
#@total_tasks=32
#@node_usage=not_shared
#@job_name=jobpar128
#@input=/dev/null
#@output=jobpar128.$(Cluster).$(Process).out
#@error=jobpar128.$(Cluster).$(Process).err
#@notification=never
#@environment=COPY_ALL
#@job_type=parallel
#@class=par128
#@core_limit=8388608
#@queue
exportOMP_NUM_THREADS=4
exportMP_TASK_AFFINITY=cpu:4
./programa</dev/null>output.$$2>&1

No exemplo acima, foi solicitado para o job 1 node e 32 tasks (CPUs/cores). As


diretivas que indicam o nmero de nodes (# @ node = 1), o nmero de CPUs/cores (# @
total_tasks = 32) e o modo de compartilhamento do node (# @ node_usage =
not_shared) no devem ser modificadas nos scripts de submisso para a fila par128. Caso
alguma dessas diretivas seja modificada, a submisso no ser feita (o job no ser includo
na fila correspondente).
31

Classe exp512

#!/bin/sh
#Exemplojobclasseexp512
#@node=4
#@total_tasks=128
#@node_usage=not_shared
#@job_name=job_exp512
#@input=/dev/null
#@output=job_exp512.$(Cluster).$(Process).out
#@error=job_exp512.$(Cluster).$(Process).err
#@notification=never
#@environment=COPY_ALL
#@job_type=parallel
#@class=exp512
#@network.MPI=sn_all,not_shared,us
#@bulkxfer=yes
#@queue
exportOMP_NUM_THREADS=4
exportMP_TASK_AFFINITY=cpu:4
./programa</dev/null>output.$$2>&1

No exemplo acima, foram solicitados para o job 4 nodes e 32 tasks (CPUs/cores).


As diretivas que indicam o nmero de nodes (# @ node = 4), o nmero de CPUs/cores (#
@ total_tasks = 32) e o modo de compartilhamento dos nodes (# @ node_usage =
not_shared) no devem ser modificadas nos scripts de submisso para a fila exp512. Caso
alguma dessas diretivas seja modificada, a submisso no ser feita (o job no ser includo
na fila correspondente).
Para todos os exemplos acima, assumimos que o programa sendo executado
(./programa) est no mesmo diretrio em que est o script de submisso.
O usurio pode especificar o caminho completo (PATH) do programa a ser
executado, caso necessrio.

3)

Jobs Gaussian
Exemplo de script utilizando 4 CPUs :

#!/usr/bin/csh
#
#ScriptparasubmissaodejobsGaussian(G09)noambiente
#IBM/Loadlevelerusando4Processadores
#
#IMPORTANTE:deveserespecificadonoarquivodeinputa
#diretivaindicandoexecucaoem4CPUs

32

#
#%NProcShared=4
#
#@node=1
#@total_tasks=4
#@node_usage=shared
#@job_name=jobgauss
#@input=/dev/null
#@output=jobgauss.$(Cluster).$(Process).out
#@error=jobgauss.$(Cluster).$(Process).err
#@notification=never
#@environment=COPY_ALL
#@job_type=parallel
#@class=gaussian
#@queue
#
#SetarvarsdeambientenecessariasparaoG09
#
setenvg09root/g09root
setenvGAUSS_SCRDIR/workgau/G09/$USER
source$g09root/g09/bsd/g09.login
#
#Criadiretoriodescratchaserusadonaexecucao
#
mkdirp/workgau/G09/$USER
#
#Indicaexecucaonodiretoriodescratch
#
cd$GAUSS_SCRDIR
#
#Execucaoemparalelo/multithread
#
setenvOMP_NUM_THREADS4
setenvMP_TASK_AFFINITYcpu:4
#
#Chamadadoexecutavel
#
#ATENCAO:deveserindicadoocaminhocompleto(PATH)
#deondeesta'oarquivodeinput(extensao.com)eo
#caminhocompleto(PATH)deondedevesergravadoo
#arquivodeoutput(extensao.log)
#
g09<caminho_completo/input.com>caminho_completo/output.log

33

#
#Copiaarquivochkparadestino(nacontadousuario)
#
#ATENCAO:deveserindicadoocaminhocompleto(PATH)
#deondedevesergravadooarquivodechkgerado
#
cpGau*chkcaminho_completo
#
#removendoarquivostemporariosgeradosnaareadescratch
#
rmGau*rwf

Importante:
No script acima, preciso colocar o "caminho" dos arquivos de input e output
desejados na linha de comando em que se faz a chamada do G09. Se esses arquivos
estiverem no diretrio raiz de sua conta, basta especificar para o exemplo acima
~/input.com e ~/output.log
Para processamentos do G09 utilizando mais do que uma CPU, preciso que o
arquivo de input correspondente seja configurado de maneira consistente com o nmero de
CPUs solicitado. Para o exemplo acima (4 CPUs) o arquivo de input correspondente deve
indicar tambm 4 CPUs, na diretiva nprocshared :
%NProcShared=4
Para uma melhor performance, o script acima faz a execuo do G09 a partir de um
diretrio de scratch local da mquina (/work), e no a partir de reas de scratch global.
Recomendamos que esse procedimento no seja modificado.
Mas a rea /work limitada em 200 GB. Caso haja a necessidade de gerar grandes
arquivos temporrios, o /work no exemplo acima deve ser substituido pela rea de scratch
global /workgau (que tem 32 TB).

34

Como executar jobs batch


(ambiente SGI Altix ICE 8400 LX)
Submisso de jobs
Para submeter um job para execuo no ambiente SGI Altix ICE do CENAPAD-SP o
usurio deve:
1.

Logar no CENAPAD-SP

2.
Logar na mquina interativa deste ambiente por meio do comando:
%sshice
(utilizando o mesmo usurio e a mesma senha do CENAPAD-SP)
3.

Criar um arquivo com diretivas sobre o job a ser executado

4.

Submeter o job a ser executado para o sistema de filas (PBS), atravs do comando:

%qsub<nome_do_script>
As filas e restries definidas no PBSPro so:
Fila
parice
par48
exp96

Num Max
jobs exec
2
1

Num Max
cpus / job
48
48 (fixo)
96 (fixo)

Tempo Max
uso cpu
17280 hs
8064 hs
2304 hs

Tempo Max
(elapsed)
720 hs
168 hs
24 hs

Num Max jobs


/ user
2
2

O nmero mximo de jobs em execuo simultnea para um mesmo usurio 4.

O nmero mximo de jobs aguardando execuo (estados Queued ou Hold) 10.

O nmero mximo de processadores sendo utilizados simultaneamente por um mesmo


usurio 96.

O nmero mximo de jobs na fila exp96 para um mesmo usurio 2 (os jobs
excedentes sero automaticamente cancelados).

O nmero mximo de jobs nas filas par48 para um mesmo usurio 2 (os jobs
excedentes sero automaticamente cancelados).

O tempo de processamento nestas fila paralelas contabilizado pela soma do uso de


todos os processadores.

35

rea de Scratch
Existe nesse ambiente uma rea scratch para gravao dos arquivos temporrios gerados
durante o processamento dos jobs. Essa rea tem 23 TB, e deve ser referenciada como :
/workice
Criando um Arquivo de Comandos
Tambm no ambiente SGI Altix ICE preciso criar um arquivo de comandos que
descreve o job a ser executado.
Nesse ambiente os jobs devem obrigatoriamente ser paralelos (no h filas seriais
definidas).
Para execuo de processamentos paralelos, recomenda-se o uso do mpiexec_mpt
(que otimizado para esse ambiente).

Exemplos de arquivos de comandos (scripts) de submisso para as diferentes classes


(filas)
1)

Jobs Paralelos fila parice

A execuo de jobs paralelos, pode ser feita atravs da submisso de um script ou


de um arquivo binrio. Por exemplo, o arquivo jobpar.sh pode conter:
#PBSqparice
#PBSNtestjob
#PBSV
#PBSlnodes=1:ppn=4
#!/bin/sh
cd$PBS_O_WORKDIR
echo""
echo"Iniciodojob:"`date`
echo"Hostname:"`hostname`
echo"PWD:"$PWD
#
#DefinePATHeLD_LIBRARY_PATHparausodompiexec_mpt
#
exportPATH=/opt/sgi/mpt/mpt2.03/bin:$PATH
exportLD_LIBRARY_PATH=/opt/sgi/mpt/mpt2.03/lib:$LD_LIBRARY_PATH
#DefinirvariavelparadesligaromapeamentodememoriafeitopeloMPI
exportMPI_MEMMAP_OFF=1

36

#
#Chamadadoexecutavel
#Aexecucaodeveserfeitaatravesdoscriptmpiexec_mpt
#
/opt/sgi/mpt/mpt2.03/bin/mpiexec_mptnp4<executvel>
#
echo"Finaldojob:"`date`
echo""

No exemplo anterior, so solicitados 1 node e 4 processadores nesse node, atravs


das diretivas:
#PBS -l nodes=1:ppn=4
Para uso de 4 a 12 processadores : deve ser especificado o nmero N de Ns com
o valor fixo 1 (um), e o nmero n de processadores a serem usados nesse N.
#PBS -l nodes=1:ppn=<n>
Para uso de mais de 12 (e at 48) processadores : deve ser especificado o
nmero N de Ns, e o nmero n de processadores em cada N.
#PBS -l nodes=<N>:ppn=<n>

2) Jobs paralelos - fila par48


Exemplo do arquivo jobpar.sh (script de submisso) :
#PBSqpar48
#PBSNtestjob
#PBSojobout
#PBSejoberr
#PBSV
#PBSlnodes=4:ppn=12
#!/bin/sh
cd$PBS_O_WORKDIR
echo""
echo"Iniciodojob:"`date`
echo"Hostname:"`hostname`
#
#ParaalgumasaplicacoesMPIqueefetuammuitacomunicacaoentre
#processosentrenos,enecessarioreduzirotamanhodobuffer
#Infiniband:Minimo=8192;Maximo=131072(default)
exportMPI_IB_BUFFER_SIZE=8192
#

37

#Emaplicacoesqueutilizamapenasumno(nodes=1),eaconselhavel
#definirumvalorparaobufferdememoriacompartilhada.
#Recomendavelvaloremtornode2048bytes
exportMPI_BUFFER_MAX=2048
#
echo"PWD:"$PWD
#
#DefinePATHeLD_LIBRARY_PATHparausodompiexec_mpt
exportPATH=/opt/sgi/mpt/mpt2.03/bin:$PATH
exportLD_LIBRARY_PATH=/opt/sgi/mpt/mpt2.03/lib:$LD_LIBRARY_PATH
#Definirvariavelparadesligaromapeamentodememoriafeitopelo
MPI
exportMPI_MEMMAP_OFF=1
#
#Chamadadoexecutvel
#Aexecucaodeveserfeitaatravesdoscriptmpiexec_mpt
#
/opt/sgi/mpt/mpt2.03/bin/mpiexec_mptnp48<executvel>
#
echo"Finaldojob:"`date`
echo""

3) Jobs paralelos - fila exp96


Exemplo do arquivo jobpar.sh (script de submisso) :
#PBSqexp96
#PBSNtestjob
#PBSojobout
#PBSejoberr
#PBSV
#PBSlnodes=8:ppn=12
#!/bin/sh
cd$PBS_O_WORKDIR
echo""
echo"Iniciodojob:"`date`
echo"Hostname:"`hostname`
#
#ParaalgumasaplicacoesMPIqueefetuammuitacomunicacaoentre
#processosentrenos,enecessarioreduzirotamanhodobuffer
#Infiniband:Minimo=8192;Maximo=131072(default)
exportMPI_IB_BUFFER_SIZE=8192
#
#Emaplicacoesqueutilizamapenasumno(nodes=1),eaconselhavel
#definirumvalorparaobufferdememoriacompartilhada.
#Recomendavelvaloremtornode2048bytes
exportMPI_BUFFER_MAX=2048
#
echo"PWD:"$PWD

38

#
#DefinePATHeLD_LIBRARY_PATHparausodompiexec_mpt
#
exportPATH=/opt/sgi/mpt/mpt2.03/bin:$PATH
exportLD_LIBRARY_PATH=/opt/sgi/mpt/mpt2.03/lib:$LD_LIBRARY_PATH
#Definirvariavelparadesligaromapeamentodememoriafeitopelo
MPI
exportMPI_MEMMAP_OFF=1
#
#Chamadadoexecutvel
#Aexecucaodeveserfeitaatravesdoscriptmpiexec_mpt
#
/opt/sgi/mpt/mpt2.03/bin/mpiexec_mptnp48<executvel>
#
echo"Finaldojob:"`date`
echo""

Em todos os exemplos de script acima foi usado o mpiexec_mpt (que o MPI


otimizado pela SGI para execuo de programas paralelos nesse ambiente). possvel
utilizar outros comandos, tais como mpirun (mpich2) e mpiexec (Intel MPI).
Para mais informaes, consulte www.cenapad.unicamp.br

39

Treinamentos

O CENAPAD-SP oferece os seguintes treinamentos:


Introduo ao MPI
Introduo ao FORTRAN 90
Introduo ao SAS
Introduo Linguagem C
Introduo ao OpenMP
A divulgao destes cursos feita via Internet, pelo endereo
www.cenapad.unicamp.br (na seo Servios, subseo Treinamentos), onde so
divulgados a data, o local e horrio em que estes treinamentos ocorrero. Funcionrios e
alunos de ps-graduao da UNICAMP so isentos do pagamento de taxas.
Dvidas referentes a treinamentos devem ser encaminhadas para:
cursos@cenapad.unicamp.br

40

Você também pode gostar