Programação Paralela e Distribuída

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

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

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

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

SSC510 Arquitetura de Computadores. 6ª aula

OpenMP: Variáveis de Ambiente

Introdução à Computação: Sistemas de Computação

Introdução na Computação Distribuída e Paralela

Sistemas Distribuídos

Caracterização de Sistemas Distribuídos

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

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

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

Multiprogramação leve em arquiteturas multi-core

Carlos Eduardo Batista Centro de Informática - UFPB

Programação Concorrente e Paralela. Noemi Rodriguez

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

Programação Concorrente e Paralela

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

Arquiteturas paralelas Parte 1

Arquitetura de Computadores. Processamento Paralelo

SIST706 Sistemas Distribuídos

Organização de Computadores 2005/2006 Processamento Paralelo

Modelos para Concorrência

Exemplo de Arquitetura: Cliente/Servidor com Mestre e Escravos. Interface. Fator de speed-up. Speed-up

Disciplina de Arquitetura de Computadores

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

Arquitetura de Computadores

Modelo de Von Neumann

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Parallel Computing Paradigms

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Linguagem de Programação II

XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015

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

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

PCC104 Projeto e Análise de Algoritmos

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

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

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

Paralelismo em Computadores com Tecnologia Multicore

Computadores e Programação (DCC/UFRJ)

The future is parallel but it may not be easy

Arquiteturas Paralelas

slide 0 Algoritmos Paralelos

Processamento Paralelo

Laboratório de Programação Paralela. Introdução. Prof. Carlos Bazilio

SSC0611 Arquitetura de Computadores

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

SIST706 Sistemas Distribuídos

Como programar um computador com processadores? ou: Oportunidades e Desafios da Computação Paralela

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

Arquitetura de sistemas distribuídos

O estado de arte: a evolução de computação de alto desempenho

Técnicas de Paralelização

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Medida de desempenho

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

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

Arquiteturas Paralelas

Processamento Paralelo

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

Programação Concorrente

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot

Programação Paralela e Distribuída

Programação Paralela e Distribuída

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

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

Sistemas distribuídos. Prof. Emiliano Monteiro

15/4/15. Informações gerais. Carga horária semestral total: 60 horas Horário: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos

Bibliografia em processamento paralelo

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

29/3/16. Informações gerais. Carga horária semestral total: 60 horas Horário: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos

SSC0510 Arquitetura de Computadores

Organização de Computadores

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO

Sistemas Distribuídos

Arquiteturas de Computadores

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Introdução. Arquitetura e Organização de Computadores I. Programa. Arquitetura e Organização de. Computadores. Capítulo 1.

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

Definindo melhor alguns conceitos

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco

Paradigmas de Computação

Organização e Arquitetura de Computadores I

Computação científica utilizando placas gráficas

JAVA CÁ & LÁ Um Middleware para Computação Paralela e Distribuída

SISTEMAS OPERACIONAIS DE REDE

STD29006 Sistemas Distribuídos

Taxonomia de Flynn. Procura classificar todas as arquitecturas de computadores com base no processamento das instruções e dos dado.

Introdução. Programação Paralela. Motivação. Conhecimento do Hardware. Análise de Desempenho. Modelagem do Problema

Ambientes de computação de alto desempenho no LNCC

INE5645-Programação Paralela e Distribuída Aula 17/09/2018 Nome

Programação em Paralelo OpenMP

Algoritmos Paralelos. Prof a : Cristina Boeres. Sistemas de Informação IC Instituto de Computação

Algoritmos Paralelos. Prof a : Cristina Boeres. Pós Graduação em Computação Instituto de Computação - UFF

Infraestrutura de Hardware. Processamento Paralelo Multicores, Multi-Threading e GPUs

Transcrição:

Programação Paralela e Distribuída Referência: Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.1

Chapter 1 Motivação: Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.2

Necessidade de mais capacidade de cálculo Há uma constante procura de maior velocidade de cálculo. Problemas de modelação numérica e simulação nas áreas da ciência e engenharia requerem grande capacidade de cálculo. Problemas cuja computação deve ser concluída num tempo razoável. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.3

