Paralelização do algoritmo de Strassen

Slides:



Advertisements
Apresentações semelhantes
A = ( 3 ) , logo | A | = 3 Determinantes
Advertisements

VERIFICAÇÃO FORMAL DE BLOCOS COMPLEXOS
Complexidade de Algoritmos
Binding Amarração de endereços de Protocolos
Matrizes especiais Matriz linha Matriz do tipo 1 x n, ou seja, com uma única linha. Por exemplo, a matriz A =[ ], do tipo 1 x 4. Matriz coluna.
Análise de Complexidade
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Sistemas Lineares A X = B A 11 A 12 A A 1N X 1 =B 1 A 21 A 22 A A 2N X 2 B A N1 A N2 A N3... A.
Software Básico Silvio Fernandes
Organização e Recuperação da Informação (ORI)
Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks
Determinantes Determinante é um número real associado a uma matriz quadrada. Notação: det A ou |A|. Determinante de uma Matriz Quadrada de 1ª Ordem. Seja.
Cálculo Numérico Módulo I Ferramentas de Suporte
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Arquiteturas Diferentes
ASSUNTO 11: Raiz quadrada exata de números inteiros
Árvore Binária de Busca
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Arquivos Seqüenciais Inhaúma Neves Ferraz
ASSUNTO 10:.
Complexidade de Algoritmos
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Introdução a Análise de Complexidade de Algoritmos
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Divisão e Conquista Análise de algoritmos UNISUL Ciência da Computação
Programação Dinámica Análise de algoritmos UNISUL
Experiments with Strassen’s Algorithm: from sequential to parallel
1 4.6 – Variáveis - introdução Nesta altura (ao nível da programação) interessa saber que um computador tem: Nesta altura (ao nível da programação) interessa.
Lidando com cheating em uma arquitetura multiservidor para MMOGs
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
Indexação de Arquivos Página de rosto.
1 – Matrizes: Operações e Propriedades
Revisão do conceito de matrizes
Trabalho de Matemática
Campus de Caraguatatuba
Processamento da Informação BC-05045
É a tradução de uma dada situação em operações numéricas.
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
Algoritmos de Ordenação 4
Introdução à Computação II Isadora Alves Cristo Juliana Ap. da Silva
Paradigma de Divisão e Conquista
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
Comparação entre os métodos de ordenação
ASSUNTO 7: Operãções com números inteiros (SUBTRAÇÃO)
Conceitos de Lógica Digital
Fundamentos de programação CUDA
Revisão.
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Tópicos em redes e sistemas distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Complexidade de algoritmos e Classificação (Ordenação) de dados
Arquitetura de computadores
Introdução a Programação
Arquitetura de computadores
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Prof. Celso Cardoso Neto. (2) ALINHAMENTO Caso 1.
Fundamentos de Programação
ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS
1.
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Pesquisa Sequencial e Binária
Introdução à Aprendizagem Estatística Prof. Dr. Hemerson Pistori INOVISAO – Pesquisa, Desenvolvimento e Inovação em Visão Computacional Universidade Católica.
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Organização e Arquitetura de Computadores
CMP 167– Programação com Objetos Distribuídos Prof. Cláudio Geyer
Prática de Ensino em Matemática I Aula 08
Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Ciência da Computação Professora: Cynara Carvalho
Transcrição da apresentação:

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