Sistemas Distribuídos

Documentos relacionados
SSC510 Arquitetura de Computadores. 6ª aula

Disciplina de Arquitetura de Computadores

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Arquiteturas paralelas Parte 1

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Organização e Arquitetura de Computadores I

PARALELISMO NO NÍVEL DO PROCESSADOR

Multiprogramação leve em arquiteturas multi-core

Arquitetura de Computadores. Processamento Paralelo

Arquiteturas Paralelas

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Arquitetura de Computadores. Prof. João Bosco Jr.

Organização de Computadores II. Arquiteturas MIMD

Programação Distribuída e Paralela. Jorge Barbosa

Processamento Paralelo

Caracterização de Sistemas Distribuídos

Linguagem de Programação II

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Processamento Paralelo

Sistemas distribuídos. Prof. Emiliano Monteiro

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Processadores. Principal função é executar programas armazenados na memória principal.

SSC510 Arquitetura de Computadores. 7ª aula

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

OpenMP: Variáveis de Ambiente

Computadores e Programação (DCC/UFRJ)

Unidade 12: Introdução ao Paralelismo:

Processadores para computação de alto desempenho

Sistemas Operacionais. Conceitos de Hardware

Arquitetura de Sistemas Digitais

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Ferramentas para Programação em Processadores Multi-Core

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

Parte I Multiprocessamento

Programação Concorrente

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Modelo de Programação Paralela

TOP Arquitetura dos supercomputadores

Arquitetura de sistemas distribuídos

Arquitetura de Computadores Aula 11 - Multiprocessamento

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Programação Paralela e Distribuída

Computação de alto desempenho

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

Computação de alto desempenho

Introdução à Computação: Arquitetura von Neumann

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas SIMD

Arranjo de Processadores

Computação Paralela (CUDA)

Arquitetura de Computadores Unidade Central de Processamento CPU

ENDEREÇAMENTO DE INSTRUÇÕES. Adão de Melo Neto

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais Distribuídos

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

5 Unidades de Processamento Gráfico GPUs

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Transcrição:

Sistemas Distribuídos Classificação de Flynn Fonte: Professoras. Sarita UFRJ e Thais V. Batista - UFRN

Arquiteturas Paralelas Computação Paralela Conceitos Permite a execução das tarefas em menor tempo, através da execução em paralelo de diversas tarefas. O paralelismo pode ser obtido em diversos níveis, com ou sem o uso de linguagens de programação paralela. Arquiteturas de diversos tipos, elaboradas para aplicações específicas, podem ser utilizadas para acelerar a execução dessas aplicações. 2

Arquiteturas Paralelas Computação Paralela Conceitos Programação Seqüencial Um servidor, atendendo vários clientes, um por vez Programação Concorrente Um servidor, atendendo vários clientes através de uma política de escalonamento no tempo Programação Paralela Vários servidores, atendendo vários clientes simultaneamente no tempo 3

Arquiteturas Paralelas Computação Paralela Aplicações Genoma Humano Turbulência dos Fluidos Dinâmica de Veículos Circulação de Oceanos Dinâmica de Fluidos Viscosos Modelagem de Supercondutores Cromodinâmica Quântica Visão por Computador Farmacêutica Biologia Estrutural Previsão do Tempo (precisão > 72 hs) 4

Arquiteturas Paralelas Existem diversas classificações para as arquiteturas paralelas Devido a constante evolução, nenhuma classificação consegue abranger todas as arquiteturas existentes Classificação de Flynn (1972): Some computer organizations and their effectiveness, IEEE Transactions on Computers, vol. C-21, pp. 948-960, 1972. Mais conhecida Baseia-se na unicidade e multiplicidade do fluxo de dados e instruções 5

Fluxo de instruções Arquiteturas Paralelas Classificação de Flynn Fluxo de dados Único Múltiplo Ú n i c o SISD Single Instruction Single Data SIMD Single Instruction Multiple Data M ú l t i p l o MISD Multiple Instruction Single Data (não implementável) MIMD Multiple Instruction Multiple Data 6

Arquiteturas Paralelas Classificação de Flynn SISD: único fluxo de instrução, único fluxo de dados classe que representa os computadores convencionais (seriais) as instruções são executadas serialmente, porém os estágios (busca da instrução, decodificação, busca do operando e execução) podem ser sobrepostos (pipeline) pode-se saber o que está ocorrendo exatamente em cada instante de tempo e reproduzir o processo passo a passo mais tarde está presente nos sistemas computacionais cujo processador é single core 7

