2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela...

36
2014/15 Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado [email protected] Universidade Lusófona

Transcript of 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela...

Page 1: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

2014/15Mestrado Eng.ª Informática e Sistemas de Informação

Técnicas de Computação ParalelaCapítulo II

Arquitecturas Plataformas Paralelas

José [email protected]

Universidade Lusófona

Page 2: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 3: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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)

Page 4: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 5: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 6: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 7: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 8: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 9: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 10: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 11: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 12: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

Exemplo NUMA: Parallella

16 cores RISC + 2 cores ARM

2014/15 Técnicas de Computação Paralela 12

High Speed Interconnect Mesh

Page 13: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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)

Page 14: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 15: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 16: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 17: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 18: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 19: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 20: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 21: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 22: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 23: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 24: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 25: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 26: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 27: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 28: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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ó

Page 29: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

2014/15 Técnicas de Computação Paralela 29

Source: http://www.cisl.ucar.edu/dir/CAS2K7/Presentations/ThuAM/gara.pdf

Page 30: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 31: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 32: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

Hardware

2014/15 Técnicas de Computação Paralela 32

Source: http://www.redbooks.ibm.com/redpieces/pdfs/sg247948.pdf

Page 33: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 34: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 35: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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

Page 36: 2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado.

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