Paralelização do algoritmo de Strassen paralela e Felipe L. Severino Projeto de Programas Paralelos para Processamento de Alto Desempenho
Sumário Introdução: multiplicação de matrizes; Strassen; Winograd; Análise sequencial; Análise paralela; Otimização da análise paralela; Trabalhos futuros.
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:
Algoritmo de Strassen Primeiro algoritmo para multiplicação de matrizes a ter complexidade < Θ(n³); Efetua, recursivamente, 7 multiplicações e Θ(n²) adições e subtrações; Algoritmo original: 7 multiplicações e 18 adições/subtrações;
Algoritmo de Strassen Phase 1 Phase 2 Phase 3 Phase 4
Algoritmo de Winograd Também chamado de Strassen-Winograd; Variação do Strassen tradicional; Utiliza 7 multiplicações e 15 adições/subtrações;
Algoritmo de Winograd
Complexidade sequencial: Análise Sequencial Complexidade sequencial: T(n)=7T(n/2)+ Θ(n²); =Θ(nlg 7); =Θ(n2,81); Melhor que algoritmo clássico para matrizes grandes; Problema com utilização de memória;
Complexidade paralela Análise Paralela Complexidade paralela Utilizando-se n2,81 processadores P = n2,81 Obtém-se o tempo de execução T = log(n); O custo desta paralelização é C = n2,81 * log(n); Maior do que o custo sequencial.
Otimização da análise paralela Complexidade paralela Diminuindo-se o número de processadores para P = n2,81 / log(n) Cada processador irá executar a multiplicação de pacotes de tamanho log(n); Obtém-se o tempo T = log(n)+log(n2,81 / log(n)) ≈ log(n) T = log(n) E o custo C = n2,81 / log(n) * log(n) = n2,81 Equivalente ao sequencial;
Definição do ponto de corte Tabela de logarítmos Para matrizes de 8196, a recursão será parada quando os blocos estiverem na ordem de 13 (13x13); Tamanho da matriz Log 64 6 128 7 256 8 512 9 1024 10 2048 11 4096 12 8192 13 16384 14 32768 15 65536 16 131072 17 262144 18 524288 19 1048576 20
Ponto de Corte – Trabalhos passados
Análise comparativa entre pontos de corte; Trabalhos futuros Desenvolvimento de um programa paralelo divisão e conquista do algoritmo de strassen; Análise comparativa entre pontos de corte; Comparativo com algoritmos desenvolvidos semestre passado;
Paralelização do algoritmo de Strassen paralela e Felipe L. Severino Projeto de Programas Paralelos para Processamento de Alto Desempenho