Sunteți pe pagina 1din 12

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !

i Calculatoare

Dezvoltarea aplica#iilor pentru calculatoare SM SIMD


! Shared Memory SIMD = PRAM (Parallel Random Access Machines) ! Sistemele SM SIMD se subdivid n:
- EREW (Exclusive Read Exclusive Write); - CREW (Concurrent Read Exclusive Write); - ERCW (Exclusive Read Concurrent Write); - CRCW (Concurrent Read Concurrent Write).

! Caracteristici:
- citirea !i scrierea explicitate separat in algoritmi - se descriu ac"iunile executate de procesoare (implicit de procese) - lansarea !i terminarea proceselor au "overhead" redus - algoritmii se ncadreaz, de obicei, n clasa "fine grain".
10/26/13

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

C"utarea paralel"
! Problema:
c#utare a unei valori x ntr-o secven"# ordonat# S de n valori

! Presupunere: elementele secven"ei sunt toate distincte ntre ele: s[1] < s[2] < ... < s[n].
(Solutia 1) Sistem EREW cu N procesoare, 1<=N<=n. - broadcast x are complexitatea O(log N). - secven"a S este divizat# n N subsecven"e de lungime n/N - un procesor g#se!te rezultatul n O(log(n/N)) n cazul cel mai defavorabil. ! Timpul total cerut este: O(log N) + O(log(n/N)) = O(log n) = timpul necesar c#ut#rii binare secven"iale.
10/26/13

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

(Solutia 2) Sistem CREW


- difuzarea valorii lui x = un pas. -! algoritmul:
1.! sirul se imparte in n+1 secvente 2.! fiecare proces inspecteaza un element la granita dintre doua secvente
Pi Pi+1 PN | | V V +-----------------------------------------------------------------+ | | | | |! | | | | |! | | | | | |! | | | | |! | | | | | | | |! | | | | | +-----------------------------------------------------------------+ P1 P2

3.! se determina sub-sirul in care se situeaza x 4.! se reia de la 1 pentru noul sir ! Deoarece fiecare etap# se aplic# unei secven"e de dimensiune 1/(N +1) din secven"a precedent#, sunt necesare O(logN+1(n+1)) etape.

10/26/13

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Justificare
P1 P2 PN +---------+ | | | | | | n u= N +---------+ P1 P2 PN +---------+ +-++---------+ +-++---------+ +-++---------+ | | | | | | | || | | | | | | || | | | | | | || | | | | | +---------+ +-++---------+ +-++---------+ +-++---------+ |<--N+1 ---->| |<-----------------------(N+1)(N+1) - 1 ---------------------->|

n ultimul pas N procesoare acoper# N elemente n pasul anterior (N+1)2 1 n g pa!i (N+1)g 1 din (N+1)g 1 >= n (n = nr elemente !ir) rezult# g = sup(log(n+1)/log(N+1)) dimensiune sub-interval (N+1)g-1-1

10/26/13

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Exemplul 1
P1 P2 P3 +--------------------------------------------+ | 1| 4| 6| 9|10|11|13|14|15|18|20|25|32|45|51| +--------------------------------------------+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 x=45, N=3, n=15 din (N+1)g -1>= n ! 4g >= 15+1 rezult# g=2. Lungimea unei subsecven"e n primul pas este (N+1)g-1 -1 = 3. Pasul 2 P1 P2 P3 +--------+ |32|45|51| +--------+ 13 14 15
10/26/13

(a)

(b)

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Exemplul 2
P2 (n afara sirului) +--------------------------------------------+ | 1| 4| 6| 9|10|11|13|14|15|18|20|25|32|45|51| (a) +--------------------------------------------+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1

N=2, x=21. Din (N+1)g -1 >= n ! 3g >= 16 rezult# g=3 Lungimea unei subsecven"e n primul pas este (N+1)g-1 -1 = 8.
Pas 2 P1 P2 +-----------------+ |18|20|25|32|45|51| +-----------------+ 10 11 12 13 14 15 P1 P2 +-----+ |18|20| +-----+ 10 11
Algoritmi Paraleli si distribuiti

