Cluster Bohr

Cluster Computacional de Alto Desempenho - Bohr

Introdução

O Cluster Computacional de Alto Desempenho - Bohr foi adquirido através de recursos do Projeto Temático FAPESP, número 2016/23891-6, na modalidade Equipamentos Multiusuários (EMU).

Responsável

  • Prof. Dr. Alex Antonelli

Localização

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

Descrição

O Cluster Computacional de Alto Desempenho (Bohr) do grupo Modelagem Computacional da Matéria Condensada - (MC)2 é composto de máquinas com processador Xeon Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz da seguinte forma:

  • Headnode com 40 cores Intel Xeon Gold 6148 CPU @ 2.40GHz e 96 GB de RAM;
  • 22 nós de com 40 cores Intel Xeon Gold 6148 CPU @ 2.40GHz e 192 GB de RAM;
  • 1 nó com GPU Nvidia A100 e 40 cores Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz e 192 GB de RAM;
  • Storage com volume de 100 TB;
  • Interligação com switch Gigabit Ethernet administração e switch Infiniband EDR à 100 Gbps para comunicação de processos e NFS

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 e comunidade 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 usuários externos: Formulário disponível, clique aqui.

O acesso ao cluster será através do comando ssh (ssh bohr) a partir da rede do IFGW. A partir do nó principal os jobs poderão ser enviados através do sistema de filas.

As instruções técnicas para utilização podem ser consultadas em Filas/Utilização e Software.

Importante: Para os USUÁRIOS EXTERNOS ao IFGW/Unicamp, informamos que poderá ser aplicada uma taxa de manutenção pela utilização dos equipamentos a qual será cobrada do pesquisador responsável pela proposta submetida. Em caso de aprovação do tempo de utilização do equipamento, o usuário será notificado e devidamente instruído sobre o procedimento para a forma de pagamento da taxa aplicada, se for o caso.


Para conectar, após conectar na gate:

ssh Este endereço para e-mail está protegido contra spambots. Você precisa habilitar o JavaScript para visualizá-lo.

No cluster Bohr está disponível a versão de Intel MPI 5 e compiladores Intel2019.

Para utilizar essa versão deve-se executar:

module load intel2019

module load intelmpi2019

module load impi/5.1

Filas de processamento definidas

Os nodes possuem (2 processadores Intel Xeon) Gold 6148 com 192 GB de RAM.
Dessa forma, cada node possui 2 (processadores )* 20 (núcleo por processadores) *2 (threads por núcleo) = 80.
O usuário pode escolher em um ppn com o número de cores máximo de 40.

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

par40

para jobs que precisem de até 40 cores e um node

40

1

3 dias

1

par120

para jobs que precisem de até 120 cores

120

1

3 dias

3

emu

para jobs de usuários externos

40

1

3 dias

1

teste

para jobs serem testados antes de submeter na fila principal

5

1

20 minutos

1

gpu_a100

node de jobs para GPU

56

1

7 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 par40 (permite ate 40 cores em máquinas com 192 GB de RAM)

#!/bin/bash
#PBS -N test
### Arquivos de saida
#PBS -e test.err
#PBS -o test.out

### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par40
## e solicitando 1 node e 40 cores em cada um, totalizando 40 cores
#PBS -q par40
#PBS -l nodes=1:ppn=40

cd $PBS_O_WORKDIR

module load intelmpi2019
module load intel2019
module load impi/5.1

export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
export I_MPI_FABRICS=ofa


mpirun -n 40 ./binario

  • envio para a fila par120 (permite ate 120 cores em máquinas com 192 GB de RAM)

#!/bin/bash
#PBS -N test
### Arquivos de saida
#PBS -e test.err
#PBS -o test.out

### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par120
## e solicitando 3 nodes e 40 cores em cada um, totalizando 120 cores
#PBS -q par120
#PBS -l nodes=3:ppn=40

cd $PBS_O_WORKDIR

module load intelmpi2019
module load intel2019
module load impi/5.1

export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
export I_MPI_FABRICS=ofa


mpirun -n 120 ./binario

  • envio para a fila gpu_a100 (permite ate 40 cores com 192 GB de RAM e uma GPU Nvidia A100)

#!/bin/bash
#PBS -N test
### Arquivos de saida
#PBS -e test.err
#PBS -o test.out

### Definindo a fila e o número de processadores
## no caso, estamos solicitando para rodar na fila par40
## e solicitando 1 node e 40 cores em cada um, totalizando 40 cores
#PBS -q gpu_a100
#PBS -l nodes=1:ppn=40

cd $PBS_O_WORKDIR

module load intelmpi2019
module load intel2019
module load impi/5.1

export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/opt/pbs/bin/pbs_tmrsh
export I_MPI_DEVICE=rdssm
export I_MPI_FABRICS=ofa


mpirun -n 40 ./binario

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