Buscar

Arquitetura de computadores paralelos

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).
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais