Arquitetura NUMA
Arquitetura NUMA1
Daniel de Angelis Cordeiro
INRIA MOAIS projectLaboratoire d’Informatique de Grenoble
Universite de Grenoble, Franca
6 de Outubro de 2010
1Baseado em slides feitos por Christiane Pousa Ribeiro1 / 36
Arquitetura NUMA
Outline
1 IntroducaoClassificacao de Flynn
2 Arquiteturas Monoprocessadas
3 Arquiteturas MultiprocessadasMemoria DistribuıdaMemoria Compartilhada
Uniform memory access
4 Non-uniform memory accessProtocolos de Coerencia de CacheProgramando em Maquinas NUMA
2 / 36
Arquitetura NUMA
Introducao
Outline
1 IntroducaoClassificacao de Flynn
2 Arquiteturas Monoprocessadas
3 Arquiteturas MultiprocessadasMemoria DistribuıdaMemoria Compartilhada
Uniform memory access
4 Non-uniform memory accessProtocolos de Coerencia de CacheProgramando em Maquinas NUMA
3 / 36
Arquitetura NUMA
Introducao
Classificacao de Flynn
Classificacao de Flynn
Proposta na decada de 60, classifica as arquiteturas decomputadores baseando-se no numero de instrucoes paralelas e nofluxo de dados:
Single Instruction, Single Data stream (SISD): umcomputador sequencial, que trata um unico fluxo deinstrucoes gerado pelo programa (ex: PCs monoprocessadostradicionais);
Single Instruction, Multiple Data streams (SIMD): cadainstrucao e executada em um conjunto diferente de dados,possivelmente por diferentes processadores (ex: processadoresvetoriais ou GPUs);
4 / 36
Arquitetura NUMA
Introducao
Classificacao de Flynn
Classificacao de Flynn
Multiple Instruction, Single Data stream (MISD): cadaprocessador executa um conjunto diferente de instrucoes(arquitetura incomum);
Multiple Instruction, Multiple Data streams (MIMD): cadaprocessador executa um conjunto diferente de instrucoes,aplicadas em um conjunto distinto de dados (ex: sistemasdistribuıdos).
5 / 36
Arquitetura NUMA
Introducao
Classificacao de Flynn
Arquiteturas de Computadores
Single intruction,Single Data Stream
(SISD)
Single Instruction,Multiple Data Stream
(SIMD)
Multiple InstructionSingle Data Stream
(MISD)
Multiple InstructionMultiple Data Stream
(MIMD)
Monoprocessadores ProcessadoresVetoriais
MemóriaCompartilhada
MemóriaDistribuída
6 / 36
Arquitetura NUMA
Arquiteturas Monoprocessadas
Outline
1 IntroducaoClassificacao de Flynn
2 Arquiteturas Monoprocessadas
3 Arquiteturas MultiprocessadasMemoria DistribuıdaMemoria Compartilhada
Uniform memory access
4 Non-uniform memory accessProtocolos de Coerencia de CacheProgramando em Maquinas NUMA
7 / 36
Arquitetura NUMA
Arquiteturas Monoprocessadas
Arquiteturas Monoprocessadas
Caracterısticas
Apenas um elemento de processamento.
Programacao sequencial (com uso de interrupcoes).
Sistemas operacionais “modernos”2 multiplexam multiplastarefas em um unico processador (sistemas demultiprogramacao).
2Apple iOS < versao 4 nao e tao moderno assim ,.8 / 36
Arquitetura NUMA
Arquiteturas Monoprocessadas
Arquiteturas Monoprocessadas
Exemplos
Hyperthreading;
Processadores multi-core;
Processadores AMD dual-core, quad-core, etc.
9 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Outline
1 IntroducaoClassificacao de Flynn
2 Arquiteturas Monoprocessadas
3 Arquiteturas MultiprocessadasMemoria DistribuıdaMemoria Compartilhada
Uniform memory access
4 Non-uniform memory accessProtocolos de Coerencia de CacheProgramando em Maquinas NUMA
13 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Arquiteturas Multiprocessadas
Formadas por multiplos elementos de processamento;
Podem ser classificadas em:
Memoria distribuıda;Memoria compartilhada.
14 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Distribuıda
Memoria Distribuıda
Grupo de computadores autonomos (nos) que trabalhamjuntos como um recurso unico;
Cada processador possui seus proprios bancos de memoriaprivados;
Os nos sao interligados por redes de alto desempenho.
15 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Distribuıda
Vantagens de Memoria Distribuıda
Escalabilidade Vertical: e possıvel aumentar o podercomputacional do sistema com a adicao de novoscomponentes a cada um dos nos, individualmente (maisCPUs, mais memoria, etc.);
Escalabilidade Horizontal: e possıvel aumentar o podercomputacional do sistema com a adicao de novos nos nosistema;
Alta disponibilidade: a falha de um no nao necessariamentecausa a indisponibilidade de todo sistema;
Otimo custo/benefıcio.
17 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Distribuıda
Exemplos
Exemplos classicos:
Aglomerados de computadores (clusters). Exemplo: Beowulf
Grades computacionais (grid computing). Exemplos:InteGrade, OurGrid (brasileiros), BOINC, Globus, Grid’5000,etc.
18 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Compartilhada
Memoria Compartilhada
P PPP
P PPP
P
P
P
P
P
P
P
PMemóriaCompartilhada
19 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Compartilhada
Memoria Compartilhada
Elementos de processamento compartilham a mesma memoria.
Programacao realizada atraves de variaveis compartilhadas(mais facil para programar) e/ou troca de mensagens pararealizar comunicacao entre processos.
Mais difıcil obter escalabilidade. Inclusao de novos elementosde processamento e limitada.
Aparicao de problemas de Coerencia de Cache.
20 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Compartilhada
Tipos de Memoria Compartilhada
Os sistemas de memoria compartilhada podem ser de dois tipos:
UMA – Uniform memory access
NUMA – Non-uniform memory access
Single intruction,Single Data Stream
(SISD)
Single Instruction,Multiple Data Stream
(SIMD)
Multiple InstructionSingle Data Stream
(MISD)
Multiple InstructionMultiple Data Stream
(MIMD)
Monoprocessadores ProcessadoresVetoriais
MemóriaCompartilhada
MemóriaDistribuída
UMA (SMP) NUMA
21 / 36
Arquitetura NUMA
Arquiteturas Multiprocessadas
Memoria Compartilhada
Uniform memory access
O tempo de acesso a memoria principal e igual para todos osprocessadores;
Sistemas multiprocessados UMA sao chamadas de SistemasSMP (symmetric multiprocessing);
Tipicamente, todos os acessos a memoria sao realizadosatraves do mesmo barramento:
problemas de contencao: competicao entre as CPUs peloacesso ao barramento provoca queda de desempenho;escalabilidade reduzida: em geral, limitada a 32 processadores.
22 / 36
Arquitetura NUMA
Non-uniform memory access
Outline
1 IntroducaoClassificacao de Flynn
2 Arquiteturas Monoprocessadas
3 Arquiteturas MultiprocessadasMemoria DistribuıdaMemoria Compartilhada
Uniform memory access
4 Non-uniform memory accessProtocolos de Coerencia de CacheProgramando em Maquinas NUMA
24 / 36
Arquitetura NUMA
Non-uniform memory access
Motivacao
Memory gap: processadores modernos operam em umavelocidade consideravelmente maior do que a memoriaprincipal:
uma instrucao pode fazer o processador esperar varios ciclos deprocessamento ate que a memoria principal seja acessada;
Aumento do tamanho e complexidade dos sistemas paralelosfazem com que aumentar a quantidade de memoria cache naoseja suficiente para resolver o problema;
Em sistemas multiprocessados, apenas um processador temacesso a memoria principal por vez.
25 / 36
Arquitetura NUMA
Non-uniform memory access
NUMA
Ao contrario de sistemas SMP, os processadores estao adistancias diferentes da memoria (existencia de memoria locale remota);
Fator NUMA: razao entre o tempo de acesso a uma memorialocal e tempo de acesso a memoria local;
Calculos locais de um processador podem usar a memoria maisproxima, reduzindo o problema de contencao de memoria.
27 / 36
Arquitetura NUMA
Non-uniform memory access
Cache
Em relacao ao cache, existem dois tipos de arquiteturas NUMA:
No Cache NUMA (NC-NUMA);
Cache coherent NUMA (CC-NUMA).
28 / 36
Arquitetura NUMA
Non-uniform memory access
NC-NUMA
C.m* foi o primeiro (1974) sistema NUMA a ser desenvolvido(Universidade Carnegie Mellon).
29 / 36
Arquitetura NUMA
Non-uniform memory access
Protocolos de Coerencia de Cache
Snooping protocol
Controladores de cache monitoram a atividade do barramentoe atualizam ou invalidam as entradas do cache conformenecessario.
Sao de dois tipos:
Write-invalidate: o processador que ira escrever na memoriaenvia um aviso pelo barramento. Todos os processadoreschecam se possuem uma copia em cache e a invalidam.Write-update: um processador envia via broadcast o novovalor de um dado e todas as copias em cache sao atualizadas.
Write-invalidate e mais eficiente na utilizacao da largura debanda do barramento, enquanto Write-update tem avantagem de fazer os novos valores apareceram mais cedo noscaches.
31 / 36
Arquitetura NUMA
Non-uniform memory access
Protocolos de Coerencia de Cache
Protocolo baseado em Diretorio Central
Um diretorio centralizado mantem informacoes sobre quaissegmentos da memoria estao armazenados em multiploscaches e quais estao presentes no cache de apenas umprocessador;
No momento do acesso a memoria, o sistema sabe quaiscaches precisam ser invalidados ou atualizados;
E o protocolo de coerencia de cache mais utilizado.
32 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Desafios
Ao escrever programas de alto desempenho para maquinas NUMA,o programador deve ter em mente os seguintes problemas:
Latencia;
Largura de banda;
Desbalanceamento de carga;
Memory affinity.
33 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Desafios
Node#0 Node#1
Node#2 Node#3
Node#4 Node#5
Node#6 Node#7
34 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Desafios
Node#0 Node#1
Node#2 Node#3
Node#4 Node#5
Node#6 Node#7
34 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Desafios
Node#0 Node#1
Node#2 Node#3
Node#4 Node#5
Node#6 Node#7
34 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Desafios
Node#0 Node#1
Node#2 Node#3
Node#4 Node#5
Node#6 Node#7
34 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Polıticas de Alocacao de Memoria
Trabalho realizado por Christiane Pousa Ribeiro eJean-Francois Mehaut no LIG, em Grenoble.
Propoem uma interface de programacao NUMA-aware ondecabe ao proprio programador definir como e onde alocar aspaginas de memoria.
Prove diferentes polıticas de alocacao de memoria, divididasem tres grupos:
bind : segmenta blocos de memoria e aloca na memoria doprocessador mais proximo;
cyclic : blocos de memoria sao alocados entre os processadoresusando alguma heurıstica tipo round-robin;
random: blocos de memoria sao espalhados aleatoriamenteentre os nodos.
35 / 36
Arquitetura NUMA
Non-uniform memory access
Programando em Maquinas NUMA
Minas
Memory affInity maNAgement Framework
gerencia memory affinity em multiprocessadores de memoriacompartilhada hierarquicos (ccNUMA);duas abordagens distintas: gerenciamento explıcito (MAi) ougeracao automatica de codigo otimizado (MApp);Otimizacao de uso de largura de banda e latencia emaplicacoes com padroes de acesso a memoria regulares ouirregulares;Interfaces em C, C++ e Fortran 90.
36 / 36