isutic 2017 · tempo sequencial (ts): tempo que demora em se executar o algoritmo num processador....

28
Análise e desenho de algoritmos paralelos Docente: MSc. Angel Alberto Vazquez Sánchez ISUTIC 2017

Upload: dinhhuong

Post on 30-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Análise e desenho de algoritmosparalelos

Docente: MSc. Angel Alberto Vazquez Sánchez

ISUTIC2017

Page 2: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Sumario

● Análise de algoritmos paralelos:– Parâmetros absolutos e relativos para avaliar

algoritmos paralelos.

● Desenho de algoritmos paralelos:– Exemplo de resolução de sistemas de equações

lineares U*x = b.

Page 3: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Bibliografía

● Tanenbaum, A. S., & Van Steen, M. (2007). Distributed systems: principles and paradigms. Prentice-Hall.

● Coulouris, G., Dollimore, J., Kindberg, T., & Blair, G. (2013). Sistemas Distribuídos-: Conceitos e Projeto. Bookman Editora.

Page 4: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Introdução

● De pouca utilidade costuma ser qualquer computador se não se dispõe de algoritmos eficientes que permitam o aproveitar ao máximo.

● Isto é especialmente verdadeiro no caso dos Computadores Paralelos onde as técnicas de desenho diferem fundamentalmente das utilizadas em Computadores Sequenciais.

Page 5: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Introdução

● Devemos ser capazes de analisar e comparar os algoritmos paralelos com outros já existentes e tratar dos melhorar ao máximo explodindo todas as possibilidades do paralelismo.

● ¿Como de rápido é um algoritmo paralelo?● ¿Está a utilizar-se um Computador Paralelo de

forma eficiente?

Page 6: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Modelo RAM (Random AccessMachine)

● Modelo usado para analisar e desenhar os algoritmos sequenciais. É muito simples e representa fielmente o modelo de Von Neumann. Nele se supõe que:1.O algoritmo é implementado utilizando seu conjunto

básico de instruções.

2.As instruções são executadas uma a seguir de outra.

3.Para a cada operação básica conhece-se seu tempo de execução ou sua forma de calcular.

Page 7: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Modelo multiprocessador com memória distribuída (D-RAM)

Um dos modelos mais usados para analisar e desenhar os algoritmos paralelos.

Características:● Compõe-se por vários processadores RAM, ou elementos de

processo.● A cada elemento de processo tem sua própria memória local, e

seu próprio espaço de direções.● Os processadores estão ligados mediante uma rede de

interconexão.● A comunicação entre os processadores realiza-se mediante

passo de mensagens.

Page 8: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Modelo multiprocessador com memória distribuída (D-RAM)

Características:● A cada processador é identificado por um índice.● Todos os processadores executam o mesmo

programa (SPMD).● Os códigos podem particularizar-se em função do

índice identificador do processador.● Existem primitivas de comunicação.

– Enviar(v, i): Escreve a mensagem alojada no variável v no buffer do processador Pi.

– Receber(v): Aloja a mensagem que tenha no buffer na variável v e esvazia o buffer.

Page 9: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Envio de mensagens

Tempo de envio de uma mensagem de N bytes de um nó a outro nó vizinho:

τ : Tempo que demora um byte em circular de um nó a outro.

β : Tempo de latência. Tempo que decorre desde que se decidiu enviar a mensagem até que se envia o primeiro byte

N∗τ+β

Page 10: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Tempos de execução (Parâmetros absolutos)

● Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. Costuma medir-se em FLOPS.

● FLOPS: Tempo que demora em se executar uma operação elementar em vírgula flutuante.

● Tempo paralelo (Tp) : Tempo que demora o algoritmo em se executar em p processadores. Tp = Ta + Tc − Tsol

Page 11: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Tempos de execução (Parâmetros absolutos)

● Tempo aritmético (Ta): Tempo que demora o sistema multiprocessador em fazer operações aritméticas. Costuma medir-se em FLOPS.

● Tempo de comunicações (Tc): Tempo que demora o sistema multiprocessador em executar transferências de dados.

● Tempo de sobreposição (Tsol): Tempo que decorre quando se realizam operações aritméticas e operações de comunicação simultaneamente.

Tp ≈ Ta + Tc

Page 12: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Tempo de execução (Parâmetros relativos)

● Speed-up (Sp): Indica qual é o ganho de velocidade de um algoritmo paralelo, executado sobre p processadores, quando se compara com o melhor algoritmo sequencial.

● Eficiência(Ep): Mede o grau de utilização de um sistema multiprocessador.

Sp=T s

T p

lim Sp=p

Ep=Spp

Page 13: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Desenho de algoritmos paralelos:

● Exemplo de resolução de sistemas de equações lineares U*x = b

Page 14: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Algoritmo sequencial

Page 15: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Algoritmo sequencial

Page 16: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Diagrama de dependências

Page 17: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Distribuição por filas consecutivas

Page 18: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Algoritmo escalar

Page 19: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Análise do algoritmo escalar

Page 20: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Análise do algoritmo escalar

Page 21: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Distribuição cíclica de filas

Page 22: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Algoritmo TRS (Triangular Row Scatter)

Page 23: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Análise do algoritmo TRS

Page 24: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Análise do algoritmo TRS

Page 25: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Algoritmo TRS na prática

Suponhamos que n = 1024 e que se tem um sistema multiprocessador com 8 processadores e onde existam as seguintes condições:

Paralelismo de grão fino: Enviam-se muitas mensagens de tamanhos muito pequenos.

F=1.2∗10−8 sg .

τ=8.5∗10−8 sg .β=1.8∗10−4 sg .

T P≈3 sg . Significativo para un problema não tão grande.

Page 26: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Tarefa

1.O que é o paralelismo de grão fino?

2.Pesquise os seguintes aspectos sobre o algoritmo TRB (Triangular Row Block):– Pseudocódigo, Tempo de execução e Distribuição

de carga entre os processadores.

3.Compare com o algoritmo TRBS (Triangular Row Block Scatter) tendo em conta os mesmos aspectos.

Page 27: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Conclução

Page 28: ISUTIC 2017 · Tempo sequencial (Ts): Tempo que demora em se executar o algoritmo num processador. ... Tp ≈ Ta + Tc. Tempo de execução (Parâmetros ... 1.O que é o paralelismo

Análise e desenho de algoritmosparalelos

Docente: MSc. Angel Alberto Vazquez Sánchez

ISUTIC2017