Capítulo 8 Arquitetura de Computadores Paralelos



Documentos relacionados
Organização e Arquitetura de Computadores I. de Computadores

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Processos e Threads (partes I e II)

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Sistemas Operacionais Processos e Threads

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Máquinas Multiníveis

Sistema de Computação

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Introdução à Arquitetura de Computadores

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Multicomputadores. Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação CECOMP

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Sistema Operacional Correção - Exercício de Revisão

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Programação Concorrente Processos e Threads

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Sistemas Operacionais

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

ARQUITETURA DE COMPUTADORES

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Capítulo 1 Introdução

FACULDADE PITÁGORAS PRONATEC

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

SISTEMAS DISTRIBUÍDOS

ULA Sinais de Controle enviados pela UC

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES

Microinformática Introdução ao hardware. Jeronimo Costa Penha SENAI - CFP/JIP

Arquitetura de Von Neumann e os Computadores Modernos

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

SISTEMAS OPERACIONAIS

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Comparação SDs X Scs

Teleprocessamento e Redes Universidade Católica do Salvador. Aula 04 - Estrutura de Redes de Comunicação. Objetivo : Roteiro da Aula :

Unidade 13: Paralelismo:

Sistemas Computacionais II Professor Frederico Sauer

Disciplina: Introdução à Informática Profª Érica Barcelos

Sistemas Operacionais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Introdução a Informática. Prof.: Roberto Franciscatto

Organização de Computadores 1

Programação de Sistemas

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Sistemas Operacionais. Prof. André Y. Kusumoto

Profs. Deja e Andrei

Arquitetura e Organização de Computadores I

Introdução aos Computadores

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

BARRAMENTO DO SISTEMA

SISTEMAS DISTRIBUÍDOS

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Arquitetura de Computadores - Revisão -

Memória compartilhada (shared memory): - o espaço de endereçamento é único; - comunicação através de load e store nos endereços de memória.

Escalonamento no Linux e no Windows NT/2000/XP

ESTUDO DE CASO WINDOWS VISTA

7 Processamento Paralelo

Arquitetura e Organização de Computadores

Arquitetura de Computadores II

Estrutura de um Computador

Fundamentos em Informática

Sistemas Operacionais

Sistemas Operacionais

Organização de Computadores

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Arquitetura de Rede de Computadores

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes


Fundamentos de Sistemas Operacionais

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

28/9/2010. Unidade de Controle Funcionamento e Implementação

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Processos. Adão de Melo Neto

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

ARQUITETURA DE COMPUTADORES

Processamento de Dados

Transcrição:

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: Executados dentro 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