Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

PRAM. EREW CREW ERCW CRCW SYNCHRONIZACJA I STEROWANIE procesy są ściśle zsynchronizowane testowanie warunków zakończenia pętli - za pomocą sieci sterującej.

Podobne prezentacje


Prezentacja na temat: "PRAM. EREW CREW ERCW CRCW SYNCHRONIZACJA I STEROWANIE procesy są ściśle zsynchronizowane testowanie warunków zakończenia pętli - za pomocą sieci sterującej."— Zapis prezentacji:

1 PRAM

2 EREW CREW ERCW CRCW

3 SYNCHRONIZACJA I STEROWANIE procesy są ściśle zsynchronizowane testowanie warunków zakończenia pętli - za pomocą sieci sterującej lub jednoczesnego zapisu do pamięci

4 USTALANIE PORZĄDKU ELEMENTÓW NA LIŚCIE Metoda przeskakiwania (podwajania) : DANE : n elementowa lista rekordów (pola : klucz, d, next) WYNIK : d[i] = odległość elementu o kluczu=i od końca listy L 0 jeśli next[i] = NIL d[i] : = d[next[i]]+ 1 jeśli next[i] <>NIL

5 Procedure LIST-RANK (L); { dla EREW } begin for każdy proces i in parallel do if next[i] = NIL then d[i] := 0 else d[i] := 1; while istnieje element i w L taki, że next[i] <> NIL do for każdy proces i in parallel do if next[i] <> NIL then begin d[i] := d[i] + d[next[i]]; next[i] := next[next[i]]; end; T(n) = O(lg n)

6 OBLICZENIA PREFIKSOWE NA LIŚCIE DANE: n, X = (x 1, x 2,... x n ), n 1, - binarny, łączny operator WYNIK: Y = (y 1, y 2,..., y n ) x 1 jeśli k = 1 y k = y k-1 x k jeśli k > 1 OZNACZENIA : [i,j] = x i x i+1... x j

7 Procedure LIST-PREFIX (L); { dla EREW } { (x 1, x 2,... x n ) umieszczone w liście L (x i, y i, next) } begin for każdy proces i in parallel do y[i] : = x[i]; while istnieje element i w L taki, że next[i] <> NIL do for każdy proces i in parallel do if next[i] <> NIL then begin y[next[i]] := y[i] y[next[i]] next[i] := next[next[i]]; end; T(n) = O(lg n)

8 PROBLEM MAKSIMUM DANE: n > 0, x 1,..., x n, x i R; WYNIK : max = maximum {x 1,..., x n, x i R}

9 FAST-MAX (X); { dla CRCW z jednolitym zapisem } { wykorzystuje n 2 procesów } begin for i : =0 to n-1 in parallel do m[i] := TRUE; for i := 0 to n-1, for j := 0 to n-1 in parallel do {proces dla pary (i,j) !} if X[i] < X[j] then m[i] = FALSE; { wiele procesów może pisać ale wszystkie zapisują tę samą wartość - FALSE } for i := 0 to n-1 in parallel do if m[i] = TRUE then max := X[i] { wiele procesów może pisać ale wszystkie zapisują tę samą wartość – max } return max end; T(n) = O(1)

10 56929m 5 FTTFT F 6 FFTFT F 9 FFFFF T 2 TTTFT F 9 FFFFF T X[j} X[i]

11 FIND-ROOTS(F) begin for każdy procesor i in parallel do if parent[i] = NIL then root[i] := i; while istnieje węzeł i taki, że parent[i] <> NIL do for każdy procesor i in parallel do if parent[i] <>NIL then begin root[i] := root[parent[i]]; parent[i] := parent[parent[i]]; end;


Pobierz ppt "PRAM. EREW CREW ERCW CRCW SYNCHRONIZACJA I STEROWANIE procesy są ściśle zsynchronizowane testowanie warunków zakończenia pętli - za pomocą sieci sterującej."

Podobne prezentacje


Reklamy Google