geinfo- educação continuada - instalaçãode clusters...bibliotecas matemáticas •...

Post on 09-Sep-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Instalação de Clusters

Ettore Enrico Delfino Ligorio – USP/STI/Internuvem – ettore@usp.br

Março - 2016

Agenda• Conceitos• Elementos do Stack HPC• O que e cada elemento

• Funcionalidades• Ferramentas

• Caso do HPC USP• Sugestões para instalação

• OpenHPC

O que e cluster?

• Aglomerado de recursos computacionais funcionando de forma coordenada cooperando entre si para a resolução de um problema comum

• Não e GRID

• Não é nuvem

Classificação de Cluster• Finalidade

– Computação Cientifica

– Inteligência de Negocio• Mineração de Dados

• Big Data

– Oferta de Serviços de TIC

– Cloud Computing

– Engenharia

– Economia

• Tipo– Alto Desempenho

– Alta Disponibilidade

– Balanceamento de Carga

– Configuração Centralizada

Clusters de HPC – Science Computing

• Processamento Paralelo distribuído

– Beowulf

– Particionamento do problema

• Processamento Serial

Termos

• Node

• CPU

• Task

Beowulf

• Node Mestre

– Frontend acesso

– Transefrência de arquivos

– Serviços

• Nodes Slaves

– Processamento

– I/O

Tipos de ProcessamentoFlynn's taxonomy (multiprogramming context)

Single

instruction

stream

Multiple

instruction

streams

Single

program

Multiple

programs

Single data

streamSISD MISD

Multiple

data streamsSIMD MIMD SPMD MPMD

Tipos de Processamento

• SIMD

– GPUs (vetorização)

• MIMD

– Memoria Compartilhada

– Memoria Distribuída

• SISD

– Von Neumann

– CPU Superescalar

• MISD

– Pipelines

– Fault Tolerance Computers

Arquiteture MPP

• Massive Parallel Processing

– Executar coordenadamente grupos de cálculos computacionais em paralelo

– Cluster de HPC com interconexão veloz

– Grids oportunistas

– Massively Parallel Processor Arrays (MPPAs)• HPC e sistemas embarcados (Video, Signal process, etc)

System Share

• Cluster e MPP

– Dominantes

Fonte: http://top500.org

Capacidade Computacional pelo mundo

Fonte: http://top500.org

• MPI options

• MPICH2, MVAPICH2, Open MPI, Intel MPI• Provisioning software

• Cobbler, Warewulf, xCAT/ Platform HPC, Openstack, FAI• Configuration management

• Warewulf, Puppet, Chef, Ansible, cfEngine, SaltStack• Resource and job schedulers

• Torque/PBS, OpenLava/Platform LSF , Maui/Moab, HTCondor , SLURM, Grid Engine/Sonof Grid Engine, Univa, Oar

• Performance monitoring

• Ganglia, Nagios, Icinga• Shared filesystems

• NFS, pNFS, Lustre, GPFS, PVFS2, GlusterFS• Library/Enviroment Variables management

• Enviroment Modules, Lmod, EasyBuild• Cluster management toolkits

• Rocks, Oscar, Scyld, Bright

Fonte: http://www.penguincomputing.com/products/software/cluster-management-scyld-clusterware/

http://www.hpcwire.com/2014/02/24/comprehensive-flexible-software-stack-hpc-clusters/

Sistema Operacional

• Kernel Otimizado

– Limpo

– Especializado

• Diskless ou Diskfull

• Comunidade HPC

• Orquestra acesso ao HW – Process– Threads

• Gestão de pacotes– Yum– Apt-get– Yast2

• Alternativas: RedHat Like, Debian Like e Suse Like

Fonte: http://top500.org

Comunicação

• PasswordLess SSH

• RSH

• RDMA (Infiniband)

• Interconexão

– Infiniband

– Ethernet

– Myrinet

– Quadrics (Elan Asic)

Interconexões

Fonte: http://top500.org

Compiladores

• Gera os binários a partir do código fonte

• Flags de otimização e debug

• Static e Shared libraries

– Strip, ldd e nm

• Alternativas: GNU, Intel, Portland, etc

Bibliotecas Matemáticas

• Implementação confiável e performática de operações matemáticas frequentes

– Transformadas de Fourier, Sistemas Lineares, etc.

• Binário faz cálculos mais rápidos

• Base para compilação de outros softwares• Alternativas: BLAS, cuBLAS, ATLAS, FFTW, MKL, ACML, GSL,

LAPACK, LibSci /Trilinos(Cray), NAG, PETSc, PSPLine, ScaLAPACK, SLEPc, SPRNG, TPSL, ESSL (IBM)

Fonte: http://www.nersc.gov/users/software/programming-libraries/math-libraries/

Cuda

• Uso das GPU

Bibliotecas MPI• Baseada em processos

• Troca de mensagens entre nodes de um cluster de processamento/RAM distribuídos– Flexibilidade, Portablidade e escalabilidade

• Personalizar arquivo de configuração do MPI e espalhá-lo entre os nodes

• Standard MPI-3

• Alternativas: OpenMPI, MVAPHCH2 (internexõesrápida - infiniband) e MPICH2

OpenMP

• Mais simples

• Shared Memory

• Threads

– Cada uma com um pedaço do problema

Filesystem Global Compartilhado

• Lustre predomina no top500

• Alto desempenho I/O