Problemas que representam grandes desafios: Aplicações tradicionais: Modelação de grandes estruturas de ADN. Previsão meteorológica. Modelação do movimento dos planetas. Modelação de movimentos das placas tectónicas. Engenharia aeronáutica. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.4

Problemas que representam grandes desafios: Aplicações mais recentes: Motores de busca na web. Modelação económica e financeira. Realidade Virtual (e.g. Jogos). Big data e mineração de dados. Business Intelligence. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.5

Computação paralela Usar mais do que um computador, ou um computador com mais do que processador para resolver um problema. Porquê Geralmente para obter computação mais rápida, - ideia base n processadores a operar simultaneamente serão n vezes mais rápidos!! Outro motivos: tolerância a falhas, ter acesso a mais memória, aproveitar recursos disponíveis Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.6

Background A ideia de programação paralela e de ter computadores com mais do que um processador existe há mais de 60 anos: Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.7

Gill writes in 1958:... There is therefore nothing new in the idea of parallel programming, but its application to computers. The author cannot believe that there will be any insuperable difficulty in extending it to computers. It is not to be expected that the necessary programming techniques will be worked out overnight. Much experimenting remains to be done. After all, the techniques that are commonly used in programming today were only won at the cost of considerable toil several years ago. In fact the advent of parallel programming may do something to revive the pioneering spirit in programming which seems at the present to be degenerating into a rather dull and routine occupation... Gill, S. (1958), Parallel Programming, The Computer Journal, vol. 1, April, pp. 2-10. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.8

Conceitos e terminologia Supercomputing / high Performance Computing (HPC) - Usar os computadores maiores e mais rápidos para resolver problemas de grande dimensão. Node um computador, geralmente possui vários processadores, memória, interfaces de rede. CPU/ processor/ core - Eventualmente podemos ter um nó com múltiplos CPUs e cada CPU com múltiplos cores (ou núcleos), sendo cada um, uma unidade de execução. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.9

Conceitos e terminologia Task Secção de código que constitui uma tarefa a executar. Shared Memory Em termos de hardware descreve uma arquitetura em que todos os processadores têm acesso a um área de memória física comum. Em termos de programação descreve um modelo em que as várias tarefas paralelas têm acesso a uma memória lógica comum. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.10

Conceitos e terminologia Symmetric Multi-Processor (SMP) Arquitetura (hardware) de memória partilhada em que vários processadores partilham o mesmo espaço de endereçamento e têm acesso igual a todos os recursos. Distributed Memory Em termos de hardware descreve uma arquitetura em que os vários processadores não partilham a memória física Em termos de programação descreve um modelo em que as várias tarefas paralelas não partilham memória, têm de comunicar por mensagens. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.11

Conceitos e terminologia Synchronization - coordenação de tarefas Granularity medida qualitativa do rácio entre computação e comunicação. Coarse Grande quantidade de cálculo realizado entre cada operação de comunicação. Fine poucos cálculos entre operações de comunicação. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.12

S(p) = Speedup Factor Execution time using one processor (best sequential algorithm) Execution time using a multiprocessor with p processors t s t p Onde t s é o tempo de execução num único processador e t p é o tempo de execução num multiprocessador. S(p) dá o ganho em tempo de execução por usar vários processadores. Deve ser usado o algoritmo sequencial mais rápido. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.13

O Speedup pode ser calculado em termos de número de instruções: S(p) = Number of computational steps using one processor Number of parallel computational steps with p processors Pode também ser estendido à noção de complexidade temporal. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.14

Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.15

Speedup Máximo Geralmente o speedup máximo é p com p processadores (speedup linear). É possível obter um speedup super linear (maior que p) mas em situações particulares: Acesso a mais memória na versão paralela. Algoritmos não determinísticos. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.16

Speedup Máximo Lei de Amdahl t s (a) One processor ft s Serial section (1 - f ) t s Parallelizable sections (b) Multiple processors p processors t p (1 - f ) t s / p Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.17

Speedup é dado por: S(p) t s p ft s (1 f )t s /p 1 (p 1)f Equação conhecida como lei de Amdahl Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.18

Speedup = p / (1+( p - 1)f ) Se nada pode ser paralelizado, todo o programa é sequencial: f = 1 (100%) Processadores (p) 2 1 3? 4? Speedup Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.19

