Algoritmos Paralelos - ordenação



Documentos relacionados
BCC202 - Estrutura de Dados I

Ordenação e Pesquisa de Dados. Aula 07 Insertion Sort e Bubble Sort

6. Pesquisa e Ordenação

Exemplo de Arquitetura: Cliente/Servidor com Mestre e Escravos. Interface. Fator de speed-up. Speed-up

Técnicas de Paralelização

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

ALGORITMOS DE ORDENAÇÃO RECURSIVOS

Algoritmos de ordenação Ordenação rápida ( Quicksort )

BCC202 - Estrutura de Dados I

Exemplo de Arquitetura: Cliente/Servidor com Mestre e Escravos. Interface em IDL. Dynamic Invocation Interface. Exemplo invocação DII em Java

Ordenação e Pesquisa

GGI026 - Árvore balanceada

CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI

INF 1010 Estruturas de Dados Avançadas. Indexação em Espaços Multidimensionais DI, PUC-Rio Estruturas de Dados Avançadas 2012.

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

INF 1010 Estruturas de Dados Avançadas

Vectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2008/2009

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Algoritmos de Ordenação

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática

Análise de programas imperativos

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort)

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2

Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.

ALGORITMOS DE ORDENAÇÃO

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO EM TEMPO LINEAR

Árvores de Decisão Matemática Discreta

MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA. George Gomes Cabral

Algoritmos de Ordenação em LISP

Bubble Sort. Tempo total O(n 2 )

Vectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2009/2010

ALGA - Eng.Civil - ISE / Matrizes 1. Matrizes

Métodos de ordenação. Bubble sort:

Algoritmos de Pesquisa e Ordenação em Vectores

Algoritmos de ordenação

Análise e Complexidade de Algoritmos

Divisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos

1. O que é a eficiência assintótica de um algoritmo. Explique com suas palavras.

Arquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo

Ordenação: MergeSort. Prof. Túlio Toffolo BCC202 Aula 14 Algoritmos e Estruturas de Dados I

Métodos de Classificação

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia

Carlos Eduardo Batista. Centro de Informática - UFPB

Projeto e Análise de Algoritmos

Ordenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I

Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet

Análise e Projeto de Algoritmos

12 de Março de Aula 5

Algoritmos e Estruturas de Dados II. Introdução

Ordenação de Vectores

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

Teoria dos Grafos Aula 9

Métodos de Ordenação Parte I

Algoritmos de Ordenação

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 3

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

Teoria de Jogos. Algoritmo Minimax e Alfa-Beta AED

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II

Matemática Aplicada às Ciências Sociais- 11º ano

Algoritmos de Ordenação

AGRUPAMENTO DE ESCOLAS DR. VIEIRA DE CARVALHO

Capítulo 14. Ordenação e pesquisa. Bubblesort. Alguns algoritmos de ordenação e pesquisa Medição do tempo de execução de um programa

BCC202 - Estrutura de Dados I

QuickSort CI/2015. Análise e Projeto de Algoritmos. - Prof. Lucídio A. F. Cabral

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Programação I Aula 16 Mais exemplos de recursão Pedro Vasconcelos DCC/FCUP

Diagrama de Seqüência

Estruturas de Dados. Árvores B. - - Estrutura e peculiaridades -- Algoritmos de inserção, pesquisa e deleção

OBSERVAÇÕES: EXERCÍCIOS

Divisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Estruturas de Dados Algoritmos de Ordenação

Ordenação. Insertion Sort

Estruturas de Dados Aula 9: Listas (parte 1) 05/04/2011

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1

Complexidade de Algoritmos

Algoritmos de Ordenação: QuickSort

Classificação por Intercalação

