1. Características da máquina |
 |
- SGI Altix 3700 BX2
- 32 Processadores Itanium2 1.5 GHz
- 64GB de memória RAM
- 2 Discos de 140GB
- 1 disco do Sistema Operacional
- 1 disco para dados (/data2)
- Sistema de Filas PBS (Portable Batch System)
|
- O disco para dados está montado no diretório /data2, não coloquem dados no /tmp
- Crie um diretório nomeado com o seu login (Examplo: /data2/joao) para melhor organização dos dados
- Este diretório deverá ser usado para entrada e saída de programas
- Este diretório é para armazenamento temporário, os dados devem ser retirados assim que possível (Não tem backup)
3. Módulos de Ambiente (module) |
A altix utiliza o pacote de módulos de ambiente (module) que possibilita a modificação dinâmica do ambiente do usuário através de módulos.
Cada módulo contém informações necessárias para configurar o shell para uma determinada aplicação. Tipicamente são setadas variáveis de ambiente como PATH, MANPATH, LD_LIBRARY_PATH, entre outras.
Módulos podem ser carregados e descarregados automaticamente.
Módulos são úteis no gerenciamento de diferentes versões de aplicações.
Comandos
module
lista todas as opções do comando
module list
lista todos os módulos carregados no login
module avail
lista todos os módulos disponíveis no sistema
module help <nome_do_módulo>
fornece informações sobre o módulo especificado
module load <nome_do_módulo>
carrega o módulo especificado
module unload <nome_do_módulo>
descarrega o módulo especificado
Todos usuários estão carregando os seguintes módulos automaticamente:
- intel-icc (intel-icc-9.0)
- intel-ifort (intel-ifort-9.0)
- intel-idb (intel-idb-9.0)
- gromacs (3.3.1)
- nagware (trial)
- pbs
Para carregar um módulo automaticamente ao se logar inclua no arquivo de inicialização .profile (bash) ou .login (csh) o comando:
module load <nome_do_módulo>
| Fila | Prioridade | Total CPUs | Max CPUs/Job | Min CPUs/Job | Max Memória/Job (GB) |
| q_16cpus | 1000 | 16 | 16 | 1 | 16 |
| q_8cpus | 1000 | 8 | 8 | 4 | 8 |
| q_4cpus | 1000 | 4 | 4 | 2 | 4 |
| q_2cpus | 1000 | 2 | 2 | 1 | 2 |
| prjhemo | 500 | 16 | 16 | 1 | 16 |
| q_bp | 0 | 16 | 8 | 1 | 8 |
O número máximo de jobs rodando por usuário é 2.
A fila prjhemo é exclusiva do projeto prjhemo
As filas de maior prioridade (1000) podem suspender jobs na fila de menor prioridade (-1000). Os jobs quando suspendidos ficam marcados com a flag S. Quando os recursos estiverem disponíveis, esses jobs voltarão a rodar do ponto em que pararam.
Na submissão, caso não seja especificada a fila, o job irá rodar na fila default que é a q_bp.
Para verificar a configuração das filas execute o comando qstat -Qf.
6.1 Submetendo Job
Um job PBS pode ser submetido utilizando linha de comando ou via xpbs.
Na linha de comando, o usuário pode criar um job script, e submetê-lo. Durante a submissão
é possível sobrescrever elementos do job script.
6.1.1 PBS Job Script
Um PBS job script consiste em:
- Especificação de um shell UNIX (#!/bin/bash ou #PBS -S /bin/bash)
- Diretivas do PBS
- Tarefas (programas ou comandos)
Para submeter um job PBS, o usuário deve digitar:
qsub nome_do_script
6.1.2 Job serial
a) Script: jobscript1
#PBS -S /bin/bash
#PBS -l ncpus=1
#PBS -N testjob
cd $PBS_O_WORKDIR
./myprogram
|
Para submeter:
qsub jobscript1
b) Script: jobscript2
#PBS -S /bin/bash
#PBS -N testjob
#PBS -l ncpus=1
#PBS -q q_2cpus
cd $PBS_O_WORKDIR
./myprogram
|
Para submeter:
qsub jobscript2
6.1.3 Job paralelo (mpich)
a) Script: paralelo1
#PBS -S /bin/bash
#PBS -l ncpus=2
mpirun -np 2 /usr/local/sources/NPB3.2.1/NPB3.2-MPI/bin/cg.C.2
|
Para submeter:
qsub paralelo1
b) Script: paralelo2
#PBS -S /bin/bash
#PBS -q q_4cpus
#PBS -l ncpus=2
mpirun -np 2 /usr/local/sources/NPB3.2.1/NPB3.2-MPI/bin/cg.C.2
|
Para submeter:
qsub paralelo2
c) Script: paralelo3
#PBS /bin/bash
#PBS -l ncpus=4
cd $PBS_O_WORKDIR
/usr/local/gromacs-3.3.1/bin/grompp_mpi_f -np 4
mpirun -np 4 /usr/local/gromacs-3.3.1/bin/mdrun_mpi_f
|
Para submeter:
qsub -q q_4cpus paralelo3
6.1.4 Job paralelo (OpenMP)
a) Script: openmp.sh
#PBS -S /bin/bash
#PBS -l ncpus=2
cd $PBS_O_WORKDIR
export OMP_NUM_THREADS=2
./openmp.exe
|
Para submeter:
qsub openmp.sh
6.2 Verificando Status dos Jobs
Comando: qstat [parametros]
- qstat
- qstat -f jobid
exibe informações completas do job
- qstat -u usuario
exibe informações somente do usuário especificado
- qstat -r
exibe apenas os jobs que estão rodando
- qstat -i
exibe os apenas os jobs que não estão rodando
6.3 Removendo Jobs
Comando: qdel [parametros]
- qdel jobid
- qdel `qselect -u usuario`
remove todos jobs de um determinado usuário
- qdel `qselect -u usuario -q fila`
remove todos jobs de um determinado usuário em uma fila específica
- Programas Fortran
Todo arquivo no fortran é associado a um número (file descriptor).
O usuário não deve associar o file descriptor de um arquivo a 5.
Exemplo de um teste com erro:
program teste
NIIN='in/INPUT.SA'
iin= 5
open(unit=5 , file= NIIN)
close(iin)
stop
end
A saída de erro será:
forrtl: Bad file descriptor
forrtl: severe (108): cannot stat file, unit 5, file stdin
Image PC Routine Line Source
a.out 40000000000982B0 Unknown Unknown Unknown
a.out 4000000000094590 Unknown Unknown Unknown
a.out 4000000000052F50 Unknown Unknown Unknown
a.out 4000000000007C40 Unknown Unknown Unknown
a.out 40000000000070A0 Unknown Unknown Unknown
a.out 4000000000011880 Unknown Unknown Unknown
a.out 4000000000002AA0 Unknown Unknown Unknown
a.out 40000000000029D0 Unknown Unknown Unknown
Unknown 2000000000405C50 Unknown Unknown Unknown
a.out 40000000000027C0 Unknown Unknown Unknown
- Link
O programa a ser executado não deve ser um link. Embora em alguns casos rode sem problema já foram detectados casos em que isso não acontece.
- Erro de compilação do SGI MPT (MPI da SGI)
Quando for linkar com a biblioteca do mpi (-lmpi) nunca usar a opção
-static pois essa tentará linkar com a bilbioteca estática libmpi.a que não existe.
Cada comando possui uma gama de opções. Para maiores detalhes consulte os manuais dos comandos:
- man qsub
- man qstat
- man qselect
- man qdel
O manual completo do PBS (PBS User Guide) pode ser baixado no link abaixo
PBSProUG_7.1.pdf