Matakuliah Tahun Versi
: H0352/Pemrosesan Paralel : 2005 : versi/01
Pokok Bahasan 5
Algoritma Pemrosesan Paralel
1
Learning Outcomes
Pada akhir pertemuan ini diharapkan mahasiswa akan dapat:
menggunakan konsep kerja algoritma dalam pemrosesan paralel menunjukkan beberapa algoritma paralel sederhana menggunakan teori graph.
2
Bagan pembuatan algoritmaGraph, flowchart, atau diagram yang merupakan ide dasar untuk memecahkan problem.Kumpulan statemen yang dapat mewakili konsep/gambaran yang dibuat. Contoh statemen tsb adalah:
ProblemKonsep / gambaran
PseudocodeSUM (EREW PRAM) Initial condition: List of n >= 1 elements stored in A[0 . . . . . (n-1)] Final condition: Sum of elements stored in A[0] Gobal variables: n, A[0 . . . . . (n-1_], j begin spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0 i [n/2]-1 do for j 0 to [log p] 1 do if i modulo 2j = 0 and 2i + 2j < n then A[2i] A[2i] + A[2i + 2j] endif endfor endfor end
Spawn() adalah statemen untuk mengaktipkan prosesor yang dipakai.for all do endfor if . . . then . . . else . . . endif while . . . endwhile
3
Abstract Machine Models
Ada beberapa model untuk abstract machine models, sebagai contoh:
PRAM : Parallel Random Access Machine BSP : Bulk Synchronous Parallel PPM : Phase Parallel Model
(Dalam kuliah ini hanya PRAM yang akan dibahas)
4
Arsitektur PRAM
Control
P1Privat memory
P2Privat memory
PpPrivat memory
Interconnection network
Global memory
5
Arsitektur PRAMKomunikasi pada PRAM
6
Algoritma Model PRAMP1 P2 P3 P4 P5 6 2 9 3 7T
(3,1) (3,2) (7,3) (3,4) (7,5) sort
P1 P2 P3 P4 P5 6 2 9 3 7T
P1 P2 P3 P4 P5 6 2 9 3 7
(3,1) (3,2) (3,4) (7,3) (7,5)
M3 6
M7 9S
M31 0 1 0 0
M79
6
Teorema 2.1: P-Processor dengan komunikasi CRCWPIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p).7
Algoritma Model PRAMAktifasi prosesor Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p).
Waktu, O(log p)
Active processor8
Algoritma Model PRAMPenjumlah Sederetan AngkaKonsep / gambaran:
Proses ini disebut Juga dengan Reduksi Paralel a1a2 a3 a4 . . an
P0 P0 P2 Proses penjumlahan oleh prosesor
P0
P1
P2
P3
Angka yang akan di jumlah
9
Algoritma Model PRAMPenjumlah Sederetan AngkaPseudocode:
SUM (EREW PRAM) Initial condition: List of n >= 1 elements stored in A[0 . . . . . (n-1)] Final condition: Sum of elements stored in A[0] Gobal variables: n, A[0 . . . . . (n-1_], j begin spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0 i [n/2]-1 do for j 0 to [log n] 1 do if i modulo 2j = 0 and 2i + 2j < n then A[2i] A[2i] + A[2i + 2j] endif endfor endfor 10 end
Algoritma Model PRAMPenjumlah Sederetan AngkaOperasional untuk n = 10:P0 4 3 8 P1 2 9 P2 1 0 P3 5 6 P4 3
7
10
10
5
9
17
15
32
41 11
Algoritma Model PRAMbegin Penjumlah spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0 i [n/2]-1 do for j 0 to [log n] 1 do if i modulo 2j = 0 and 2i + 2j < n then A[2i] A[2i] + A[2i + 2j] endif endfor j i i mod 2j =0 2i + 2j endfor end 0 0 0/1 0 0+1=10 0 0 0 1 1 1 1 1 2 2 2 2 2 1 2 3 4 0 1 2 3 4 0 1 2 3 4 1/1 0 2/1 0 3/1 0 4/1 0 0/2 0 1/2 1 2/2 0 3/2 1 4/2 0 0/4 0 1/4 1 2/4 2 3/4 3 4/4 0 x x x x x 2+1=3 4+1=5 6+1=7 8+1=9 0+2=2 2+2=4 4+2=6 8+2=10 16+2=18 0+4=4 2+4=6 4+4=8 8+4=12 16+2=18
Sederetan AngkaOperasional untuk n = 10:
= 1 elements stored in A[0 . . . . . (n-1)] Final condition: Each element A[i] contains A[0] A[1] . . A[i] Gobal variables: n, A[0 . . . . . (n-1)], j begin spawn(P1, P2, . . . P(n-1) for all Pi where 1 i n-1 do for j 0 to [log n] 1 do if i - 2j 0 then A[i] A[i] + A[i - 2j] endif endfor endfor end14
Algoritma Model PRAM Rangking dalam ListKonsep / bagan: 1 1 1 1
1
1
1
1
1
0
2
2
2
2
2
2
2
2
1
0
4
4
4
4
4
4
3
2
1
0
8
8
7
6
5
4
3
2
1
0
9
8
7
6
5
4
3
2
1
0
15
Algoritma Model PRAM Rangking dalam ListPseudocode:
LIST.RANKING (CREW PRAM) Initial condition: Values in array next represent a linked list Final condition: Values in array position contain original distance of each element from end of list Gobal variables: n, position[0 . . . . . (n-1)], next[0 . . . . (n-1)], j begin spawn(P0, P1, P2, . . . Pn-1) for all Pi where 0 i n -1 do if next[i] = i then position[i] 0 else position[i] 1 endif for j 1 to log n doposition[i] position[i] + position[ next[i]] next[i] next[next[i]] endfor
endfor end
16
Algoritma Model PRAMSearching dengan DFS
A
A
B
C F E D G H
B
C F E
D
G
H
17
Algoritma Model PRAMSearching dengan DFS(A, B) 7
node B Label = 7
(A, B) 1
(D, B) 0
(E, G) 1
(E, H) 1
(E, B) 0
(A, C) 1
(F, C) 0
(B, D) 1
(B, E) 1
(G, E) 0
(H, E) 0
(B, A) 0
(C, F) 1
(C, A) 0
Posisi = (n +1) - label n = jumlah node B=97=2 D=96=3 E=95=4 G=94=5 H=93=6 C=92=7 F=91=8(A, B) 7 (D, B) 5 (E, G) 4
(E, H) 3
(E, B) 2
(A, C) 2
(F, C) 0
(B, D) 6
(B, E) 5
(G, E) 3
(H, E) 2
(B, A) 2
(C, F) 1
(C, A) 0
A 1
B 2
C D E 7 3 4
F G H 8 5 618
Algoritma Model PRAMPenggabunganA[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
sorted
1
5
7
9
13 17 19 23
Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut.
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
19
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
sorted
1
5
7
9
13 17 19 23
?
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
20
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
21
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
11 < 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
22
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
11 < 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
23
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
21 > 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
24
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
21 > 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
25
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
12 < 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
Index A[7] = 13
26
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
12 < 19
19B[1] B[4] B[6] B[8] B[9] B[12] B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
Posisi A[7]: 13 +7 - 8 = 1227
Index A[7] = 13
Algoritma Model PRAMPenggabunganA[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
sorted
1
5
7
9
13 17 19 23
sorted
1B[1]
2
4
5B[4]
7
8B[6]
9
11 12 13 17 19 21 22 23 24B[8] B[9] B[12] B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
Kompleksitas waktu: O(n
log n)
28
Komunikasi
29
Hypercube BroadcastP
Patern Binomial tree digunakan untuk hypercube broadcasting
R S Z Y W Q
X
Binomial Tree
YR S
Z R
YS
Z R
YS
Z
X P Q
W P
X Q
W P
X Q
W
30
Hypercube Broadcast
Johnsson and Ho algoritma
A A C A B A B C C A B B C B C A A B C B
31
Searching pada Graph
6
5 1
4
Dua prosesor parallel depth search(5) (1)
7
2
3 1(1) (2) (7)
9
8 7(3)
2(6) (2)
3
4
Graph yang di search6 5(4)
(3)
8 9
32
Searching pada Graph
6
5 1
4
Dua prosesor parallel breadth-depth search(2) (1)
7
2
3 1(1)
(2)
5(6)
9
8(5)
(3)
2 3(3) (4)
4
Graph yang di search
7
6
8
9(5)
33
Searching pada Graph
6
5 1
4
Dua prosesor parallel breadth first search(2) (1)
7
2
3 1(1)
(2)
5(5)
9
8
(3)
2 3(3) (4)
4
Graph yang di search
7
6(6)
8
9(6)
34
Shorted Path AlgorithmDistance A 0 B C D E Distance A 0 B 4 C 1 D 7 E Distance A 0 B 3 C 1 D 7 E 8 Distance A 0 B 3 C 1 D 6 E 8 Queue A 3 4
B2 1
D
A
1Queue C D
1
C3
E
Distance A 0 B 4 C 1 D E Distance A 0 B 3 C 1 D 7 E Distance A 0 B 3 C 1 D 6 E 8 Distance A 0 B 3 C 1 D 6 E 7
Queue B C
4
B2
3 1
D
A1
2Queue D B
C3
E D2 1
4
B2 1
D
4
B
A
A
3Queue B E
1
C3
E
4Queue E D
1
C3
E
4
B2 1
D
4
B2 1
D
A
A
5Queue D
1
C3
E
6Queue E
1
C3
E
4
B2 1
D
4
B2 1
D
A
A
7
1
C
E
8
1
C
E 35
Minimum Cost Spanning Tree Algorithm - Solin
4
B3 6
5
4
B3 6
5
A1
C5 1
2
H1 1
A
C5 1
2
H1
G3
G3
F4
E
I7
F4
D
2
E
I7
D
2
4
B3 6
5
4
B3 6
5
A1
C51
2
H1 1
A
C51
2
H1
G3
G3
F4
E
I7
F4
D
2
E
I7
D
2 36
Minimum Cost Spanning Tree Algorithm - Kruskal
1A3
7
B8 9 3
2A3
7
B8 9 3
C1
C1
D6
E A3
7
B8 9 3
D6
E
C1
D
E6
3A3
7
B8 9 3
4A3
7
B8 9 3
C1
C1
D6
E
D6 37
E
RESUMETelah dibahas:
Konsep pembuatan algoritma secara umum, arsitektur PRAM, dan algoritma untuk model PRAM Contoh-contoh algoritma untuk PRAM: Rangking dalam list Searching dengan DFS Penggabungan
Beberapa algoritma paralel graph standard: Hypercube Broadcast: (1) Binomial tree, (2) Jhonsson and Ho Searching graph: depth search, breadth-depth search, breadth-first search. Shorted Path Minimum cost spanning tree: (1) Solin, (2) Kruskal.38
Top Related