void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) {

Algoritmos e Estruturas de Dados LEE 2013/2014. popular devido à facilidade de implementação e eficiência

Algoritmos e Estruturas de Dados. Décima sexta aula: Quicksort

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1

Ordenação. Prof. Túlio A. M. Toffolo Prof. Marco Antonio M. Carvalho BCC402 Aula 04 Algoritmos e Programação Avançada

Polos Olímpicos de Treinamento. Aula 1. Curso de Teoria dos Números - Nível 3. Divisibilidade 1. Carlos Gustavo Moreira e Samuel Barbosa Feitosa

Divisão e conquista. Eficiência de divisão e conquista

Análise e Complexidade de Algoritmos

Algoritmos de ordenação em forma paralela.

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA

Programação Dinâmica. Aplicação directa - Fibonacci

Notas de Aula Disciplina Matemática Tópico 08 Licenciatura em Matemática Osasco -2010

Algoritmos de Ordenação

Determinantes. Matemática Prof. Mauricio José

CIC 110 Análise e Projeto de Algoritmos I

Álgebra Relacional. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bases de Dados BDDAD. Álgebra Relacional. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/33

Transcrição:

Algoritmos Paralelos - ordenação Fernando Silva DCC-FCUP (Alguns dos slides são baseados nos do livro Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers, 2nd ed. de B. Wilkinson) Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 1 / 25

Ordenação em Paralelo Porquê? é uma operação frequente em muitas aplicações Objectivo? ordenar uma sequência de números (valores) por ordem crescente usando n processadores Speedup potencial? melhor algoritmo sequencial tem complexidade O(n log n) o melhor a que podemos aspirar com um algoritmo paralelo, usando n processadores é: complexidade óptima do algoritmo paralelo: O(n log n)/n = O(log n) Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 2 / 25

Comparação-e-troca com troca de mensagens (1/2) A ordenação sequencial requer a comparação de valores e a sua permuta nas posições que ocupam na sequência. E se for em paralelo? E se a memória for distribuída? versão 1: P 1 envia A para P 2, este compara B com A e envia para P 1 o min(a, B). Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 3 / 25

Comparação-e-troca com troca de mensagens (2/2) versão 2: P 1 envia A para P 2 ; P 2 envia B para P 1 ; P 1 faz A = min(a, B) e P 2 faz B = max(a, B). Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 4 / 25

Partição de dados Versão 1: n números e p processadores n/p números atribuídos a cada processador. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 5 / 25

Junção de duas sub-listas versão 2: Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 6 / 25

Bubble Sort (método da bolha) compara dois a dois e troca se estiverem fora de ordem. maiores valores vão sendo deslocados para o final da lista. número de comparações e trocas: n 1 i=1 i = n(n 1) 2 o que corresponde a uma complexidade O(n 2 ). Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 7 / 25

Exemplo bubble-sort Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 8 / 25

Bubble Sort Paralelo Ideia é ter várias iterações a correr em paralelo. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 9 / 25

Par-Ímpar com transposição (1/2) é uma variante do bubble-sort opera em duas fases alternadas: Fase-par: os processos par trocam números com os seus vizinhos direitos. Fase-ímpar: os processos ímpar trocam números com os seus vizinhos direitos. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 10 / 25

Par-Ímpar com transposição (2/2) Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 11 / 25

Algoritmo paralelo - Par-Ímpar com transposição void ODD-EVEN-PAR(n) { id = process label for (i= 1; i<= n; i++) { if (i é ímpar) if (id for ímpar) compara-e-troca-min(id+1); else compara-e-troca-max(id-1); if (i é par) if (id for par) compara-e-troca-min(id+1); else compara-e-troca-max(id-1); } } Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 12 / 25

Mergesort (1/2) Exemplo de um algoritmo divide-and-conquer Método de ordenação em que para ordenar um vector, subdivide-o em duas partes, aplica novamente o método a cada uma das partes e quando estas estiverem ordenadas (2 vectores ordenados) com m e n elementos, faz-se a junção para produzir um vector ordenado que contém os m + n elementos do vector inicial. A complexidade é, em média, O(n log n). Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 13 / 25

Mergesort em paralelo (2/2) Usando uma atribuição de trabalho a processos em árvore. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 14 / 25

Quicksort em paralelo Usando uma atribuição de trabalho a processos em árvore. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 15 / 25

Problemas com a alocação de processos em árvore a divisão inicial inicia-se com apenas um processo, o que é logo limitador. no quicksort, em geral a árvore de processos não será balanceada selecção do pivot é muito importante para que possa ser eficiente. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 16 / 25

Odd-Even mergesort complexidade: O(log 2 n) junção de duas listas a 1, a 2,..., a n e b 1, b 2,..., b n, onde n é uma potência de 2. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 17 / 25

Odd-Even mergesort Aplicar recursivamente odd-even merge: Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 18 / 25

Bitonic Sort (1/7) complexidade: O(log 2 n) uma sequência é bitónica se contém duas sequências, uma crescente e outra decrescente, i.e. a 1 < a 2 <... < a i 1 < a i > a i+1 > a i+2 >... > a n para algum i t.q. (0 i n) uma sequência é bitónica se a propriedade descrita for conseguida por rotação circular para a direita dos seus elementos. Exemplos: Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 19 / 25

Bitonic Sort (2/7) Característica especial das sequências bitónicas: se fizermos a operação comparar-e-trocar com os elementos a i e a i+n/2, para todo o i, numa sequência de tamanho n, obtemos duas sequências bitónicas, em que os números de uma sequência são todos menores que os da outra sequência. Exemplo: começamos com a sequência 3, 5, 8, 9, 7, 4, 2, 1 e obtemos: Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 20 / 25

Bitonic Sort (3/7) a operação compara-e-troca desloca valores menores para a esquerda e maiores para a direita. dada uma sequência bitónica, aplicando recursivamente estas operações obtemos uma lista ordenada. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 21 / 25

Exemplo Bitonic Sort (4/7) Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 22 / 25

Bitonic Sort (5/7) Para ordenar uma sequência não ordenada juntar sequências em sequências bitónicas maiores, começando com pares de números adjacentes, alternando monotonicidade. e no final, a sequência bitónica é ordenada numa única sequência crescente. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 23 / 25

Bitonic Sort (6/7) Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 24 / 25

Bitonic Sort (7/7) Sequência não ordenada sequência bitónica sequência ordenada. Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenação 25 / 25