Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLinda Aldeia Vidal Alterado mais de 8 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.