A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "2014/15Mestrado Eng.ª Informática e Sistemas de Informação Técnicas de Computação Paralela Capítulo II Arquitecturas Plataformas Paralelas José Rogado."— Transcrição da apresentação:

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 jose.rogado@ulusofona.pt Universidade Lusófona

2 2014/15 Técnicas de Computação Paralela2 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

3 2014/15 Técnicas de Computação Paralela3 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)

4 2014/15 Técnicas de Computação Paralela4 MIMD e SIMD Arquitectura SIMDArquitectura MIMD UC Global UP Malha de Interconecção UC UP Malha de Interconecção UC

5 2014/15 Técnicas de Computação Paralela5 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 programa Input/output M – memória P – processador

6 2014/15 Técnicas de Computação Paralela6 Exemplo de Execução em SIMD Processamento escalar: uma operação produz um resultado Processamento SIMD: uma operação produz múltiplos resultados

7 2014/15 Técnicas de Computação Paralela7 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

8 2014/15 Técnicas de Computação Paralela8 Processamento MIMD Memória partilhada input/output programa A processador Memória cache programa B processador Memória cache programa C processador Memória cache  É 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

9 2014/15 Técnicas de Computação Paralela9 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

10 2014/15 Técnicas de Computação Paralela10 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

11 2014/15 Técnicas de Computação Paralela11 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

12 Exemplo NUMA: Parallella 16 cores RISC + 2 cores ARM 2014/15 Técnicas de Computação Paralela12 High Speed Interconnect Mesh

13 2014/15 Técnicas de Computação Paralela13 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)

14 2014/15 Técnicas de Computação Paralela14 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

15 2014/15 Técnicas de Computação Paralela15 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

16 2014/15 Técnicas de Computação Paralela16 Topologias Estáticas e Dinâmicas Malha Estática / DirectaMalha Dinâmica / Indirecta Classificação das Malhas de Interligação: (a) Estática (b) Dinâmica Interface de Comunicação Nó de Processamento Elemento de Comutação

17 2014/15 Técnicas de Computação Paralela17 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

18 2014/15 Técnicas de Computação Paralela18 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

19 2014/15 Técnicas de Computação Paralela19 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 p 2  Não escala bem para valores elevados de p  Exemplos de arquitecturas: Sun Ultra HPC 10000 Fujitsu VPP500

20 2014/15 Técnicas de Computação Paralela20 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

21 2014/15 Técnicas de Computação Paralela21 Topologia Multistage: rede Ómega  Uma das topologias multistage mais utilizada é a rede Omega Para ligar p entradas a p saídas, utiliza log 2 (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

22 Concetividade Total com 3 níveis 2014/15 Técnicas de Computação Paralela22  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

23 2014/15 Técnicas de Computação Paralela23 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 log 2 p switches  O custo aumenta proporcionalmente a (p log p), logo escala melhor que uma rede Crossbar

24 2014/15 Técnicas de Computação Paralela24 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 log 2 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

25 2014/15 Técnicas de Computação Paralela25 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

26 2014/15 Técnicas de Computação Paralela26 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 p 2  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

27 2014/15 Técnicas de Computação Paralela27 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

28 2014/15 Técnicas de Computação Paralela28 Topologias em Hipercubo  Um hipercubo é uma malha k-d com 2 nós por dimensão e log 2 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 log 2 p  Cada nó tem log 2 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ó

29 2014/15 Técnicas de Computação Paralela29 Source: http://www.cisl.ucar.edu/dir/CAS2K7/Presentations/ThuAM/gara.pdf

30 2014/15 Técnicas de Computação Paralela30 Características dos BlueGene L e P Source: http://www.cisl.ucar.edu/dir/CAS2K7/Presentations/ThuAM/gara.pdf

31 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)www.top500.org/system/177556 2014/15 Técnicas de Computação Paralela31

32 Hardware 2014/15 Técnicas de Computação Paralela32 Source: http://www.redbooks.ibm.com/redpieces/pdfs/sg247948.pdfhttp://www.redbooks.ibm.com/redpieces/pdfs/sg247948.pdf

33 Many Integrated Core Processors  Intel Xeon Phi Coprocessor Conceito de in-memory computing (SGI) https://software.intel.com/en-us/articles/intel-xeon-phi- coprocessor-codename-knights-cornerhttps://software.intel.com/en-us/articles/intel-xeon-phi- coprocessor-codename-knights-corner  Parallella Single Board Computer Alto desempenho, baixo consumo http://www.parallella.org/board 2014/15 Técnicas de Computação Paralela33

34 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 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)http://www.khronos.org 2014/15 Técnicas de Computação Paralela34

35 2014/15 Técnicas de Computação Paralela35 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

36 2014/15 Técnicas de Computação Paralela36 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


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

Apresentações semelhantes


Anúncios Google