Escolar Documentos
Profissional Documentos
Cultura Documentos
Fernando Silva
DCC-FCUP
(Alguns dos slides so baseados nos do livro Parallel Programming Techniques &
Applications Using Networked Workstations & Parallel Computers, 2nd ed. de B.
Wilkinson)
Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenao 1 / 25
Ordenao em Paralelo
Porqu?
uma operao frequente em muitas aplicaes
Objectivo?
ordenar uma sequncia de nmeros (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 - ordenao 2 / 25
Comparao-e-troca com troca de mensagens (1/2)
A ordenao sequencial requer a comparao de valores e a sua permuta
nas posies que ocupam na sequncia. E se for em paralelo? E se a
memria for distribuda?
verso 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 - ordenao 3 / 25
Comparao-e-troca com troca de mensagens (2/2)
verso 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 - ordenao 4 / 25
Partio de dados
Verso 1:
n nmeros e p processadores
n/p nmeros atribudos a cada processador.
Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenao 5 / 25
Juno de duas sub-listas
verso 2:
Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenao 6 / 25
Bubble Sort (mtodo da bolha)
compara dois a dois e troca se estiverem fora de ordem.
maiores valores vo sendo deslocados para o nal da lista.
nmero de comparaes e trocas:
n1
i =1
i =
n(n1)
2
o que corresponde a uma complexidade O(n
2
).
Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenao 7 / 25
Exemplo bubble-sort
Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenao 8 / 25
Bubble Sort Paralelo
Ideia ter vrias iteraes a correr em paralelo.
Fernando Silva (DCC-FCUP) Algoritmos Paralelos - ordenao 9 / 25
Par-mpar com transposio (1/2)
uma variante do bubble-sort
opera em duas fases alternadas:
Fase-par: