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

Post on 30-Nov-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Análise e desenho de algoritmosparalelos

Docente: MSc. Angel Alberto Vazquez Sánchez

ISUTIC2017

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.

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.

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.

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?

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.

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.

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.

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∗τ+β

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

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

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

Desenho de algoritmos paralelos:

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

Algoritmo sequencial

Algoritmo sequencial

Diagrama de dependências

Distribuição por filas consecutivas

Algoritmo escalar

Análise do algoritmo escalar

Análise do algoritmo escalar

Distribuição cíclica de filas

Algoritmo TRS (Triangular Row Scatter)

Análise do algoritmo TRS

Análise do algoritmo TRS

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.

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.

Conclução

Análise e desenho de algoritmosparalelos

Docente: MSc. Angel Alberto Vazquez Sánchez

ISUTIC2017

top related