Speedup = p / (1+( p - 1)f ) Se 50% é sequencial: f = 0.5 Processadores (p) Speedup 2 1,33 3 1,5 4?? 100 000 1,99 Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.20

Speedup = p / (1+( p - 1)f ) Se 0% é sequencial, todo o programa é paralelizável: f = 0.0 Processadores (p) 2? 3? 4? Speedup 100 000? Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.21

Speedup against number of processors 20 f = 0% 16 12 8 4 f = 5% f = 10% f = 20% 4 8 12 16 20 Number of processors, p Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.22

Mesmo com um número infinito de processadores o máximo speedup é limitado a 1/f. Exemplo Segundo a lei de Amdahl, mesmo que apenas 5% da computação seja sequencial o máximo speedup é 20, independentemente do número de processadores.!!! Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.23

Exemplo de Speedup super linear - Pesquisa (a) Pesquisar sequencialmente cada sub-espaço Start Time Sub-space search t s /p t s D t x t s /p Solution found x indeterminate Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.24

(b) Pesquisar cada sub-espaço em paralelo D t Solution found Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.25

Speed-up é dado por: S(p) = x t s p D t + D t Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.26

Pesquisa sequencial: pior caso quando a solução é encontrada no último sub-espaço. Versão paralela é vantajosa. p 1 t s + D t S(p) = p D t Quando D t tende para zero Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.27

A menor vantagem para a versão paralela ocorre quando a solução é encontrada no primeiro sub-espaço S(p) = D t D t = 1 Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.28

Escalabilidade O desempenho de um sistema depende do número de processadores: O sistema é escalável se aumentando o número de processadores, a resolução de problemas de igual dimensão é mais rápida; Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.29

Escalabilidade O desempenho de um sistema depende do algoritmo usado: O sistema é escalável se com o mesmo número de processadores, é possível resolver problemas de maior dimensão no mesmo tempo. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.30

Na prática, quando os recursos computacionais aumentam, a dimensão dos problemas, em particular a dimensão do conjunto de dados de input, também pode aumentar. Geralmente, a dimensão da componente paralelizável cresce mais rápido que a componente sequencial. Exemplo: produto de matrizes. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.31

Tipos de Computadores Paralelos Dois tipos principais: Memória partilhada (Shared memory multiprocessor) Memória distribuída (Distributed memory multicomputer) Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.32

Shared Memory Multiprocessor Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.33

Computador convencional Consiste em um processador que executa um programa armazenado na memória principal: Main memory Instr uctions (to processor) Data (to or from processor) Processor Cada posição de memória é localizada pelo seu endereço. Os endereços começam em 0 e vão até 2 b 1, com e b o número de bits (binary digits) disponíveis. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.34

Shared Memory Multiprocessor System Múltiplos processadores ligados a vários módulos de memória, tal que cada processador pode aceder a qualquer módulo de memória: One address space Memory module Interconnection network Processors Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.35

Visão simplista de um multiprocessador de memória partilhada: Processors Shared memory Bus Dual Pentiums Quad Pentiums Examples: Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.36

Quad Pentium Shared Memory Multiprocessor Processor Processor Processor Processor L1 cache L1 cache L1 cache L1 cache L2 Cache L2 Cache L2 Cache L2 Cache Bus interface Bus interface Bus interface Bus interface Processor/ memory b us I/O interf ace Memory controller I/O b us Shared memory Memory Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.37

Vantagens / desvantagens de multiprocessadores de memória partilhada + Interface de programação fácil. + Patilha de dados entre tarefas rápida e uniforme. - Comunicação entre memória e CPU não escalável. Adicionar mais CPUs, aumenta o tráfego entre CPUs e memória. - Programador é responsável por sincronizar acesso a dados partilhados. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.38

Programação de Multiprocessadores de memória partilhada Modelos de memória partilhada (sem threads): - Vários processos / tarefas partilham um espaço de endereçamento comum. - Mecanismos como locks e semáforos permitem sincronizar os acessos. Exemplos: POSIX, Unix - fornecem funções para criar segmentos de memória partilhada que podem ser acedidos por todos os processos que lhe são associados. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.39

