1 felipe l. severinoanálise de algoritmos experiments with strassens algorithm: from sequential to...
TRANSCRIPT
![Page 1: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/1.jpg)
1Felipe L. Severino Análise de algoritmos
Experiments with Strassen’s Algorithm: from sequential to parallel
Felipe L. SeverinoAnálise e Desenvolvimento de algoritmos
paralela e
![Page 2: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/2.jpg)
2
Strassen
Felipe L. Severino Aná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.
![Page 3: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/3.jpg)
3
Strassen
Felipe L. Severino Análise de algoritmos
Artigo
Experiments With Strassen’s Algorithm: From Sequential to Parallel
Autores: F. Song, J. Dongarra and S. Moore. Proceedings: Parallel and Distributed Computing and
Systems (PDSC 2006).
![Page 4: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/4.jpg)
4
Strassen
Felipe L. Severino Aná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³);
![Page 5: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/5.jpg)
5
Strassen
Felipe L. Severino Análise de algoritmos
Multiplicação de Matrizes
• Pode ser escrito de forma recursiva:
• Complexidade permanece Θ(n³);– T(n) = 8T(n/2)+Θ(n²);
hg
fexB
dc
baA
ut
srC
dhcfu
dgcet
bhafs
bgaer
![Page 6: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/6.jpg)
6
Strassen
Felipe L. Severino Aná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;
![Page 7: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/7.jpg)
7
Strassen
Felipe L. Severino Análise de algoritmos
Algoritmo de Strassen
22211022125
1211911214
1121812113
2212722212
2211622111
BBTAAT
BBTAAT
BBTAAT
BBTAAT
BBTAAT
624752
133411
QQUQQU
QQUQQU
8224
10577113
9461122
2235611
xTAQ
xTTQxTAQ
xTTQxBTQ
xBTQxTTQ
43224221
53122111
UUCQQC
QQCUUC
Phase 1 Phase 2
Phase 3 Phase 4
![Page 8: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/8.jpg)
8
Strassen
Felipe L. Severino Análise de algoritmos
Algoritmo de Strassen
Complexidade:T(n)=7T(n/2)+ Θ(n²);
=Θ(nlg 7);
=Θ(n2,81);
Melhor que algoritmo clássico para matrizes grandes (estudo indica o ponto de corte 12);
![Page 9: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/9.jpg)
9
Strassen
Felipe L. Severino Aná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 Θ(nlg 7));
![Page 10: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/10.jpg)
10
Strassen
Felipe L. Severino Análise de algoritmos
Algoritmo de Winograd
22142124
1222321113
12221112
1112122211
TBTSAS
BBTAAS
TBTASS
BBTAAS
224
4227113
224621122
33511111
xTSQ
xTAQxTSQ
xBSQxBAQ
xTSQxBAQ
522421
712111
UCUC
UCUC
734
667523
326412
335211
QUU
QUUQUU
QUUQQU
xQUUQQU
![Page 11: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/11.jpg)
11
Strassen
Felipe L. Severino Aná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;
![Page 12: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/12.jpg)
12
Strassen
Felipe L. Severino Aná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;
![Page 13: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/13.jpg)
13
Strassen
Felipe L. Severino Análise de algoritmos
Paralelização de tarefas
Strassen
![Page 14: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/14.jpg)
14
Strassen
Felipe L. Severino Análise de algoritmos
Paralelização de tarefas
![Page 15: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/15.jpg)
15
Strassen
Felipe L. Severino Análise de algoritmos
Paralelização de tarefas
Winograd
![Page 16: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/16.jpg)
16
Strassen
Felipe L. Severino Análise de algoritmos
Paralelização de Tarefas
![Page 17: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/17.jpg)
17
Strassen
Felipe L. Severino Aná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;
![Page 18: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/18.jpg)
18
Strassen
Felipe L. Severino Aná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.
![Page 19: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/19.jpg)
19
Strassen
Felipe L. Severino Análise de algoritmos
Análises
Uso de memória;
Troca de mensagens Quantidade e tamanho das mensagens em cada uma
das implementações;
![Page 20: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/20.jpg)
20
Strassen
Felipe L. Severino Análise de algoritmos
Uso de memória
• Strassen sequencial:
• Winograd sequencial:
n
nnnTnT
3
)4/8()2/(7)(
se n > 12
se n < 12
n
nnnTnT
3
)2/7()2/(7)( se n > 12
se n < 12
![Page 21: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/21.jpg)
21
Strassen
Felipe L. Severino Aná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;
![Page 22: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/22.jpg)
22
Strassen
Felipe L. Severino Aná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;
![Page 23: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/23.jpg)
23
Strassen
Felipe L. Severino Aná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);
![Page 24: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/24.jpg)
24
Strassen
Felipe L. Severino Aná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;
![Page 25: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/25.jpg)
25
Strassen
Felipe L. Severino Aná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;
![Page 26: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/26.jpg)
26
Strassen
Felipe L. Severino Análise de algoritmos
Artigo
![Page 27: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/27.jpg)
27
Strassen
Felipe L. Severino Análise de algoritmos
Artigo
![Page 28: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/28.jpg)
28
Strassen
Felipe L. Severino Análise de algoritmos
Matriz 256
Matriz Ordem 256
0,536161
0,7256110,748136
0,909410
1,124846
0,7911650,816624
0,000000
0,200000
0,400000
0,600000
0,800000
1,000000
1,200000
Tem
po
(s)
Classical
Seq_Strassen
Seq_Winograd
Par_strassen_tasks
Par_w inograd_tasks
Par_strassen
Par_w inograd
![Page 29: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/29.jpg)
29
Strassen
Felipe L. Severino Análise de algoritmos
Matriz 512Matriz Ordem 512
2,4267652,502109 2,472554
1,684460
1,844600
1,630032
1,443875
0,000000
0,500000
1,000000
1,500000
2,000000
2,500000
3,000000
Tem
po
(s)
Classical
Seq_Strassen
Seq_Winograd
Par_strassen_tasks
Par_w inograd_tasks
Par_strassen
Par_w inograd
![Page 30: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/30.jpg)
30
Strassen
Felipe L. Severino Análise de algoritmos
Matriz 1024Matriz Ordem 1024
19,278325
14,66125613,822279
5,275010 5,048708 5,147563 4,833728
0,000000
5,000000
10,000000
15,000000
20,000000
25,000000
Tem
po
(s)
Classical
Seq_Strassen
Seq_Winograd
Par_strassen_tasks
Par_w inograd_tasks
Par_strassen
Par_w inograd
![Page 31: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/31.jpg)
31
Strassen
Felipe L. Severino Análise de algoritmos
Matriz 2048Matriz Ordem 2048
187,539840
99,60430494,396455
28,619605 27,126611 27,878170 26,541546
0,000000
20,000000
40,000000
60,000000
80,000000
100,000000
120,000000
140,000000
160,000000
180,000000
200,000000
Tem
po
(s)
Classical
Seq_Strassen
Seq_Winograd
Par_strassen_tasks
Par_w inograd_tasks
Par_strassen
Par_w inograd
![Page 32: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/32.jpg)
32
Strassen
Felipe L. Severino Aná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;
![Page 33: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/33.jpg)
33
Strassen
Felipe L. Severino Aná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;
![Page 34: 1 Felipe L. SeverinoAnálise de algoritmos Experiments with Strassens Algorithm: from sequential to parallel Felipe L. Severino Análise e Desenvolvimento](https://reader035.vdocuments.site/reader035/viewer/2022062700/552fc118497959413d8c8f01/html5/thumbnails/34.jpg)
34Felipe L. Severino Análise de algoritmos
Experiments with Strassen’s Algorithm: from sequential to parallel
Felipe L. SeverinoAnálise e Desenvolvimento de algoritmos
paralela e