Buscar

Arquitetura de Computadores Paralelos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Capítulo 8 − Arquitetura de Computadores Paralelos
− Necessidade de máquinas com alta capacidade de computação 
− Aumento do clock => alta dissipação de calor
− Velocidade limitada dos circuitos => velocidade da luz
− Redução do tamanho dos transistores => efeitos quânticos
− Paralelismo:
− Nível de instrução => pipeline, estrutura superescalar => fator de 10
− Nível de CPUs => fator acima de 100
8.1 Características de Computadores Paralelos
− Natureza, tamanho e quantidade de elementos de processamento ?
− Simples ULA ou CPU completa
− Pequena porção de um chip ou grande quantidade de circuitos por
elemento de processamento
− Quanto menor o elemento de processamento, maior a quantidade de
elementos que podem ser colocados em paralelo.
− Natureza, tamanho e quantidade de módulos de memória ?
− Memória geralmente dividida em módulos, independentes, em paralelo.
 − KB a MB
− Integradas próximas às CPUs ou em uma placa distinta
− Memória geralmente mais lenta do que a CPU => até quatro níveis de
cache
− Como os elementos e processamento e memória são conectados ?
− Principal diferença dos computadores paralelos
− Dois modelos principais:
− Estático: Os elementos são conectados de maneira fixa: estrela,
anel, malha
− Dinâmico: elementos conectados por um chaveador de rede que
faz o roteamento dinâmico das mensagens entre os componentes.
− Como ocorre a execução em paralelo ?
− Computadores paralelos projetados para executar independentemente
vários programas, simultaneamente => programas não conectados e sem
comunicação entre eles => vários usuários.
− Computadores paralelos projetados para executar um único programa
composto por vários processos => único usuário.
− Computadores com pipeline muito profunda ou com várias ULAs
operando com a mesma instrução ao mesmo tempo => processamento vetorial.
147
− Granulosidade: Refere−se aos algoritmos e software => analogia direta com o
hardware
− Paralelismo de grãos grandes: execução de grandes partes de software
com pouca ou nenhuma conexão entre elas.
− Paralelismo de grãos pequenos: extremo oposto, tal como no
processamento vetorial.
− Sistemas com poucas CPUs independentes e grandes que possuem conexões
de baixa velocidade entre as CPUs => sistemas pouco acoplado.
− Sistemas cujos componentes são pequenos, próximos um dos outros e com
interação constante, com redes de comunicação de alta velocidade => sistemas
altamente acoplados.
8.1.1 Modelos de Comunicação
Multiprocessadores
− Sistema de memória compartilhada
− As CPUs compartilham uma memória comum
− Todos os processos executados em um multiprocessador podem compartilhar
um único espaço de memória virtual mapeado na memória comum.
− Troca de dados entre processos => leitura e escrita na memória comum.
Multicomputadores
148
− Sistema de memória distribuída
− Cada CPU possui sua própria memória, não acessível às outras CPUs.
− Geralmente pouco acoplados.
− Possuem um único espaço físico de memória para cada CPU.
− Troca de informação entre processos => envio de mensagens usando uma
rede de conexão.
− Software mais complicado do que em um multiprocessador
− Necessária a divisão dos dados e envio para as unidades de processamento
− Multicomputadores grandes são muito mais fáceis e baratos de serem
construídos.
149
− Multiprocessadores: difíceis de serem construídos mas fáceis de serem
programados
− Multicomputadores: fáceis de serem construídos mas difíceis de serem
programados
=> Sistemas híbridos: Projetos escalonáveis => adição de CPUs com a
manutenção da performance.
− Memória compartilhada implementada em hardware: multiprocessador
− Memória compartilhada implementada pelo sistema operacional: busca de
páginas em memória remota e não do disco
− Memória compartilhada implementada pelo compilador e sistema de tempo
real: abstração de memória compartilhada
8.1.2 Redes de Conexão
150
− Redes de conexão podem conter até cinco componentes:
− CPUs
− Módulos de memória
− Interfaces
− Links
− Switches
− Interfaces: elementos da que "pegam" as mensagens de e para as CPUs e
memória.
− Geralmente um CI ou placa conectada a cada barramento local de cada
CPU.
− Links: canais físicos nos quais os bits são movimentados
− Podem ser simplex, half duplex ou full duplex.
− Switches: dispositivos com várias portas de entrada e várias portas de saída:
utilizado para fazer o roteamento de pacotes.
Topologia
− Descreve como os links e switches estão conectados
− Fanout: número de links conectados a um dado nó .
− Diâmetro: Maior distância entre dois nós dada pelo número de links que
devem ser utilizados para a conexão.
− Largura de faixa de duas seções: menor largura de faixa dos links removidos
para se formar duas seções com mesmo número de nós.
− Dimensão: determinada pelo número de escolhas que existem para sair de
uma fonte e chegar a um dado destino => dimensão zero: apenas um caminho.
151
152
Chaveamento
− Aceita pacotes de qualquer porta de entrada, enviando−o para a porta de saída
adequada.
− Chaveamento de circuito: Antes do envio do pacote todo o caminho da fonte
para o destino é reservado.
− Chaveamento de pacotes por armazenamento e envio: A fonte envia todo o
pacote para a switch, onde ele é armazenado. Depois de armazenado a switch o
envia para outra switch e assim sucessivamente.
− Necessidade de buffers:
− Buffer de entrada: Associados com a porta de entrada. Implementado
como FIFO. Pode gerar um bloqueio de cabeça de linha (head−of−line
blocking)
− Buffer de saída: Associados com a porta de saída.
− Buffer comum: única fila de buffers alocados dinamicamente para cada
porta.
153
Algoritmos de Roteamento
− Redes com dimensão um ou mais: escolha do caminho a ser percorrido.
− Deadlock: vários pacotes transitando no mesmo tempo solicitam recursos de
tal forma que nenhum deles é atendido, permanecendo bloqueados.
− Roteamento pela fonte: a fonte determina toda a rota a ser percorrida.
− Roteamento distribuído: cada switch determina para qual porta o pacote de
chegada deve ir.
− Estático: mesma escolha para um dado destino
− Adaptativo
8.1.3 Performance
Medições de Hardware
− Velocidade da CPU e I/O: iguais a um único processador
− Performance da rede de conexão:
− Latência: tempo de uma CPU enviar um pacote e receber a resposta
− Largura de faixa: 
− Largura de faixa de duas seções
− Largura de faixa agregada: soma de todas as capacidades de
todos os links
− Largura de faixa média de saída de cada CPU
Medições de Software
− Velocidade: Quanto mais rápido um programa é executado em um sistema
com n−processadores do que em um com um único processador.
154
Alcançando Grandes Performances
− Adição de mais CPUs evitando gargalos
− Sistema escalonável: possibilidade de adicionar CPUs aumentando o poder de
computação.
− Manutenção da largura de faixa média por CPU
− Manutenção do tempo de latência
− Técnicas para "esconder" o tempo de latência:
− Cópia de blocos de dados
− Prefetching
− Multithreading
− Instruções não bloqueantes
8.1.4 Software
− Arquitetura paralela => software paralelo
− Inclusão de bibliotecas numéricas especiais => apenas algumas funções
utilizarão os recursos da computação paralela
− Inclusão de bibliotecas de comunicação e controle => responsabilidade do
programador em criar e gerenciar o paralelismo dos processos.
− Inclusão de construções especiais em linguagens de programação já existentes
− Criação de uma nova linguagem especial para processamento paralelo.
Modelos de Controle
− Uma linha de controle: Existe um único programa e um único PC, mas vários
conjuntos de dados
− Múltiplas linhas de controle: Existem vários programas, cada um com o seu
próprio PC e seu próprio conjunto de dados.
155
Granulosidade do Paralelismo
− Nível mais baixo: Instruções de máquina em paralelo − Superescalar:
Programador sem consciência do paralelismo
− Paralelismo a nível de bloco: Programador controla quais comandos devem
ser executados seqüencialmente e quais devem ser executados em paralelo.
− Threads ou Processos Leves: Executadosdentro do espaço de endereçamento
do processo principal. Cada thread possui seu próprio PC, registradores e pilha,
mas compartilham o resto do espaço de endereçamento.
− Múltiplos processos: Vários processos para resolver um mesmo problema.
Paradigmas Computacionais
− SPMD: Single Program Multiple Data: Uma linha de controle para vários
conjuntos de dados
− Pipeline: Um processo utiliza o dado do processo antecessor.
− Computação por fases: Vários processos em paralelo, antes de passar para a
próxima fase o processo espera até que todos os demais tenham terminado
− Dividir e Conquistar: Um processo inicia o trabalho e cria outros processos a
medida que ele puder passar algum trabalho para eles
−Replicated Worker ou Task farm: Existência de uma fila de trabalhos a serem
executados. Cada processo retira um trabalho da fila e o executa.
Métodos de Comunicação
− Comunicação por variáveis compartilhadas: todos os processos possuem
acesso a uma determinada área de memória lógica
− Comunicação por mensagens: utilização de primitivas para o envio e
recebimento de mensagens.
− Mensagem ponto−a−ponto: um emissor e um receptor
− Broadcasting: um emissor e vários receptores (todos os
processos)
− Multicasting: um emissor e vários receptores (alguns processos)
156
Primitivas de Sincronização
− Exclusão mútua: Necessária para impedir que algum processo tente ler um
dado enquanto outro processo escreve o dado.
− Semáforos, travas, mutexes, seções críticas
− Barreira: Capacidade do processo se bloquear até que uma determinada fase
do trabalho esteja completa.
8.1.5 Taxinomia de Computadores Paralelos
− Categorização de arquiteturas paralelas: Proposta de Flynn
Multiprocessadores
− UMA: Uniform Memory Acess: Cada CPU possui o mesmo tempo de acesso
a cada módulo de memória.
− NUMA: NonUniform Memory Acess: O tempo de acesso de cada CPU varia
em função do módulo de memória acessado.
− COMA: Cache Only Memory Acess: Memória principal de cada CPU
utilizada como cache.
Multicomputadores (ou NORMA − NO Remote Memory Acess)
157
− MPP: Massively Parallel Processors: Várias CPUs muito acopladas por uma
rede proprietária de alta velocidade.
− COW − Cluster of Workstations ou NOW − Network of Workstations: Vários
PCs ou workstations conectados em rede padrão, comercial.
8.2.1 Computadores SIMD
− Uma única unidade de controle que executa a mesma instrução em múltiplos
dados.
8.2.1 Processador matricial
− Uma única unidade de controle fornece os sinais que comandam vários
elementos de processamento.
− Características:
− Tipo do elemento de processamento
− Maneira como os elementos de processamento são conectados
− Qual a autonomia dos elementos de processamento
8.2.2 Processadores Vetoriais
158
− Funções:
 − ULA vetorial:
− Combinação de processamento vetorial com pipeline: Ausência de saltos
quando se opera com vetores => não existem "buracos" na pipeline.
159

Outros materiais