Prof. Arthur Projeto Lógico de ComputadoresArquiteturas Avançadas Projeto Lógico de Computadores...
-
Upload
victor-gabriel-borba-bandeira -
Category
Documents
-
view
218 -
download
3
Transcript of Prof. Arthur Projeto Lógico de ComputadoresArquiteturas Avançadas Projeto Lógico de Computadores...
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Projeto Lógico de Projeto Lógico de ComputadoresComputadores
Prof. ArthurProf. [email protected]@unip.br
20122012
Arquiteturas AvançadasArquiteturas Avançadas
Máquinas Paralelas
Prof. ArthurProf. Arthur
Máquinas ParalelasMáquinas Paralelas
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Introdução
Embora os computadores estejam cada vez mais velozes, o nível de exigência sobre eles cresce mais rápido que sua velocidade de operação.
Em função disso, os projetistas de computadores estão se voltando para os computadores paralelos.
Prof. ArthurProf. Arthur
Máquinas ParalelasMáquinas Paralelas
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Introdução
Ainda não é possível construir um único processador cujo ciclo seja, por exemplo, 0,001 ns.
Mas é possível construir uma máquina com 1.000 processadores com ciclo de 1 ns cada, o que equivale, em termos de potência de processamento, a um único processador com ciclo de 0,001 ns.
Prof. ArthurProf. Arthur
As três perguntas básicas ao iniciar-se o estudo de uma máquina paralela são:
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
• Qual a natureza, o tamanho e a quantidade de seus elementos de processamento?
• Qual a natureza, o tamanho e a quantidade de seus elementos de memória?
• Como os elementos de processamento e os elementos de memória estão interconectados?
Prof. ArthurProf. Arthur
Os sistemas de memória são muitas vezes divididos em módulos que operam de modo independente uns dos outros, e em paralelo para permitir que vários processadores tenham acesso simultâneo às informações armazenadas.
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
Prof. ArthurProf. Arthur
A área na qual os sistemas de processamento paralelo apresentam as maiores diferenças diz respeito à maneira de ligar as diversas partes que compõem esses sistemas.
De maneira geral, os esquemas de interconexão podem ser divididos em: estáticos e dinâmicos.
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
Prof. ArthurProf. Arthur
Esquema Estático:
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
Os componentes são ligados de maneira fixa como, por exemplo: em estrela, em anel ou em grade.
Prof. ArthurProf. Arthur
Esquema Dinâmico:
Projeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
Nesta situação, todas as partes componentes do sistema estão ligadas a elementos comutadores, os quais podem rotear mensagens dinamicamente entre eles.
Comutador A
Comutador B
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
A adoção do esquema estático ou do dinâmico depende diretamente da finalidade a que os computadores se destinam.
Por exemplo, um computador de banco que gerencie as transações em caixas eletrônicos estará rodando simultaneamente tarefas independentes entre si. Neste caso, o esquema estático é o mais indicado.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
Os sistemas compostos por uma pequena quantidade de processadores grandes, independentes e com conexões de baixa velocidade entre si, são denominados de sistemas fracamente acoplados.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasIntrodução
Os sistemas fortemente acoplados são compostos de processadores de pouca potência computacional, fisicamente próximos uns dos outros e que interagem frequentemente através de redes de comunicação de alta velocidade.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
Em qualquer tipo de sistema de processamento paralelo, os processadores que estiverem trabalhando nas diferentes partes de uma mesma tarefa precisam se comunicar entre si para poder trocar informação:
• Sistemas multiprocessadores
• Sistemas multicomputadores
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
MultiprocessadoresTodos os processadores compartilham a mesma memória física.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
MultiprocessadoresTodos os processos que trabalham juntos em um sistema multiprocessador podem compartilhar um único espaço de endereçamento virtual mapeado na memória física comum a eles.
Dois processos podem se comunicar escrevendo / lendo dados na memória compartilhada.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
MultiprocessadoresExemplo:
•Considere um programa que inspeciona uma imagem em um mapa de bits e lista todos os objetos nela existentes.
•Uma cópia da imagem é mantida na memória.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
Multiprocessadores• Cada um dos 16 processadores roda um único
processo, processo esse que analisa uma das 16 seções nas quais o mapa foi dividido para análise.
• Além disso, cada processo tem acesso à imagem inteira, o que é essencial, pois alguns objetos podem ocupar mais de uma seção .
• Se um processo descobre que um dos seus objetos se estende além da fronteira de uma seção, simplesmente ele continua a analisar esse objeto na seção seguinte.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
MulticomputadoresCada processador tem sua própria memória, acessível somente pelo processador proprietário e nunca diretamente por qualquer outro processador do sistema.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
MulticomputadoresEste sistema tem um único espaço de endereçamento para cada processador.
Como os processadores de um multicomputador não podem se comunicar por meio de leituras e escritas à memória comum, eles fazem a comunicação entre si trocando mensagens uns com os outros, através de uma rede de interconexão.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasModelos de Comunicação
MulticomputadoresSe um processador precisar de informações que estão num outro espaço de endereçamento que não o seu próprio, ele deve descobrir qual dos processadores do sistema tem os dados que ele necessita e enviar uma mensagem para este processador requisitando uma cópia destes dados.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
As redes de interconexão podem ser compostas por até cinco componentes:
• Processadores
• Módulos de memória
• Interfaces
• Links
• Comutadores
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
As interfaces são dispositivos que de fato fazem o envio e a recepção de mensagens.
Em alguns projetos a interface é um chip ou uma placa ligada a cada barramento local dos processadores, e que pode se comunicar tanto com o processador quanto com a memória local.
Em geral a interface pode ler e escrever em várias memórias, o que possibilita a transferência de blocos de dados.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Os links são os canais físicos sobre os quais os bits se movimentam. Um canal pode ser construído com fios elétricos ou com fibras ópticas.
Cada link tem uma banda passante máxima, que representa a quantidade de bits que o link pode transferir por segundo. O link pode ser: simplex, half-duplex ou full-duplex.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Os comutadores são dispositivos com várias portas de entrada e várias portas de saída. Quando um pacote chega à porta de entrada de um comutador, alguns de seus bits são usados para selecionar a porta de saída pela qual o pacote deve ser enviado.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Ao projetar uma rede de interconexão deve-se prestar atenção em três pontos principais:
• Topologia
• Comutadores
• Roteamento
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Topologia: como os componentes da rede são organizados?
Árvore
Grade
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Topologia
•Descreve a interconexão dos links e dos comutadores.
•O projeto pode ser modelado por meio de grafos, com os links sendo os arcos e os comutadores os nós.
•Cada nó de uma rede tem um certo número de links ligados a ele. A este número denomina-se fanout do nó. Quanto maior o fanout maior a quantidade de escolhas à disposição do algoritmo de roteamento, e maior a tolerância a falhas.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Comutadores: como funcionam e como tratam da escassez de recursos?
• Uma rede de interconexão é composta de comutadores e de fios que os conectam.
• Cada comutador tem alguns processadores e circuitos de interconexão.
• A tarefa do comutador é aceitar pacotes que chegam em qualquer uma das portas de entrada e enviá-los para a porta de saída correta, de acordo com o seu destino.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Comutadores:
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Comutadores: como funcionam e como tratam da escassez de recursos?
• Cada porta de saída é ligada a uma porta de entrada de outro comutador por intermédio de um link serial ou paralelo.
• Os links seriais transferem um bit de cada vez, e os paralelos transferem vários bits de uma só vez.
• Os links paralelos têm de tratar do problema do escorregamento do clock.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Roteamento: como estabelecer o algoritmo de roteamento usado para levar mensagens de modo eficiente a seus destinos?
• Um bom algoritmo de roteamento deve dividir a carga da rede sobre seus diversos links, de maneira a utilizar totalmente a banda passante disponível.
• O algoritmo deve evitar a ocorrência de deadlocks.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Deadlock
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Deadlock
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Roteamento:
• Os algoritmos de roteamento podem ser classificados como roteamento fonte ou roteamento distribuído.
• Roteamento fonte: a fonte determina antecipadamente a rota completa do pacote através da rede de interconexão, elaborando uma lista de números de portas a serem usadas em cada comutador ao longo do caminho.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Roteamento:
• Roteamento distribuído: cada comutador toma a decisão sobre a porta para a qual o pacote que entra deve ser mandado.
• Se a mesma decisão for tomada para todos os pacotes de um mesmo destino, diz-se que o roteamento é estático. Se o comutador levar em conta o tráfego atual da rede, diz-se que é adaptativo.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Performance: medidas no hardware
• Velocidade do processador
• Velocidade dos dispositivos de E/S
• Performance da rede de interconexão
Considerando que o processador e os dispositivos de E/S são modelos de mercado, os parâmetros chave para a performance em sistemas paralelos são aqueles associados à rede de interconexão.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Performance: medidas no hardware
Há dois parâmetros principais para medir a performance das redes de interconexão:
Latência
Banda passante
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Performance: medidas no hardware
Latência total (ida e volta)
É o tempo gasto por um processador para enviar um pacote e receber uma resposta.
• Se o pacote for enviado à memória, a latência mede o tempo de leitura ou escrita de uma palavra ou de um bloco de palavras.
• Se o pacote for enviado para outro processador, a latência mede o tempo de comunicação entre processadores para pacotes daquele tamanho.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Performance: medidas no hardware
Banda passante
Representa a quantidade de bits por segundo que um sistema pode deslocar.
• Muitas fontes de overhead contribuem para reduzir a capacidade de comunicação de um link.
• Por exemplo, existe sempre um overhead associado a cada pacote: montagem do pacote, construção do seu cabeçalho e envio do pacote.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Performance: medidas no hardware
Banda passante
• O envio de 4 pacotes de 1024 bytes cada, por exemplo, não vai obter a mesma performance que o envio de um único pacote de 4096 bytes.
• Quanto menor o pacote, menor a latência, pois pacotes grandes bloqueiam por muito tempo as linhas de comunicação e os comutadores.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Performance: medidas do software
Ganho
Representa o quanto um programa irá rodar mais rápido em um computador paralelo, em comparação com o tempo de execução em uma máquina que tem um único processador.
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Obtenção de alta performance
• Nem sempre aumentar o número de processadores leva a um aumento de performance.
• Exemplo: consideremos 4 processadores conectados por meio de um barramento com banda passante b MB/s. Nessa situação a banda passante para cada processador é de b/4 MB/s.
P PPP
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Obtenção de alta performance
• Consideremos, agora, o mesmo barramento com 16 processadores:
P PPP PPPP
P PPP PPPP
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Obtenção de alta performance
• Nesta situação a banda passante para cada processador é de b/16 MB/s, o que derrubará a performance do conjunto.
• Para evitar este problema, o acréscimo de novos processadores deve vir acompanhado de novos links, de modo que o acréscimo no número de processadores não diminua a banda passante agregada por cada processador. Exemplo:
PP
PP
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores Arquiteturas AvançadasArquiteturas Avançadas
Máquinas ParalelasMáquinas ParalelasRedes de Interconexão
Obtenção de alta performance
• Exemplo com 16 processadores:
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
Prof. ArthurProf. ArthurProjeto Lógico de ComputadoresProjeto Lógico de Computadores
Projeto Lógico de Projeto Lógico de ComputadoresComputadores
Prof. ArthurProf. [email protected]@unip.br
20122012
Arquiteturas AvançadasArquiteturas Avançadas
Máquinas Paralelas
Arquiteturas AvançadasArquiteturas Avançadas