A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento.

Apresentações semelhantes


Apresentação em tema: "1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento."— Transcrição da apresentação:

1 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento de algoritmos paralela e

2 2 Strassen Felipe L. SeverinoAnálise de algoritmos Sumário Introdução: Multiplicação de Matrizes; Strassen; Winograd; Proposta do artigo; Trabalho realizado; Paralelização; Análises; Resultados; Considerações finais.

3 3 Strassen Felipe L. SeverinoAnálise de algoritmos Artigo Experiments With Strassens Algorithm: From Sequential to Parallel Autores: F. Song, J. Dongarra and S. Moore. Proceedings: Parallel and Distributed Computing and Systems (PDSC 2006).

4 4 Strassen Felipe L. SeverinoAnálise de algoritmos Multiplicação de Matrizes Operação básica em computação científica; Algoritmo trivial de multiplicação de matrizes consiste em três laços: Esse algoritmo possui complexidade Θ(n³);

5 5 Strassen Felipe L. SeverinoAnálise de algoritmos Multiplicação de Matrizes Pode ser escrito de forma recursiva: Complexidade permanece Θ(n³); –T(n) = 8T(n/2)+Θ(n²);

6 6 Strassen Felipe L. SeverinoAnálise de algoritmos Algoritmo de Strassen Primeiro algoritmo para multiplicação de matrizes a ter complexidade < Θ(n³); Efetua, recursivamente, 7 multiplicações e Θ(n²) somas e adições; Algoritmo original: 7 multiplicações e 18 adições;

7 7 Strassen Felipe L. SeverinoAnálise de algoritmos Algoritmo de Strassen Phase 1Phase 2 Phase 3Phase 4

8 8 Strassen Felipe L. SeverinoAnálise de algoritmos Algoritmo de Strassen Complexidade: T(n)=7T(n/2)+ Θ(n²); =Θ(n lg 7 ); =Θ(n 2,81 ); Melhor que algoritmo clássico para matrizes grandes (estudo indica o ponto de corte 12);

9 9 Strassen Felipe L. SeverinoAnálise de algoritmos Algoritmo de Winograd Também chamado de Strassen-Winograd; Variação do Strassen tradicional; Utiliza 7 multiplicações e 15 adições/subtrações; Não altera significativamente a complexidade (continua sendo Θ(n lg 7 ));

10 10 Strassen Felipe L. SeverinoAnálise de algoritmos Algoritmo de Winograd

11 11 Strassen Felipe L. SeverinoAnálise de algoritmos Proposta do Artigo Comparar implementação Winograd com biblioteca matemática ATLAS DGEMM e verificação do ponto de corte; Paralelização (strassen tradicional): NetSolve (Workflow); MPI: tarefas; MPI: dados (na verdade, usando ScaLAPACK). Análise do uso de memória dos algoritmos paralelos acima;

12 12 Strassen Felipe L. SeverinoAnálise de algoritmos Trabalho realizado Implementação sequencial de Strassen e Winograd; Paralelização de tarefas utilizando Strassen e Winograd; Outro modelo de Paralelização do Strassen e Winograd; Análises;

13 13 Strassen Felipe L. SeverinoAnálise de algoritmos Paralelização de tarefas Strassen

14 14 Strassen Felipe L. SeverinoAnálise de algoritmos Paralelização de tarefas

15 15 Strassen Felipe L. SeverinoAnálise de algoritmos Paralelização de tarefas Winograd

16 16 Strassen Felipe L. SeverinoAnálise de algoritmos Paralelização de Tarefas

17 17 Strassen Felipe L. SeverinoAnálise de algoritmos Paralelização Outro modelo de paralelização é baseado no modelo mestre-escravo; O processo pai irá enviar duas matrizes para cada filho, que irá processar cada uma dessas matrizes e enviar o resultado de volta ao pai;

18 18 Strassen Felipe L. SeverinoAnálise de algoritmos Paralelização Caso seja executado com 7 processos (como foi o caso) é idêntico ao divisão e conquista; Chamadas recursivas: caso existam processos suficientes, cada filho será pai de novos processos.

