Cluster Feynman

Cluster Feynman

Introdução

O Cluster Feyman foi adquirido através de recursos do projeto FAPESP, número 04/09470-0, na modalidade Equipamentos Multiusuários (EMU).

Responsável

  • Prof. Dr. Douglas Soares Galvão

Localização

Instituto de Física Gleb Wataghin (IFGW) - Centro de Computação John David Rogers (CCJDR) - Data Center

Descrição

O cluster de processamento é composto de máquinas com processador Xeon da seguinte forma:

  • Headnode com 8 cores Xeon 5220 de 2.4 GHz e 96 GB de RAM;
  • 8 nós de com 8 cores Xeon 5220 (16 com HT) de 2.4 GHz e 36 GB de RAM;
  • 1 nó de computação com 8 cores Xeon 5220 (16 com HT) de 2.4 GHz e 144 GB de RAM;
  • 1 nó de computação com 8 cores Xeon 5220 (16 com HT) de 2.4 GHz e 72 GB de RAM;
  • Storage com 8 cores Xeon 5620 (16 com HT) de 2.4 GHz, 96 GB de RAM, com volumes de 30 TB e 36 TB;
  • Interligação com switch Gigabit Ethernet adminstração e switch Infiniband QDR 4x à 40 Gbps para comunicação de processos e NFS

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 Este endereço para e-mail está protegido contra spambots. Você precisa habilitar o JavaScript para visualizá-lo.
### 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 Este endereço para e-mail está protegido contra spambots. Você precisa habilitar o JavaScript para visualizá-lo.
### 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 Este endereço para e-mail está protegido contra spambots. Você precisa habilitar o JavaScript para visualizá-lo.
### 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 Este endereço para e-mail está protegido contra spambots. Você precisa habilitar o JavaScript para visualizá-lo.
### 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

Depois de amplo período de estudos, foi concebido um conjunto de normas para uso do data center do CCJDR em relação ao hardware e software, além de outras diretrizes.

Um dos itens para destaque, de acordo com a Resolução ComTIC 002/2015, descrevem quais são as características para os equipamentos de HPC utilizarem a infraestrutura do CCJDR.

As normas completas estão disponíveis em https://portal.ifi.unicamp.br/images/files/intranet/comtic/ComTIC022015v2.pdf

Em caso de dúvidas, estamos à disposição pelo https://os.ifi.unicamp.br.

Para ter acesso ao cluster é necessário um projeto aprovado de um docente do IFGW.
O formulário de inscrição está disponível dos seguintes modos:

  1. Para docentes do IFGW: Acesso ao formulário é através do site interno do IFGW https://os.ifi.unicamp.br, na fila CCJDR-HPC-Inclusao-Projeto;
  2. Para não-docentes do IFGW: Formulário disponível, clique aqui.