Arquiteturas Paralelas Classificação de Flynn SISD FI FI FD UC UP M FI - Fluxo de instruções M - Memória FD - Fluxo de dados UC - Unidade de Controle UP - Unidade de Processamento 8

Arquiteturas Paralelas Classificação de Flynn SISD Exemplo (SISD) Considere 2 processos desejando fazer o mesmo cálculo abaixo: LOAD A(I) B(I)=A(I)*4 => MULT 4 STORE B(I) TEMPO: t 1 t 2 t 3 t 4 t 5 t 6 Processador P LOAD A(1) Processador P MULT 4 Processador P STORE B(1) Processador P LOAD A(2) Processador P MULT 4 Processador P STORE B(2) 9

Arquiteturas Paralelas Classificação de Flynn SIMD SIMD: único fluxo de instruções, múltiplo fluxo de dados classe que representa os processadores matriciais, paralelos e associativos uma única unidade de controle que envia um fluxo de instruções para vários processadores os processadores recebem a mesma instrução ao mesmo tempo e atuam sobre diferentes fluxos de dados trabalha com threads já estão sendo utilizadas GPUs (Graphics Processor Units ou Unidades de Processamento Gráfico) para o processamento paralelo e elas empregam SIMD. 10

Arquiteturas Paralelas Classificação de Flynn SIMD FI FI UP FD M UC FI UP FD M FI... UP FD... M Memória 11

Arquiteturas Paralelas Classificação de Flynn SIMD Exemplo (SIMD): 3 processos desejando realizar o cálculo abaixo LOAD A(I) B(I)=A(I)*4 => MULT 4 STORE B(I) TEMPO: t 1 P 1 LOAD A(1) P 2 LOAD A(2) P 3 LOAD A(3) t 2 P 1 MULT 4 P 2 MULT 4 P 3 MULT 4 P 1 P 2 P 3 t 3 STORE B(1) STORE B(2) STORE B(3) 12

Arquiteturas Paralelas Classificação de Flynn MIMD MIMD: múltiplo fluxo de instruções, múltiplo fluxo de dados vários processadores ou processadores multicore, cada um controlado por uma unidade de controle processadores recebem instruções diferentes e operam sob fluxo de dados diferentes podem ser síncronos ou assíncronos trabalha com threads essa é, atualmente, a classificação mais utilizada nos sistemas computacionais 13

Arquiteturas Paralelas Classificação de Flynn MIMD UC FI UP FD M FI UC FI UP FD M FI............ UC FI UP FD M FI Memória 14

Arquiteturas Paralelas Classificação de Flynn MIMD Exemplo (MIMD) obrigatório threads TEMPO: P 1 Programa principal Inicializa Dispara tarefa A Dispara tarefa B P 2 P 3 Tarefa B Tarefa A Tarefa C Espera por processador Fim da tarefa B Dispara tarefa C Tarefa D Espera por processador Fim da tarefa A Dispara tarefa D Espera fim de todas as tarefas Fim da tarefa C Fim da tarefa D Junta resultados Fim Fim(B) Tarefa C Fim(C) Fim(A) Tarefa D Fim(D) 15

Modelos de acesso à memória Um computador convencional consiste de um processador executando um programa armazenado na memória: Instruções para o processador Dados para/do processador Memória principal Processador 16

Modelos de acesso à memória Cada lugar da memória possui um endereço que inicia em 0 e vai até 2 n - 1, onde n é o número de bits do endereço Em computação paralela, pode-se ter: memória compartilhada (multiprocessadores) memória distribuída (multicomputadores) 17

Memória Compartilhada Distribuída Tipos de Sistemas Multiprocessador Multiprocessadores: duas ou mais CPUs compartilham uma memória compartilhada Multicomputadores: cada CPU tem sua prórpia memória privada 18

Memória Compartilhada Distribuída Objetivo: Multicomputadores comunicarem-se via memória compartilhada 19

