• Nenhum resultado encontrado

Algoritmo CGM para o Problema de. Baseado em artigos de Einar Saukas e Siang Song

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmo CGM para o Problema de. Baseado em artigos de Einar Saukas e Siang Song"

Copied!
15
0
0

Texto

(1)

Algoritmo CGM para o Problema de Sele¸ c˜ ao

Baseado em artigos de Einar Saukas e Siang Song

(2)

O Problema da Sele¸ c˜ ao

Considere um conjunto de n elementos.

Dado um inteiro k (1 ≤ k ≤ n) deseja-se sele- cionar o k-´ esimo menor elemento do conjunto.

Casos particulares:

k = 1: obter o m´ınimo k = n: obter o m´ aximo

k = dn/ 2 e : obter a mediana

1

(3)

Trabalhos Anteriores

O problema de sele¸ c˜ ao pode ser resolvido em tempo linear no modelo sequencial.

No modelo PRAM o problema ´ e extensivamen- te estudado.

H´ a poucos trabalhos no modelo de mem´ oria distribu´ıda:

[Santoro, Sidney e Sidney 1992]: algo- ritmo probabil´ıstico usando O(log log k + log p) rodadas de comunica¸ c˜ ao, onde p

´ e o no. de processadores.

[Bader e J´ aJ´ a 1996]: algoritmo deter- min´ıstico usando O(log(n/p 2 )) rodadas de comunica¸ c˜ ao.

Apresentamos um algoritmo determin´ıstico que

requer O(log p) rodadas de comunica¸ c˜ ao.

(4)

T´ ecnica de Redu¸ c˜ ao do Tamanho do Problema

• Procurar reduzir a entrada de n elementos para n/p, que cabem ent˜ ao num ´ unico pro- cessador. Pode-se ent˜ ao usar um algoritmo sequencial de sele¸ c˜ ao, em tempo O ( n/p ).

Mostramos como a entrada pode ser reduzida de n para n/p em O (log p ) rodadas de comuni- ca¸ c˜ ao.

3

(5)

Como Reduzir o Tamanho do Problema Cada processador calcula a mediana de seus dados (inicialmente n/p n´ umeros).

Cada processador envia a mediana para o pro- cessador 1.

O processador 1 calcula a mediana M das p medianas. Prova-se que M tem rank entre n/ 4 e 3 n/ 4.

Sabendo-se a quantidade total de n´ umeros <

M , = M e > M , pode-se descartar n´ umeros que n˜ ao podem ser resposta procurada:

< M = M > M

k

-

No exemplo, o n´ umero procurado deve estar entre os n´ umeros < M . Os = M e > M podem ser descartados. Temos:

Quantidade de n´ umeros que sobram ≤ 3 n/ 4.

(6)

Uso da Mediana Ponderada das Medianas Cada tamanho original N ´ e reduzida a no m´ aximo 3 N/ 4 em um passo de redu¸ c˜ ao. Em O (log p ) passos, reduziremos os n inciais para O ( n/p ).

Importante: A quantidade de n´ umeros que so- bram em cada processador pode variar. Uma redistribui¸ c˜ ao de dados seria necess´ aria em ca- da passo.

Para evitar essa redistri¸ c˜ ao, usamos a mediana ponderada M 0 das medianas calculdas em cada processador.

Dados p n´ umeros distintos m 1 , m 2 , . . . , m p com corresp. pesos positivos w 1 , w 2 , . . . , w p tais que

P 1 ≤i≤p w i = 1, a mediana ponderada ´ e o ele- mento m k que satisfaz P i,m

i <m k w i1 2 e

P i,m i >m k w i1 2 .

Prova-se que o rank de M 0 tamb´ em est´ a entre n/4 e 3n/4, portanto teremos o mesmo efeito desejado.

5

(7)

Algoritmo CGM proposto

Algorithm 1 Select the k th smallest element.

Input: Set A of n elements distributed among the p processors, each processor i with n i = n/p elements, and an integer k , 1 ≤ k ≤ n .

Output: An element a i of A such that rank (a i , A) = k .

(1) Set N := n

(2) Repeat until N ≤ n/ ( cp )

(2.1) Each processor i computes the median m i of its n i elements

(2.2) Each processor i sends m i and n i to pro-

cessor 1

(8)

(2.3) Processor 1 computes the weighted me- dian M

(2.4) Processor 1 broadcasts M to all other processors

