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)


 2. Disco de dados (Scratch disk)

 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

Todos usuários estão carregando os seguintes módulos automaticamente: 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>

 4. Programas instalados

 5. Filas



FilaPrioridadeTotal CPUsMax CPUs/JobMin CPUs/JobMax Memória/Job (GB)
q_16cpus10001616116
q_8cpus10008848
q_4cpus10004424
q_2cpus10002212
prjhemo5001616116
q_bp016818


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. PBS

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:
  1. Especificação de um shell UNIX (#!/bin/bash ou #PBS -S /bin/bash)
  2. Diretivas do PBS
  3. 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]

  1. qstat
  2. qstat -f jobid
    exibe informações completas do job
  3. qstat -u usuario
    exibe informações somente do usuário especificado
  4. qstat -r
    exibe apenas os jobs que estão rodando
  5. qstat -i
    exibe os apenas os jobs que não estão rodando

6.3 Removendo Jobs

Comando: qdel [parametros]

  1. qdel jobid
  2. qdel `qselect -u usuario`
    remove todos jobs de um determinado usuário
  3. qdel `qselect -u usuario -q fila`
    remove todos jobs de um determinado usuário em uma fila específica

 7. Erros detectados

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

  3. 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.

 8. Comentários Finais

Cada comando possui uma gama de opções. Para maiores detalhes consulte os manuais dos comandos:

 9. Manual do Usuário

O manual completo do PBS (PBS User Guide) pode ser baixado no link abaixo

PBSProUG_7.1.pdf