(b)

Pas 3

(c)

10/26/13

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Algoritm
/1/ /* Initializarea indicilor secventei de cautat */ var q:int := 1; /* limita stg interval crt */ var r:int := n; /* limita dr interval crt */ /2/ /* Initializarea rezultatului k si a numarului de pasi g */

var k:int := 0;

/* pozitia nr cautat */

var g:int := sup(log(n+1)/log(N+1)) var c: array [0:N+1] of (stg,dr); c[0] := dr; c[N+1] := stg; var j: array [1:N] of integer;
10/26/13

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

/3/ do (q<=r) and (k=0) -> fa i := 1 to N do in parallel ji := (q-1) + i*(N+1)g-1

/* atentie la notatia indexata ji*/

Pi Pi+1 PN V V +-----------------------------------------------------------------+ | | | | |! | | | | |! | | | | | |! | | | | |! | | | | | | | |! | | | | | S +-----------------------------------------------------------------+ 1=q ^ ^ n=r indici elemente ..... i(N+1)g-1 (i+1)(N+1)g-1 ....

P1

P2

dimensiune subinterval

(N+1)g-1-1

10/26/13

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

/3/ do (q<=r) and (k=0) -> fa i := 1 to N do in parallel ji := (q-1) + i*(N+1)g-1 /* Pi compara x cu s[ji] si determina partea de secv acceptata */ if ji <= r -> if s[ji]=x -> k := ji [] s[ji]>x -> c[i] := stg [] s[ji]<x -> c[i] := dr fi; [] ji > r -> ji := r+1; c[i] := stg; fi; /* calculeaza indicii subsecventei urmatoare */ if c[i] <> c[i-1] -> q := ji-1 + 1; r := ji - 1; fi; if (i=N) and (c[i]<>c[i+1]) -> q := ji+1 fi; af; g := g-1; od; P1 P2 Pi V

+---------------------------------------------------+ | | | | |!| | | | |!| | | | | |!| | | | |!| | | | | | S +---------------------------------------------------+ q r


10/26/13

ji
9

Algoritmi Paraleli si distribuiti

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Observa#ii
! complexitatea t(n) = O(logN+1(n+1)) ! lucrul O(N logN+1(n+1)) ! Nota
! algoritmul cere ca toate elementele secven"ei S s# fie distincte

=> algoritmul nu este optim.

! n cazul n care n !ir pot exista valori egale


! Men"inerea eficien"ei algoritmului => model CRCW.

10/26/13

Algoritmi Paraleli si distribuiti

10

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Proprietati (dorite) ale algoritmilor paraleli


Num"r de procesoare - p(n) < n - p(n) adaptiv - uzual p(n) este func#ie sublinear" de n - algoritmul sa nu depind" de un num"r fix de procesoare

Timp de execu#ie - t(n) mic - semnificativ mai mic dacat al variantei secven#iale - t(n) adaptiv - invers proportional cu p(n) Cost - c(n) sa fie minim, deci algoritmul sa fie cost-optimal
10/26/13

Algoritmi Paraleli si distribuiti

11

Universitatea Politehnica Bucure!ti - Facultatea de Automatic" !i Calculatoare

Exemplu
Algoritmul de selec#ie a unei valori din secventa S = {s1, ..., sn} se execut# pe o ma!in# EREW SM SIMD cu N procesoare, unde N<n. (i) num#rul de procesoare p(n) este subliniar !i adaptiv:
! Algoritmul folose!te p(n) = n1-x procesoare, ! cu 0<x<1rezultat din N = n1-x.

(ii) timpul de execu"ie este mai scurt dect cel al unui algoritm secven"ial:
! t(n) = O(nx). ! algoritmul este adaptiv: p(n) cre!te => t(n) scade.

(iii) Costul este optim


! c(n) = n1-x * O(nx) = O(n)

10/26/13

Algoritmi Paraleli si distribuiti

12

S-ar putea să vă placă și