19 19 Strassen Felipe L. SeverinoAnálise de algoritmos Análises Uso de memória; Troca de mensagens Quantidade e tamanho das mensagens em cada uma das implementações;

20 20 Strassen Felipe L. SeverinoAnálise de algoritmos Uso de memória Strassen sequencial: Winograd sequencial: se n > 12 se n < 12 se n > 12 se n < 12

21 21 Strassen Felipe L. SeverinoAnálise de algoritmos Uso de memória Strassen paralelismo de tarefas: Primeiro nível (processo com maior carga): 2n+3(n/4) Demais níveis = strassen sequencial; Winograd paralelismo de tarefas: Primeiro nível (processo com maior carga): 3n+3(n/4) Demais níveis = winograd sequencial;

22 22 Strassen Felipe L. SeverinoAnálise de algoritmos Uso de memória Outro modelo de paralelização: Divisão na carga, varia de acordo com o número de processos; 7 processos: Primeiro nível: Proc 0: 1T(n/2)+(8n+n/4) (Strassen); Proc 0: 1T(n/2)+(7n+n/2) (Winograd); Outros processos 2x(n/4); Demais níveis = strassen sequencial;

23 23 Strassen Felipe L. SeverinoAnálise de algoritmos Troca de mensagens Strassen paralelismo de tarefas: Apenas um nível de troca de mensagens: 2 mensagens de tamanho n (broadcast); 11 mensagens de tamanho n/4 (ponto a ponto); Winograd paralelismo de tarefas: Apenas um nível de troca de mensagens: 2 mensagens de tamanho n (broadcast) 14 mensagens de tamanho n/4 (ponto a ponto);

24 24 Strassen Felipe L. SeverinoAnálise de algoritmos Troca de mensagens Outro modelo: Varia dependendo da quantidade de processos; Com 7 processos haverão 6 filhos que deverão receber duas matrizes (cada um) do processo 0 e devolver uma matriz de resposta; Sendo apenas um nível de troca de mensagens: 18 mensagens de tamanho n/4;

25 25 Strassen Felipe L. SeverinoAnálise de algoritmos Resultados Ambiente de teste Artigo: Cluster Linux com 32 nodos Dual PentiumIV Xeon 2.4 GHz 2 GB RAM; UFRGS: 1 Xeon 2.0 GHz (dual core multi-threaded); 3 GB RAM; 50 execuções de cada programa, média aritmética simples; Programas MPI (MPICH2) executados com 7 processos;

26 26 Strassen Felipe L. SeverinoAnálise de algoritmos Artigo

27 27 Strassen Felipe L. SeverinoAnálise de algoritmos Artigo

28 28 Strassen Felipe L. SeverinoAnálise de algoritmos Matriz 256

29 29 Strassen Felipe L. SeverinoAnálise de algoritmos Matriz 512

30 30 Strassen Felipe L. SeverinoAnálise de algoritmos Matriz 1024

31 31 Strassen Felipe L. SeverinoAnálise de algoritmos Matriz 2048

32 32 Strassen Felipe L. SeverinoAnálise de algoritmos Considerações finais Não foi apresentado comparativo do paralelo com o sequencial no artigo; Foi possível obter desempenho teórico similar (uso de memória); Diferenças de tempo de execução podem ser explicados pela diferença do hardware utilizado além de: Matrizes pequenas: custo da troca de mensagens; Matrizes grandes: muita carga sobre o processador;

33 33 Strassen Felipe L. SeverinoAnálise de algoritmos Considerações finais Facilidade na descrição da paralelização (exceto de dados); Dificuldades nas bibliotecas (instalação, compatibilidade com sistema, entre outros) impossibilitaram comparativo com ScaLAPACK e ATLAS;

34 34 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento de algoritmos paralela e


Carregar ppt "1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento."

Apresentações semelhantes


Anúncios Google