Memória Compartilhada Distribuída Característica: baseada em páginas Nenhum processador pode acessar diretamente a memória de outro processador (NO Remote Memory Access NORMA) Funcionamento: Quando um processador referencia uma página remota, esta página deve ser buscada. A página migra dinamicamente pela rede Os processos acessam a memória sem ter conhecimento que páginas estão em locais remotos e serão transferidas pela rede 20

Memória Compartilhada Distribuída baseada em páginas 21

Memória Compartilhada Distribuída baseada em Variáveis Compartilhadas Organização da memória compartilhada de uma forma mais estruturada Característica: Apenas variáveis e estruturas de dados são compartilhadas Como manter uma base de dados distribuída e replicada? Dois exemplos de implementação: Munin Midway 22

Memória Compartilhada Distribuída baseada em Variáveis Compartilhadas: Munin Variáveis compatilhadas incluem a palavra chave shared para o compilador reconhecê-las Acesso a variáveis compartilhadas são feitas como se fosse local. Se a variável não está presente localmente, uma falta de página acontece e o Munin passa a ter o controle do sistema. Tipos de Variáveis permitidas: Variáveis comuns Variáveis Compartilhadas Variáveis Sincronizadas 23

Memória Compartilhada Distribuída Características: baseada em Objetos processos em múltiplas máquinas compartilham um espaço abstrato que contém objetos compartilhados a localização e o gerenciamento de objetos é realizado pelo ambiente de execução qualquer processo pode invocar métodos nos objetos Vantagens sobre os outros métodos: É mais modular que outras técnicas A implementação é mais flexível porque o acesso é controlado Sincronização e acesso pode ser integrados 24

Memória Compartilhada Distribuída baseada em Objetos Vantagens sobre os outros métodos: É mais modular que outras técnicas A implementação é mais flexível porque o acesso é controlado Sincronização e acesso pode ser integrados 25

MIMD com Memória compartilhada A mesma memória é acessada pelos múltiplos processadores Sincronização entre tarefas é feita por escrita/leitura na/da memória compartilhada e usuário é responsável por sua especificação Um lugar da memória não pode ser modificado por uma tarefa enquanto outra o estiver acessando 26

MIMD com Memória compartilhada Comunicação entre tarefas é rápida Escalabilidade limitada pelo número de caminhos entre memória e processadores UC 1 UC 2 UC n 27

MIMD com Memória compartilhada Usuário é responsável pela sincronização Programação: Linguagens de programação paralela Construções e instruções paralelas permitem declarações de variáveis compartilhadas e seções paralelas de código Compilador responsável pela geração do código final executável Uso de Threads neste contexto Seqüências de código escritas em alto nível para processadores individuais que podem acessar localidades compartilhadas 28

MIMD com Memória compartilhada Exemplos: SMP (Symetric MultiProcessors) SGI Power Chalenge máquinas da Sun Microsystems Silicon Graphics NUMA (NonUniform Memory Access) 29

MIMD com Memória distribuída Memória fisicamente distribuída entre os processadores e cada memória local só pode ser acessada pelo seu processador Tarefas se comunicam através de troca de mensagens e a sincronização entre as tarefas é feita através dessa troca 30

MIMD com Memória distribuída Programação: Bibliotecas com rotinas para passagem de mensagens que são ligadas a programas seqüenciais convencionais são bastante utilizadas Problema dividido em um número de tarefas que se comunicam 31

MIMD com Memória distribuída UC 1 UC 2 UC n 32

MIMD com Memória distribuída MPP (Massively Parallel Processors) interconectadas por rede de alta velocidade boa escalabilidade (podem ser formadas por uma grande quantidade de máquinas) complicadas de programar alto custo (em torno de US$ 1.000.000) Exemplos: Intel Paragon Cray T3E Thinking Machines CM-5 33

MIMD com Memória distribuída COW (Cluster of Workstations) utilização de estações de trabalho em uma rede local de processamento baixo custo boa relação custo/benefício 34

Arquiteturas Paralelas Arquiteturas Paralelas SISD SIMD MISD MIMD (Maquina de Von Neumann)? Vector Processor Array Processor Multi- Processors Multi- Computers UMA COMA NUMA MPP COW Bus Switched CC- NUMA NC- NUMA Grid Fonte: A. Tanenbaum Structured Computer Organization 35

Site Interessante Para maiores exemplos acerca dos supercomputadores (modelos, características, etc) visite o site www.top500.org