Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Arquitetura de Computadores Paralelos * Pipeline * Pipeline (Paralelismo) Melhorar o desempenho das máquinas: Aumentar a velocidade de relógio dos chips. Questões: Limite na velocidade dos circuitos. Dissipação de calor. Tamanho dos transistores. Solução Computadores paralelos. * Pipeline (Paralelismo) Processamento paralelo Uso simultâneo de recursos computacionais como processadores para solução de um problema. A computação paralela é caracterizada pelo uso de várias unidades de processamento ou processadores para executar uma computação de forma mais rápida. * Pipeline Processo de resolução de um problema pode ser divido em tarefas menores, que podem ser realizadas simultaneamente através de algum tipo de coordenação. O paralelismo tem vários níveis: Nível mais baixo Adicionado ao chip por Pipeline e projetos superescalares. Nível das palavras de instrução Palavras de instrução muito longas com paralelismo implícito. Nível do processador Várias CPUs trabalhando juntas. * Pipeline Para um melhor desempenho é necessário replicar CPUs inteiras e fazer com que todas elas funcionem juntas com eficiência. A ideia e criar multiprocessadores e multicomputadores. Com a Internet é possível formar grades de computação fracamente acopladas. * Pipeline Limitações Dependência de dados verdadeira; Dependência de desvio; Conflito de recurso; Antidependência. * Pipeline Quando duas CPUs ou elementos de processamento estão perto uma da outra, têm alta largura de banda, com baixo atraso, são ditas fortemente acopladas. Quando estão longe uma da outra, têm baixa largura de banda e alto atraso e remotas termos computacionais, são ditas fracamente acopladas. * Modelos de Computação Paralela Os modelos são classificados pelo fluxo de instruções e dados que se apresentam. Essa classificação é definida como taxonomia de Flynn. É divida em quatro categorias: SISD, SIMD, MISD e MIMD. * SISD (Single Instruction Single Data) Fluxo único de instruções sobre um único conjunto de dados é o caso das máquinas convencionais com uma CPU. Essa arquitetura é conhecida como Von Neumann. * Arquitetura Von Neumann - SISD * SIMD (Single Instruction Strem Multiple Data Stream) Corresponde ao caso das arquiteturas vetoriais onde a mesma operação é executada sobre múltiplos operandos. * MISD (Multiple Instruction stream Single Data stream) Pipeline de processadores onde os dados vão sendo processados e passados para o processador seguinte. * MIMD (Multiple Instruction Stream Multiple Data Stream) Várias instruções podem ser executadas ao mesmo tempo em unidades de processamento diferentes controladas por unidades de controle independentes. * Paralelismo de Instrução Acesso a memória é um grande gargalo na velocidade de execução da instrução. Buscar informações da memória antecipadamente: Armazenamento em registradores denominados buffer de pré-busca Dividindo a execução da instrução em: busca e a execução. * Paralelismo de Instrução Tempo * Paralelismo ao Nível do Processador A medida que os processadores vão ficando mais rápidos: Aparecem limitações de ordem física: velocidade nos fios de cobre; Maior produção de calor pelo chip; Processador Matricial: Múltiplas unidades de processamento que trabalham de forma sincronizada. Cada processador executa a mesma sequência de instruções sobre diferentes conjuntos de dados. Tem uma única unidade de controle Tem uma ULA para cada processador * Processador Matricial * Paralelismo ao Nível do Processador Processador Vetorial: Parecido com o matricial Operações aritméticas são executadas numa única ULA, que opera em PIPELINE Operandos são colocados em um registro vetorial para serem processados na ULA * Estruturas de Computadores Paralelos Multiprocessadores: São máquinas que possuem mais de um processador que podem trabalhar de forma assíncrona. Os processadores podem ter recursos (memória principal, cache, canais de E/S, etc.) compartilhados ou de uso exclusivo (locais). * Estruturas de Computadores Paralelos Máquina de Fluxo de Dados: O processamento é definido pelo caminho que os dados irão percorrer através das diferentes unidades funcionais da máquina. * Paralelismo de instruções O Pipeline permite um compromisso entre latência (tempo de execução da instrução) e a largura de banda do processador (quantos MIPS a CPU tem). * Paralelismo no Chip Multiprocessadores no chip: Multiprocessadores homogêneos: 1 processador (núcleo) m processadores (núcleos) com n threads com n threads Essas CPUs compartilham as mesmas cache (L1, L2, memória principal). Projetos Um chip, mas tem um segundo pipeline; Núcleos separados no chip e cada um contém uma CPU completa. CPU * Paralelismo no Chip Multiprocessadores heterogêneos em sistemas embarcados: Pequenos processadores especializados em uma tarefa (MPEG-3; áudio e vídeo composto; receptores de satélite, etc.) Disponíveis em bibliotecas de núcleos específicos para serem incorporados num único chip. * Paralelismo no Chip * Paralelismo no Chip Questões do projeto? Quantos níveis de cache devem ser usados? As caches devem ser unificadas ou divididas? Qual o tamanho das caches? A velocidade de cada uma? Deve ser SRAM ou SDRAM? Como todos os núcleos se comunicam um com o outro? * Co-processadores Processador especializado que coopera com um processador “principal”. Exemplos: Processadores de I/O (às vezes mesmo canais de DMA) Processadores de Ponto Flutuante Processadores de rede (especializados em lidar com o tráfego de redes) Processadores de multimídia (voltados ao tratamento de imagens e áudio em tempo real) Processadores de criptografia (garantir conexão segura em redes) * Modelos de Comunicação Multiprocessadores (HW) vários processadores acessam uma mesma memória física compartilhada Fortemente acoplado (SW) todos os processadores compartilham o mesmo espaço de endereçamento Comunicação via instruções LOAD/STORE Modelo de programação simples * Modelos de Comunicação Multiprocessadores (exemplo) Multiprocessador com 16 CPUs compartilhando uma memória comum Memória dividida em 16 seções; cada uma analisada por uma CPU. * Modelos de Comunicação Multicomputadores (HW) cada CPU tem uma memória privada (sistema de memória distribuída) Fracamente acoplado (SW) cada processador tem um espaço de endereçamento particular Comunicação via primitivas send/receive Modelo de programação mais complexo * Modelos de Comunicação Multicomputadores Multicomputador com 16 CPUs cada uma com sua memória privada Imagem (figura anterior) distribuída entre as 16 CPUs * Modelos de Comunicação Multiprocessadores Multicomputadores Multiprocessadores: mais fáceis de programar construir memórias compartilhadas para 100’s de CPU não é trivial Contenção pode afetar muito o desempenho Multicomputadores: mais difíceis de programar construir multicomputadores com 1000’s relativamente fácil não escalável mais escalável * Multicomputadores Massive Paralel Processors Características dos MPPs: em geral CPUs comerciais, redes de interconexão proprietárias de altíssimo desempenho, “enorme” capacidade de I/O, tolerância a falhas. Preços elevados. Exemplos: Blue Gene System (IBM – 2001) ; Red Storm (Sandia- 2002). * * * * * *
Compartilhar