(2.5) Each processor i computes l i , e i , g i , res- pectively the numbers of its local ele- ments less than, equal to, or greater than M

(2.6) Each processor i sends l i , e i , g i to pro- cessor 1

(2.7) Processor 1 computes L = P 1 ≤i≤p l i , E = P 1≤i≤p e i , G = P 1≤i≤p g i , respecti- vely the total numbers of elements less than, equal to, or greater than M

(2.8) Processor 1 broadcasts L, E, G to all other processors

(2.9) One of the following:

(9)

if L < k ≤ L + E then return solution M and stop

if k ≤ L then each processor i discards all but those elements less than M and set N := L

if k > L + E then each processor i discards all but those elements greater than M and set N := G and k := k − (L + E )

(3) All the remaining N elements are sent to processor 1

(4) Processor 1 solves the remaining problem sequentially

— End of Algorithm —

(10)

Parˆ ametro c

Cada rodada de comunica¸ c˜ ao, exceto a ´ ultima, envolve a transmiss˜ ao de O ( p ) n´ umeros.

A ´ ultima rodada ´ e a mais custosa pois todos os n´ umeros que sobram devem ser transmitidos.

Note que o comando Repeat until N ≤ n/(cp).

O parˆ ametro c pode ser escolhido para ob- ter o melhor tempo de execu¸ c˜ ao numa dada m´ aquina. O seu efeito ´ e o seguinte:

O n´ umero de rodadas de comunica¸ c˜ ao ´ e O(log cp).

A quantidade de dados transmitidos na ´ ultima rodada: O ( n/ ( cp )).

Portanto: maior o valor de c implica mais roda- das de comunica¸ c˜ ao mas menos dados trans- mitidos na ´ ultima rodada.

7

(11)

Implementa¸ c˜ ao

Parsytec PowerXplorer de 16 n´ os cada n´ o com:

. um processador PowerPC601 e um proces- sador de comunica¸ c˜ ao T805

. 32 Mbytes de mem´ oria local

Usamos PVM e interface nativa Parix (dando resultados semelhantes).

Testamos com dois tipos de entradas:

Entrada uniforme: os dados de entrada s˜ ao alocados nos processadores de maneira ale- at´ oria.

Entrada pior caso: os dados s˜ ao alocados nos processadores de forma a produzir o pior des- balanceamento de carga.

Nessa m´ aquina, ap´ os experimentar v´ arios va-

lores, achamos que o melhor ´ e adotar o valor

c = 20.

(12)

Resultados

Tempos de execu¸ c˜ ao (em micro-segundos):

n p = 1 p = 2 p = 4 p = 8 p = 16

1024 8727 5767 3372 3080 4714

2048 18896 11665 5887 3885 4794 4096 39032 23901 11730 6457 5903 8192 78618 47190 23654 12358 8077 16384 155944 95979 46693 24191 14005 32768 308148 189749 93867 47397 25552 65536 613099 375037 185122 94915 48508 131072 1223813 746283 365247 187116 95927 262144 2429358 1496103 727908 369437 187960 524288 4840124 2968610 1457379 736184 369990

9

(13)

Curvas dos Tempos

0.0 4.0 8.0 12.0 16.0

P (number of processors) 0.0e+00

2.0e+06 4.0e+06 6.0e+06

Time (in clock ticks)

Algorithm 1

Uniform distribution Worst-case distribution

(14)

Curvas dos Speedups

0.0 4.0 8.0 12.0 16.0

P (number of processors) 0.0

2.0 4.0 6.0 8.0

Speedup

Algorithm 1

Uniform distribution Worst-case distribution

11

(15)

Conclus˜ ao

• Houve uma preocupa¸ c˜ ao de minimi- zar a quantidade de dados transmitidos em cada rodada de comunica¸ c˜ ao.

• Introduzimos um parˆ ametro c que po-

de ser calibrado experimentalmente.

Referências

Documentos relacionados

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Segundo Éric Laurent, a psicose ordinária se caracteriza pela não resposta aos significantes-mestres tradicionais, manifestando o fim do poder do Nome-do-Pai como

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Como todos os outros seres humanos, o operador também é construtor da realidade e carrega consigo “experiências vividas, ideologias e valores que amoldam a sua

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

O Conselho Federal de Psicologia (CFP) apresenta à categoria e à sociedade em geral o documento de Referências Técnicas para a Prática de Psicólogas(os) em Programas de atenção