isutic 2017 · tempo sequencial (ts): tempo que demora em se executar o algoritmo num processador....
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