Post on 07-Apr-2016
2014/15Mestrado Eng.ª Informática e Sistemas de Informação
Técnicas de Computação ParalelaCapítulo II
Arquitecturas Plataformas Paralelas
José Rogadojose.rogado@ulusofona.pt
Universidade Lusófona
2014/15 Técnicas de Computação Paralela 2
Arquitecturas de Plataformas Paralelas
Um algoritmo paralelo abrange as diversas tarefas que o compõem• Sincronização => quando devem iniciar, esperar e terminar• Interacção => quando se realizam as trocas de informação
Assim, toda a actividade paralela tem dois aspectos essenciais:• Estrutura de controlo• Estrutura de comunicação
Os vários tipos de arquitecturas paralelas definem-se pela forma como estes aspectos fundamentais são implementados• Como é controlada a execução das instruções nos vários CPUs• Como são transferidos os dados entre os vários CPUs
2014/15 Técnicas de Computação Paralela 3
Estruturas de Controlo
Um CPU tem dois tipos de unidades distintas (simplificando…): As Unidades de Processamento (UP):
• Realizam operações entre valores carregados em registos Unidades de Controlo (UCs):
• Realizam o encadeamento das operações das UPs e as operações de acesso à memória
Se uma única UC controla várias UPs que executam a mesma instrução em registos de dados diferentes• Arquitectura de tipo SIMD (Single Instruction Multiple Data)
Se cada UP é controlada por uma UC independente e executa instruções diferentes sobre registos diferentes• Arquitectura de tipo MIMD (Multiple Intruction Multiple Data)
2014/15 Técnicas de Computação Paralela 4
MIMD e SIMD
Arquitectura SIMD Arquitectura MIMD
UCGlobal
UP
UP
UP
UP
Malha de Interconecção
UC
UP
UP
UP
UP
Malha de Interconecção
UC
UC
UC
2014/15 Técnicas de Computação Paralela 5
Processamento SIMD
Alguns dos primeiros computadores paralelos• Illiac IV, MPP, MasPar MP-1
Alguns processadores vectoriais e co-processadores actuais• Vectoriais: Intel MMX e SSE (Streaming SIMD Extensions), PowerPC Altivec• Co-processadores: aceleradores ClearSpeed, GPU G80 nVidia
O SIMD destinam-se a computação em estruturas regulares• Cálculo científico: algebra linear, transformadas de Fourrier, criptografia, etc..• Processadores gráficos
Execução de código condicional• Por vezes é necessário desactivar operações em alguns componentes dos dados• As UPs podem condicionar a execução em função de valores guardados nos
registos, utilizando “máscaras de actividade”
M
P
M
P
M
P
M
P
M
P
M
P
M
P
programaInput/output
M – memóriaP – processador
2014/15 Técnicas de Computação Paralela 6
Exemplo de Execução em SIMD
• Processamento escalar: uma operação produz um resultado
• Processamento SIMD: uma operação produz múltiplos resultados
2014/15 Técnicas de Computação Paralela 7
Execução condicional em SIMD
Condição
Execução
Valores Iniciais
• Execução de código condicional: no primeiro passo, só os processadores com B == 0 executam a instrução
• Razão pela qual este tipo de arquitectura paralela tem limitações importantes
2014/15 Técnicas de Computação Paralela 8
Processamento MIMD
Memória partilhada
input/output
programa A
processador
Memóriacache
programa B
processador
Memóriacache
programa C
processador
Memóriacache
É a forma de processamento mais comum• Cada processador pode executar programas diferentes
residentes em memória partilhada ou não (ver slides seguintes) A maioria dos processadores actuais são de tipo MIMD
• A comunicação entre os processadores pode ser de vários tipos
2014/15 Técnicas de Computação Paralela 9
Estruturas de Comunicação
As que utilizam memória comum designam-se plataformas de memória partilhada ou multi-processadores
Existem dois paradigmas fundamentais para trocar dados entre processadores MIMD em plataformas paralelas• Acedendo a um espaço memória comum• Por troca de mensagens entre memória distribuída
As que utilizam troca de mensagens através de uma malha de conecção designam-se por plataformas de mensagens, multi-computadores ou clusters
P
P
P
P
M
M
M
M
Mesh
2014/15 Técnicas de Computação Paralela 10
Plataformas de Memória Partilhada
Nestas plataformas, a totalidade da memória é acessível por todos os processadores• Os processadores interagem através da modificação de objectos
armazenados em memória partilhada O acesso simultâneo às mesmas zonas de memória partilhada pode
ser objecto de condicionantes• Necessidade de exclusão mútua
A topologia de acesso à memória condiciona a designação e a escalabilidade em número de processadores• Problemas de largura de banda de acesso à memória e overhead
de sincronização A programação deste tipo de plataformas é feita com base em
multiprogramação• Utilização de multithreading
2014/15 Técnicas de Computação Paralela 11
Plataformas de Memória Partilhada
NUMA (Non-Unified Memory Access)• Se o tempo de acesso dos
processadores à memória depender da localização da mesma
O acesso local é mais rápido Escala melhor Mais complexa de implementar
UMA (Unified Memory Access), ou SMP (Symmetric Multiprocessor)• Se o tempo de acesso de todos os
processadores à memória é idêntico
É a arquitectura paralela mais simples Tem problemas de escalabilidade
M
M
M
M
P
P
P
P
Mesh
Exemplo NUMA: Parallella
16 cores RISC + 2 cores ARM
2014/15 Técnicas de Computação Paralela 12
High Speed Interconnect Mesh
2014/15 Técnicas de Computação Paralela 13
Plataformas de Mensagens
Estas plataformas são constituídas por um conjunto de processadores dispondo da sua própria memória de acesso exclusivo• Nós de processamento autónomos
A comunicação entre nós faz-se unicamente através de uma malha de conecção de liga todos os nós de forma homogénea• As características da malha são decisivas para o desempenho do
sistema A comunicação entre nós faz-se através de mensagens
• Baseadas em variantes das primitivas send e receive A programação destas plataformas é feita com base em middleware
de messaging• O tipo de software utilizado é do tipo PVM (Parallel Virtual
Machine) ou MPI (Message Passing Inteface)
2014/15 Técnicas de Computação Paralela 14
O Conceito de “Cluster”
O Cluster é um multicomputador em que a malha de interconecção é uma rede local
• Pode ser de muito alto débito (Gigabit Ethernet, Fiber Channel, Myrinet) Dependendo da complexidade pode ter várias hierarquias de comunicação
• Entre processadores de cálculo (worker nodes)• Entre processadores de armazenamento (storage nodes)
Devido ao relativo baixo custo de operacionalização, tornou-se uma plataforma de HPC muito divulgada
programa A
memória
processador
I/O
programa B
memória
processador
I/O
programa C
memória
processador
I/O
Rede de Dados
2014/15 Técnicas de Computação Paralela 15
Malhas de Interligação
As malhas de interligação permitem a troca de dados entre processadores e entre estes e a memória
• Fundamentais para o desempenho de algoritmos paralelos que tenham de trocar dados e/ou mensagens de controle
• Relevante em todos os tipos de arquitecturas apresentadas Memória Partilhada: permite a partilha de dados e sincronização Mensagens: dados e sincronização explicitamente enviados e recebidos
A forma como estão ligados os vários elementos da malha define a topologia da interligação
• Topologia directa: feita através de ligações ponto a ponto estabelecidas de forma estática entre os nós da malha
• Topologia indirecta: feita através de elementos activos (switches) que estabelecem ligações dinâmicas entre os nós
A descoberta do melhor caminho entre dois nós é designado por routing A distância entre dois nós é definida pelo número de ligações que os
separam
2014/15 Técnicas de Computação Paralela 16
Topologias Estáticas e Dinâmicas
Malha Estática / Directa Malha Dinâmica / Indirecta
Classificação das Malhas de Interligação:(a) Estática (b) Dinâmica
Interface de ComunicaçãoNó de Processamento
Elemento de Comutação
2014/15 Técnicas de Computação Paralela 17
Topologia de Interligação em Bus A forma mais simples de interligar os elementos de um computador
paralelo é o Bus• Todos os processadores acedem ao Bus para trocar dados e
aceder à memória A distância (em número de ligações) entre todos os elementos é
sempre constante e igual a 1• Permite broadcast de forma natural
Todavia, como todos os acessos passam pelo bus, a sua largura de banda é um ponto de estrangulamento do sistema• Tipicamente, o número de nós conectados por Bus não escala
para lá de algumas dezenas. Exemplos de Computadores utilizando interligação em Bus
• Sun Enterprise Servers• Multoprocessadores Intel Pentium• Chips Multicore
2014/15 Técnicas de Computação Paralela 18
Topologia em Bus
• Como grande parte dos dados acedidos pelos processadores é local a utilização de cache aumenta a performance de forma notável
• Neste caso, é necessário hardware para garantir a coerência dos caches
a) Interligação em Bus sem caches locais
b) Interligação em Bus com caches locais
2014/15 Técnicas de Computação Paralela 19
Topologia de Interligação Crossbar Um Crossbar permite ligar p entradas a m saídas evitando bloqueios
através de uma malha de pxm switches
O custo de um crossbar de p processadores aumenta com p2
Não escala bem para valores elevados de p Exemplos de arquitecturas:
• Sun Ultra HPC 10000• Fujitsu VPP500
2014/15 Técnicas de Computação Paralela 20
Topologia de Interligação Multistage
Os Crossbars têm excelente desempenho mas não escalam a nível de custo Os Buses escalam no custo, mas não no desempenho As topologias Multistage são um compromisso entre estes dois extremos
Esquema típico de uma malha multistage ligando p processadores a b bancos de memória
2014/15 Técnicas de Computação Paralela 21
Topologia Multistage: rede Ómega Uma das topologias multistage mais utilizada é a rede Omega
• Para ligar p entradas a p saídas, utiliza log2(p) níveis (stages)• Em cada etapa, entrada i está ligada à saída j sse:
Nível intermédio de uma rede Omega para a interligação de 8x8
Para determinar a saída realiza-se a rotação binária à esquerda do valor binário da entrada
Para realizar a conectividade total dos 64 elementos, são necessários 3 níveis deste tipo
Também se designa por perfect shuffle
Concetividade Total com 3 níveis
2014/15 Técnicas de Computação Paralela 22
São necessários 3 níveis de conectividade Ligados por comutadores (switches) com dois estados Cada switch pode estar em modo directo ou cruzado
2014/15 Técnicas de Computação Paralela 23
Elementos de Ligação Ómega
Os vários níveis de uma rede Omega são ligados usando switches 2x2 Os switches podem estar em dois modos:
• Directo• Cruzado
Com base nestes elementos, uma rede Omega completa para 8x8 elementos pode ser realizada com 3 níveis de 4 switches
Uma rede Omega utiliza p/2 x log2 p switches
O custo aumenta proporcionalmente a (p log p), logo escala melhor que uma rede Crossbar
2014/15 Técnicas de Computação Paralela 24
Roteamento numa rede Ómega
Sendo S a representação binária do nó de origem, e D a do nó de destino: Na primeira etapa são comparados os bits de maior peso de S e D
• Se forem iguais o switch é posicionado em modo directo• Se forem diferentes, é posicionado em modo cruzado
O processo é repetido para todas as log2 p etapas, utilizando sucessivamente os bits de pesos decrescentes
Exemplo:Para ir do nó 2 (010) ao nó 4 (100) 1º nível modo cruzado 2º nível modo cruzado 3º nível modo directo
2014/15 Técnicas de Computação Paralela 25
Limites das redes Ómega
As redes Omega não permitem que todos os nós comuniquem simultaneamente No exemplo acima, as duas mensagens de 010 para 111 e de 110 para 100
bloqueiam no link AB Em arquitecturas de muito alto desempenho não podem ser utilizadas, devendo
ser utilizadas topologias de conectividade total
2014/15 Técnicas de Computação Paralela 26
Topologias de Conectividade Total
São topologias estáticas em que cada nó está conectado a todos os outros• O número de ligações escala com p2
A escalabilidade de desempenho é óptima, mas o custo e complexidade não escalam• Nesse sentido, são a contrapartida estática das redes Crossbar
Na prática utilizam-se versões com menor número de ligações• Arrays lineares e malhas k-d bi e tridimensionais
(a) Rede de conectividade total
(b) Rede de conectividade em estrela
2014/15 Técnicas de Computação Paralela 27
Topologias Lineares e Multidimensionais Topologia em array linear:
• Cada nó tem dois vizinhos, um à esquerda outro à direita• Caso os extremos estejam conectados, designam-se por 1-D Torus ou
Ring• Na generalização para 2 dimensões cada nó tem 4 vizinhos
A topologia genérica designa-se por Malha k-d, tendo d dimensões e k nós segundo cada dimensão
• Malhas bi e tridimensionais
(a) Malha 2-D (b) Torus 2-D (c) Malha 3-D
2014/15 Técnicas de Computação Paralela 28
Topologias em Hipercubo
Um hipercubo é uma malha k-d com 2 nós por dimensão e log2 p dimensões (sendo p o número total de nós)
• Pode ser construído a partir de hipercubos de menor dimensão
Propriedades: A distância entre qualquer par de
nós é no máximo log2 p Cada nó tem log2 p vizinhos Utilizando o esquema de
numeração da figura, a distância entre dois nós é dada pelo número de bits diferentes na numeração de cada nó
2014/15 Técnicas de Computação Paralela 29
Source: http://www.cisl.ucar.edu/dir/CAS2K7/Presentations/ThuAM/gara.pdf
2014/15 Técnicas de Computação Paralela 30
Características dos BlueGene L e PSource: http://www.cisl.ucar.edu/dir/CAS2K7/Presentations/ThuAM/gara.pdf
Versão actual: BlueGene Q Esta nova versão do BlueGene (iniciada em 2009)
• Primeiros exemplares instalados no Lawrence Livermore National Laboratory e no Argone National Laboratory em 2012
A arquitectura mantém as mesmas características que os predecessores• Utilização de um numero muito elevado de cores de relativamente baixa
frequência de forma a minimizar o consumo Aumento 2000x da velocidade de processamento em 6 anos
• Nós: processadores PowerPC 64 bits com 16 cores e 4 níveis de hyperthreading e 16GB de RAM
• Cada rack contem 1024 nós de processamento e 128 nós de I/O• Comunicação entre nós realizada por uma malha Torus 5D de fibra
óptica, com débito máximo de 40 Gb/s Configuração “Sequoia” do LLC capaz de executar 20 Pflop/s:
• 1.6M cores, 1.6 Pbytes de RAM e 150 Petabytes de storage• 3º lugar no Top500 2014 (www.top500.org/system/177556)
2014/15 Técnicas de Computação Paralela 31
Hardware
2014/15 Técnicas de Computação Paralela 32
Source: http://www.redbooks.ibm.com/redpieces/pdfs/sg247948.pdf
Many Integrated Core Processors Intel Xeon Phi Coprocessor
• Conceito de in-memory computing (SGI)• https://software.intel.com/en-us/articles/intel-xeon-phi-coprocesso
r-codename-knights-corner
Parallella Single Board Computer• Alto desempenho, baixo consumo• http://www.parallella.org/board
2014/15 Técnicas de Computação Paralela 33
Utilização de GPUs A evolução das capacidades de cálculo vectorial disponibilizado nas
placas gráficas permite a sua utilização em aplicações genéricas• Conceito de GPGPU – General Purpose Graphic Processing Unit
Os principais GPUs utilizados são da NVIDIA e da ATI (AMD)• NVIDIA Tesla• ATI Radeon
A programação destes processadores é feita com base em plataformas de desenvolvimento fornecidas pelos fabricantes ou entidades independentes• NVIDIA CUDA e ATI Streams
ATI-Stream vs NVIDIA-CUDA• OpenCL SDK genérica e linguagem de programação (C99) que
integra parte das APIs dos fabricantes de GPUs Apple, IBM, Intel, NVIDIA e AMD Khronos Group (http://www.khronos.org)
2014/15 Técnicas de Computação Paralela 34
2014/15 Técnicas de Computação Paralela 35
Extrapolando para o futuro
Projectando as tendências actuais no futuro próximo (Exaflops)• O consumo de potência é comum a todas as áreas (CPUs, memórias, storage)
O custo e o desempenho da memória não acompanham a evolução da computação O aumento do desempenho da malha de interligação vai ser caro e terá dificuldades
em escalar O grande desafio será permitir uma utilização optimizada da potência disponível
Source: http://www.cisl.ucar.edu/dir/CAS2K7/Presentations/ThuAM/gara.pdf
2014/15 Técnicas de Computação Paralela 36
Trabalho da Cadeira
Objectivo: Utilizar um algoritmo simples para explorar algumas possíveis formas de paralelismo
Sugestões:• Multiplicação de Matrizes (n x n)• Contagem das ocorrências de palavras num texto em ascii• Ordenação de uma sequência grande de números inteiros• Etc…
1ª Fase: programar o algoritmo sequencial 2ª Fase: determinar os graus de paralelismo utilizando uma técnica
indicada nas aulas 3ª Fase: programar uma solução paralela utilizando multithreading 4ª Fase: programar uma solução paralela utilizando MPI 5ª Fase: avaliar os ganhos de desempenho