390 likes | 688 Views
Pokok Bahasan 5 Algoritma Pemrosesan Paralel. Matakuliah : H0352/Pemrosesan Paralel Tahun : 2005 Versi : versi/01. Pada akhir pertemuan ini diharapkan mahasiswa akan dapat:. menggunakan konsep kerja algoritma dalam pemrosesan paralel
E N D
Pokok Bahasan 5Algoritma Pemrosesan Paralel Matakuliah : H0352/Pemrosesan Paralel Tahun : 2005 Versi : versi/01
Pada akhir pertemuan ini diharapkan mahasiswa akan dapat: • menggunakan konsep kerja algoritma dalam • pemrosesan paralel • menunjukkan beberapa algoritma paralel sederhana • menggunakan teori graph. Learning Outcomes
Bagan pembuatan algoritma Graph, flowchart, atau diagram yang merupakan ide dasar untuk memecahkan problem. Problem Konsep / gambaran Kumpulan statemen yang dapat mewakili konsep/gambaran yang dibuat. Contoh statemen tsb adalah: Spawn(<processor names>) adalah statemen untuk mengaktipkan prosesor yang dipakai. for all <processor list> do <statement list> endfor if . . . then . . . else . . . endif while . . . endwhile Pseudocode 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]-1do 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
PRAM : Parallel Random Access Machine BSP : Bulk Synchronous Parallel PPM : Phase Parallel Model Abstract Machine Models Ada beberapa model untuk abstract machine models, sebagai contoh: (Dalam kuliah ini hanya PRAM yang akan dibahas)
Control Pp Privat memory Interconnection network Global memory P2 P1 Privat memory Privat memory Arsitektur PRAM
Komunikasi pada PRAM Arsitektur PRAM
P1 P2 P3 P4 P5 6 2 9 3 7 T T S (3,1) (3,2) (7,3) (3,4) (7,5) P1 P2 P3 P4 P5 6 2 9 3 7 P1 P2 P3 P4 P5 6 2 9 3 7 sort (3,1) (3,2) (3,4) (7,3) (7,5) M3 6 M7 9 M3 6 M7 9 1 0 1 0 0 Teorema 2.1: P-Processor dengan komunikasi CRCW-PIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p). Algoritma Model PRAM
Aktifasi prosesor Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p). Waktu, O(log p) Active processor Algoritma Model PRAM
Penjumlah Sederetan Angka Proses ini disebut Juga dengan Reduksi Paralel a1a2 a3a4 . . an Konsep / gambaran: Proses penjumlahan oleh prosesor P0 P0 P2 Angka yang akan di jumlah P0 P1 P2 P3 Algoritma Model PRAM
Algoritma Model PRAM Penjumlah Sederetan Angka Pseudocode: 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]-1do 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 end
P0 P1 P2 P3 P4 17 15 7 32 41 4 3 8 10 2 10 9 1 5 0 5 6 9 3 Algoritma Model PRAM Penjumlah Sederetan Angka Operasional untuk n = 10:
Algoritma Model PRAM begin spawn(P0, P1, P2, . . . P((n/2)-1) for all Pi where 0 i [n/2]-1do 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 end Penjumlah Sederetan Angka Operasional untuk n = 10:
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] 4 7 15 17 22 20 12 15 12 14 4 4 4 4 7 3 7 7 15 15 8 11 17 10 2 17 11 9 26 26 27 10 1 27 27 1 0 27 5 5 32 32 34 38 6 11 34 41 3 9 Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka Konsep / gambaran:
Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka Pseudocode: PREFIX.SUMS (CREW PRAM) Initial condition: List of n >= 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-1do for j 0 to [log n] – 1 do if i - 2j 0 then A[i] A[i] + A[i - 2j] endif endfor endfor end
Rangking dalam List Konsep / bagan: 1 1 1 1 1 1 1 1 0 1 2 2 2 2 1 2 2 2 0 2 4 4 4 4 1 4 3 4 0 2 8 5 8 7 1 4 3 6 0 2 9 5 8 7 1 4 6 0 2 3 Algoritma Model PRAM
Rangking dalam List Pseudocode: 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 -1do ifnext[i] = ithenposition[i] 0 elseposition[i] 1 endif forj 1 to log n do position[i] position[i] + position[ next[i]] next[i] next[next[i]] endfor endfor end Algoritma Model PRAM
Searching dengan DFS A A B B C C F F E E D D H H G G Algoritma Model PRAM
Searching dengan DFS node B Label = 7 (B, E) (A, B) (D, B) (E, H) (A, B) (A, C) (E, B) (C, A) (F, C) (B, D) (C, F) (F, C) (B, A) (G, E) (E, G) (E, B) (A, B) (B, A) (H, E) (C, F) (C, A) (G, E) (H, E) (A, C) (B, E) (E, G) (E, H) (B, D) (D, B) 0 1 1 0 0 1 5 7 4 3 0 1 0 0 3 0 1 1 2 2 1 0 2 6 7 1 5 2 0 Posisi = (n +1) - label n = jumlah node B = 9 – 7 = 2 D = 9 – 6 = 3 E = 9 – 5 = 4 G = 9 – 4 = 5 H = 9 – 3 = 6 C = 9 – 2 = 7 F = 9 – 1 = 8 A 1 B 2 C 7 3 D E 4 F 8 G 5 H 6 Algoritma Model PRAM
2 1 4 5 8 7 11 9 13 12 21 17 22 19 24 23 Algoritma Model PRAM Penggabungan Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut. A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 12 13 17 21 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] sorted ? B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 12 13 17 21 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 13 12 21 17 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] 11 < 19 sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 13 12 21 17 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] 11 < 19 sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 13 12 21 17 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] 21 > 19 sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 13 12 21 17 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] 21 > 19 sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14]
1 2 5 4 7 8 11 9 13 12 21 17 22 19 23 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] 12 < 19 sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14] Index A[7] = 13
1 2 5 4 8 7 11 9 19 13 12 21 17 22 19 24 23 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] 12 < 19 sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] Posisi A[7]: 13 +7 - 8 = 12 sorted A[9] A[16] A[11] A[13] A[14] Index A[7] = 13
1 2 1 12 4 2 5 13 17 8 7 4 11 9 5 19 7 21 12 13 21 17 22 8 23 22 9 19 23 24 11 24 Algoritma Model PRAM Penggabungan A[2] A[3] A[4] A[5] A[8] A[1] A[6] A[7] sorted sorted B[6] B[1] B[4] B[8] B[12] B[9] B[16] sorted A[9] A[16] A[11] A[13] A[14] Kompleksitas waktu:O(n log n)
Patern Binomial tree digunakan untuk hypercube broadcasting Y Y Y Z Z Z R R R S S S X X X W W W Binomial Tree P P P Q Q Q P R X S Q Y Z W Hypercube Broadcast
A C A B B A B A B C C C B A C A A B B C Hypercube Broadcast Johnsson and Ho algoritma
5 6 4 (5) 1 (1) (7) 1 (1) 2 4 (2) 3 3 2 7 7 (6) (2) (3) 8 6 (3) 8 9 (4) 9 5 Searching pada Graph Dua prosesor parallel depth search Graph yang di search
5 6 4 1 3 2 7 8 9 (2) 1 5 (1) (2) (1) 2 (3) (6) 4 3 7 (3) (4) (5) 8 9 6 (5) Searching pada Graph Dua prosesor parallel breadth-depth search Graph yang di search
5 6 4 1 3 2 7 8 9 (2) 1 5 (1) (2) (1) 2 (3) 4 (5) 3 7 (3) (4) 6 8 9 (6) (6) Searching pada Graph Dua prosesor parallel breadth first search Graph yang di search
Distance Queue A 0 D B 3 B C 1 D 7 E Distance Queue A 0 E B 3 C 1 D 6 E 7 Distance Queue A 0 E B 3 D C 1 D 6 E 8 Shorted Path Algorithm 3 3 3 3 3 3 3 4 4 4 4 4 4 4 D D D D D D D Distance Queue A 0 B B 3 E C 1 D 7 E 8 Distance Queue A 0 C B 4 D C 1 D 7 E Distance Queue A 0 D B 3 C 1 D 6 E 8 B B B B B B B Distance Queue A 0 A B C D E Distance Queue A 0 B B 4 C C 1 D E A A A A A A A 2 2 2 2 2 2 2 1 1 1 1 1 1 1 3 4 D B 1 1 1 1 1 1 1 E E E E E E E C C C C C C C A 2 1 2 1 1 E C 4 3 6 5 8 7
B B B B 5 5 5 5 4 4 4 4 2 2 2 2 6 6 6 6 C C C C 3 3 3 3 A A A A H H H H 5 5 5 5 G G G G 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 F F F F I I I I E E E E D D D D 4 4 4 4 2 2 2 2 7 7 7 7 Minimum Cost Spanning Tree Algorithm - Solin
1 2 B B B B B 7 7 7 7 7 8 8 8 8 8 A A A A A 9 9 9 9 9 C C C C C 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 E E E E E D D D D D 6 6 6 6 6 3 4 Minimum Cost Spanning Tree Algorithm - Kruskal
Telah 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. RESUME