Programação de Multiprocessadores de memória partilhada Threads Um processo pode criar várias sequências de execução paralela (threads), cada uma podendo aceder às variáveis globais do processo. Exemplos: POSIX threads (Pthreads); Java threads Python threads Cuda threads (para GPU) Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.40

Linguagem de programação sequencial com um preprocessador para directivas que declaram variáveis partilhadas e especificam paralelismo. Exemplo: OpenMP (Open Multi-processing) standard industrial Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.41

Distributed Memory Multicomputer (Message passing model) Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.42

Message-Passing Multicomputer Vários computadores ligados por uma rede de comunicação Messages Processor Interconnection network Local memory Computers Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.43

Message-Passing Multicomputer Vários computadores ligados por uma rede de comunicação. Um conjunto de tarefas que usam a sua memória local na computação; Podem existir várias tarefas na mesma máquina física ou distribuídas por diferentes máquinas. As tarefas trocam dados através de mensagens. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.44

Message-Passing Multicomputer Transferência de dados entre tarefas exige: - cooperação entre processos (uma operação de envio (send) exige uma operação de aceitação (receive), ou - Um sistema de gestão de mensagens. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.45

Programação do modelo de comunicação por mensagens MPI Message Passing Interface - Standard industrial para comunicação por mensagens. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.46

Distributed Shared Memory Fazer a memória principal de um grupo de computadores interligados funcionar como um único espaço de memória. Podem depois usar-se as técnicas de programação com memória partilhada. Messages Processor Interconnection netw or k Shared memory Computers Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.47

Classificação de Flynn Flynn (1966) criou uma classificação baseada em na sequência de instruções e de dados: Single instruction stream-single data stream (SISD) computer Computador com um único processador. Um único fluxo de instruções opera num único fluxo de dados. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.48

Multiple Instruction Stream-Multiple Data Stream (MIMD) Computer Multiprocessador de uso geral (general-purpose) - Cada processador executa um fluxo de execução diferente e cada instrução pode operar em dados diferentes. Quer o modelo de memória partilhada quer o modelo de comunicação por mensagens podem segui este modelo. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.49

Single Instruction Stream-Multiple Data Stream (SIMD) Computer Um único fluxo de execução opera em diferentes fluxo de dados. Cada processador executa a mesma instrução em diferentes conjuntos de dados. Exemplo: Graphical processing units (GPU) Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.50

Multiple Instruction Stream-Single Data Stream (MISD) Computer Múltiplas instruções operam no mesmo fluxo de dados. Usado por exemplo para tolerância a falhas. Vários sistemas heterogéneos operam sobre os mesmos dados e os resultados são comparados. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.51

Modelos de programação paralela mais comuns Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.52

Multiple Program Multiple Data (MPMD) Structure Dentro da classificação MIMD, cada processador executa o seu programa: Instructions Program Instructions Program Processor Processor Data Data Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.53

Single Program Multiple Data (SPMD) Structure Existe um único código fonte e cada processador executa a sua cópia do programa de forma independente. O programa pode ser construído de forma a que partes do programa são executadas e outras não, dependendo do identificador do computador. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.54

Networked Computers as a Computing Platform Usar um conjunto de computadores comuns, ligados em rede, é uma alternativa barata ao uso de supercomputadores. Alguns dos primeiros projetos: Berkeley NOW (network of workstations) project. NASA Beowulf project. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.55

Vantagens: Conjunto de PCs disponíveis a baixo custo Os processadores mais recentes podem ser incorporados no sistema à medida que ficam disponíveis. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.56

Software para Clusters Baseado em comunicação por mensagens: Parallel Virtual Machine (PVM) finais dos anos 80. Message-Passing Interface (MPI) - standard definido no anos 90. Ambos fornecem um conjunto de bibliotecas de comunicação por mensagens. Podem ser usadas com linguagens de programação comuns: (C, C++,...) Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.57

Super-computadores atuais https://www.top500.org/ Rmax - maximal achieved performance Rpeak - theoretical peak performance Valores obtidos com o LINPACK Benchmark. Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.58

Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.59

Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.60

Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.61

Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, 2004 Pearson Education Inc. All rights reserved. 1.62