– Evitar gargalos

• Visão consistente dos arquivos para todos os nodes

– Evita Stage-in/Stage-out

– Home e scratch

• Alternativas: Lustre, NFS, GPFS, GlusterFS, etc.

IO Paralelo

• Bibliotecas

– MPI-IO

– netCDF

– HDF5

• Processo leem/escrevem pedaços diferentes do arquivo simultaneamente

Requisitos comuns de Libs para softwares HPC

Math Libs MPI Libs I/O Libs

Softwares HPC complexos

Provisionamento dos Nodes

• Padronização

– Imagem de S.O.

– Parâmetros de rede

– Configuração

• Stateless

• Statefull

• Alternativas: Warewulf/PERCEUS, xCAT/ Platform HPC, FAI

Gerenciamento de Configuração

• Uniformização de atualizações

• Facilidade para administradores

• Observar detalhes de aplicação de configurações

• Alternativas: Warewulf, Puppet, Chef, Ansible, cfEngine, SaltStack

Gestão de Variáveis de Ambiente e Bibliotecas• Fundamental em

ambientes HPC

• $LD_LIBRARY_PATH

• $PATH

• Altera binários e bibliotecas disponíveis

– Para CLI e JOBS.

• Coexistência harmônica de versões diferentes

• Alternativas: Environment Modules e Lmod

Environment Modules

• Definição do $MODULEPATH

• IF no /etc/bashrc para carregar $MODULEPATH proveniente do SSH

• Enviar e receber variáveis

– /etc/ssh/sshd_config

– /etc/ssh/ssh_config

Escalonadores de Jobs e Recursos

• Visão Recursos

– Disponíveis

– Consumidos

– Reservado

– Solicitados

• Especificação de filas

– Controle Tempos limite

– Nodes alocados

• Distribuição de jobs

– Accouting

• Alternativas: Torque/PBS, OpenLava/Platform LSF , Maui/Moab, HTCondor , SLURM, Grid Engine/Son of Grid Engine, Univa, Oar

Interfaces de Trabalho

• Edição e submissão Jobs

– SSH/Shell

– Interface WEB

• Transferência de Arquivos

– SFTP

– Interface WEB

– GlobusOnline*

cGroups

• Nativo do Kernel Linux

• Limitação de recursos disponíveis para o job

– Cpu

– RAM

• O espaço em disco controlado por quotas tradicionais quando necessário

Monitoramento

• Performance

• Disponibilidade

• Agregado para cluster

• Alternativas: Ganglia, Nagios, Icinga, Zabbix, Cacti

Clusters HPC-USP

• Lince

• Águia

Setup de node

• Sysctl.conf– Liberar alocação e uso

de muita RAM

• /etc/profile– Ulimit e umask

– HISTSIZE

– Variáveis de ambiente

• /etc/bashrc

• /etc/secutity/limits.conf

• /etc/ssh/ssh_config– Disable strict host key check

• Desativar firewall dos nodes

Warewulf

• VNFS e bootstrap

– Stateless e Statefull

• Criação de nodes

• Provisionamento

• Gestão de arquivos de configuração

Nodes

• Wwsh node servidor01 set --netdev=eth0 --hwaddr=XX:XX:XX:XX:XX:XX

• Wwsh node servidor[01-20] set –I 10.0.0.1

VNFS

• Mount –t proc /proc /CHROOT/proc

• Mount –t sys /sys /CHROOT/sys

• Mount –t bind –o loop /dev /CHROOT/dev

• Chroot /CHROOT

• Wwvnfs NOME_IMAGEM –chroot=/CHROOT

BootStrap e Provisionamento

• Wwbootstrap –chroot=/CHROOT NOME_BOOTSTRAP

• Wwsh provision set node0[1-6] –vnfs=NOME –bootstrap=NOME

• Wwsh provision set node0[2-5] –fileadd=sshd_config

Torque Maui

• Qmgr

– Print server (qmgr –c ‘p s‘)

• Maui.cnf

– Showconfig -v

Soluções da Intel

• Compiladores

• MKL

• Portal educativo

Ganglia

Operacao de Filas

• Analisando Jobs

– Operações com Jobs

• Analisando Nodes de Processamento

– Operações com nodes

• Visão de desempenho do Storage

Análise de Jobs

• qstat –f JOB_ID

• Arquivos de saída job

– Erro

– Saída

– qpeek

• Aruivos de saída aplicativo

Análise de Nodes

• Qstat –f

• Qstat –na

• Ssh e top

• Free

• Gráficos no Ganglia

Visão de Desempenho

• Linpack

• HPCC

• HPCC_fermi (CUDA)

Propriedades de Filas

• Cputime

• Walltime

• Limites de jobs

• Limites de recursos

Configurações de Escalonamento

• Fairshare– Uso justo.

– Escolhe N intervalos de medição num período de tempo

– Atribui maior prioridade para quem usou menos no período

• Backfilling– Verifica os tempos e os

recursos solicitados por cada job.

– Analisa o tempo restante reservado pelo que já esta em execução.

– Encaixa jobs nesse tempo.

EKM - Ansys

• https://ekm.uspdigital.usp.br/ekm

• http://www.beowulf.org/• http://warewulf.lbl.gov• http://www.openhpc.community• http://insidehpc.com/2012/09/free-download-hpc-for-dummies/• http://www.adaptivecomputing.com/products/open-source/torque/

top related