No cluster Feynman está disponível a versão de Intel MPI 5. Para utilizar essa versão deve-se executar:
source /home/sw/masternode/intel/2015/install/composerxe/bin/compilervars.sh intel64
source /home/sw/masternode/intel/2015/install/mpi/impi/5.1.2.150/bin64/mpivars.sh
Filas de processamento definidas
Os nodes possuem 2 processadores Intel Xeon E5620. Dessa forma, cada node possui 2 (processadores )* 4 (núcleo por processadores) *2 (threads por núcleo) = 16. Porém, a utilização dessas threads em processo puramento CPU-bond não é vantajosa. O usuário pode escolher em um ppn com o número de cores máximo de 16.
A submissão de jobs para o nós de processamento é realizado através de filas de processamento. Na tabela abaixo contém as filas que estão definidas no momento:
Fila | descrição/uso | # de cores | jobs por usuário | tempo máximo (walltime) | nós disponíveis -l nodes |
par144RAM | para jobs que precisem de até 144 GB de RAM | 16 | 1 | 2 dias | 1 |
par72RAM | para jobs que precisem de até 72 GB de RAM | 16 | 1 | 2 dias | 1 |
par64 | para jobs que precisem de até 32 GB de RAM e até 64 cores | 64 | 1 | 2 dias | 7 (compartilhado com a par32) |
par32 | para jobs que precisem de até 32 GB de RAM e até 32 cores | 32 | 1 | 4 dias | 7 (compartilhado com a par64) |
gpu | para jobs utilizaram as duas telas Nvidia C2050 | 16 | 1 | 1 dia | 1 |
par16 | para jobs que precisem de até 32 GB de RAM e até 16 cores em um node | 16 | 1 | 4 dias | 1 |
Filas de processamento definidas
A submissão de jobs para o nós de processamento é realizado através de filas de processamento. A seguir apresenta-se as filas que estão definidas no momento:
- Para o envio de jobs , deve-se criar um arquivo de submissão (por exemplo exemplo 1.pbs) e usar o comando qsub (por exemplo qsub exemplo1.pbs)
- Cada usuário poderá ter no máximo 2 jobs na mesma fila (um executando e outro esperando a execução ou dois jobs esperando execução)
Exemplos de arquivos para envio de jobs
- envio para a fila par32 (permite ate 32 cores em máquinas com 32 GB de RAM)
#!/bin/bash
#PBS -M usuario@ifi.unicamp.br
### Mandar email no inicio e fim
#PBS -m abe
### Name do processo
#PBS -N par32a
### Arquivos de saida
#PBS -e par32a.err
#PBS -o par32a.out
### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par32
## e solicitando 4 nodes e 8 cores em cada um, totalizando 8 cores
#PBS -q par32
#PBS -l nodes=4:ppn=8
source /home/sw/masternode/intel/2015/install/composerxe/bin/compilervars.sh intel64
source /home/sw/masternode/intel/2015/install/mpi/impi/5.1.2.150/bin64/mpivars.sh
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
cd diretorio-aonde-esta-o-comando-executavel
mpirun -n 32 ./comando-executavel
- envio para a fila par64 (permite ate 64 cores em máquinas com 32 GB de RAM)
#!/bin/bash
#PBS -M usuario@ifi.unicamp.br
### Mandar email no inicio e fim
#PBS -m abe
### Name do processo
#PBS -N par64a
### Arquivos de saida
#PBS -e par64a.err
#PBS -o par64a.out
### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par64
## e utilizando 4 nodes e 16 cores em cada um, totalizando 48 cores
#PBS -q par64
#PBS -l nodes=4:ppn=16
source /home/sw/masternode/intel/2015/install/composerxe/bin/compilervars.sh intel64
source /home/sw/masternode/intel/2015/install/mpi/impi/5.1.2.150/bin64/mpivars.sh
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
cd diretorio-aonde-esta-o-comando-executavel
mpirun -n 64 ./comando-executavel
- envio para a fila par72RAM (permite ate 16 cores em máquina com 72 GB de RAM)
#!/bin/bash
#PBS -M usuario@ifi.unicamp.br
### Mandar email no inicio e fim
#PBS -m abe### Name do processo
#PBS -N par72RAM
### Arquivos de saida
#PBS -e par72RAM.err
#PBS -o par72RAM.out
### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par72RAM
## utilizando 1 nodes e 8 cores
#PBS -q par72RAM
#PBS -l nodes=1:ppn=8
source /home/sw/masternode/intel/2015/install/composerxe/bin/compilervars.sh intel64
source /home/sw/masternode/intel/2015/install/mpi/impi/5.1.2.150/bin64/mpivars.sh
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
cd diretorio-aonde-esta-o-comando-executavel
mpirun -n 16 ./comando-executavel
- envio para a fila par144RAM (permite ate 16 cores em máquina com 144 GB de RAM)
#!/bin/bash
#PBS -M usuario@ifi.unicamp.br
### Mandar email no inicio e fim
#PBS -m abe
### Name do processo
#PBS -N par144RAM
### Arquivos de saida
#PBS -e par144RAM.err
#PBS -o par144RAM.out
### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par144RAM
## utilizando 1 nodes e 16 cores
#PBS -q par144RAM
#PBS -l nodes=1:ppn=16
source /home/sw/masternode/intel/2015/install/composerxe/bin/compilervars.sh intel64
source /home/sw/masternode/intel/2015/install/mpi/impi/5.1.2.150/bin64/mpivars.sh
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
cd diretorio-aonde-esta-o-comando-executavel
mpirun -n 16 ./comando-executavel
- Comandos básicos:
- qsub – para submissao de jobs, por exemplo
- qsub exemplo1.pbs
- qdel – para remocao de jobs das filas, por exemplo
- qdel jobid: remove o job jojid da fila
- qstat – exibe o estado de filas e jobs, por exemplo
- qstat -q: lista todas as filas do sistema
- qstat -Q: lista os “limites” de todas as filas do sistema
- qstat -a: lista todos os jobs
- qstat -au userid: lista todos os jobs de determinado usuário
- qstat -r: lista todos os jobs em execução
- qstat -f jobid: lista toda s informação sobre determinado job
- qsub – para submissao de jobs, por exemplo