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 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: 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]-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(<processor names>) adalah statemen untuk mengaktipkan prosesor yang dipakai. for all <processor list> do <statement list> 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 P1 Privat memory P2 Privat memory Pp Privat memory Interconnection network Global memory 5 Arsitektur PRAM Komunikasi pada PRAM 6 Algoritma Model PRAM P1 P2 P3 P4 P5 6 2 9 3 7 T (3,1) (3,2) (7,3) (3,4) (7,5) P1 P2 P3 P4 P5 6 2 9 3 7 sort T M3 M7 6 9 S P1 P2 P3 P4 P5 6 2 9 3 7 (3,1) (3,2) (3,4) (7,3) (7,5) 1 0 1 0 0 M3 M7 6 9 Teorema 2.1: P-Processor dengan komunikasi CRCWPIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p). 7 Algoritma Model PRAM Aktifasi prosesor Waktu, O(log p) Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p). Active processor 8 Algoritma Model PRAM Penjumlah Sederetan Angka Proses ini disebut Juga dengan Reduksi Paralel a1a2 a3 a4 . . an Konsep / gambaran: P0 P0 P0 P2 P1 P2 P3 Proses penjumlahan oleh prosesor Angka yang akan di jumlah 9 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]-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 PRAM Penjumlah Sederetan Angka Operasional untuk n = 10: P0 4 7 17 P1 3 8 10 P2 2 9 10 P3 1 0 5 P4 5 6 3 9 15 32 41 11 Algoritma Model PRAM begin 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=1 Sederetan Angka Operasional untuk n = 10: <10 Pi operasi P0 P1 P2 P3 P4 A[0] A[0]+A[1] A[2] A[2]+A[3] A[4] A[4]+A[5] A[6] A[6]+A[7] A[8] A[8]+A[9] 0 0 0 0 1 2 3 4 1/1 0 2/1 0 3/1 0 4/1 0 2+1=3 4+1=5 6+1=7 8+1=9 1 1 1 1 1 0 1 2 3 4 0/2 0 1/2 1 2/2 0 3/2 1 4/2 0 x x 0+2=2 2+2=4 4+2=6 8+2=10 16+2=18 x x P0 P1 P2 P3 P4 A[0] A[0]+A[2] idle A[4] A[4]+A[6] idle idle 2 2 2 2 2 0 1 2 3 4 0/4 0 1/4 1 2/4 2 3/4 3 4/4 0 x x x 0+4=4 2+4=6 4+4=8 8+4=12 16+2=18 x x P0 P1 P2 P3 P4 A[0] A[0]+A[4] idle idle idle 12 idle Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka Konsep / gambaran: A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] 4 3 8 2 9 1 0 5 6 3 4 7 11 10 11 10 1 5 11 9 4 7 15 17 22 20 12 15 12 14 4 7 15 17 26 27 27 32 34 34 4 7 15 17 27 27 32 38 41 26 13 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-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 end 14 Algoritma Model PRAM Rangking dalam List Konsep / 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 2 1 0 3 15 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 -1 do if next[i] = i then position[i] 0 else position[i] 1 endif for j 1 to log n do position[i] position[i] + position[ next[i]] next[i] next[next[i]] endfor endfor end 16 Algoritma Model PRAM Searching dengan DFS A A B C B C F F E D E D G H G H 17 Algoritma Model PRAM Searching dengan DFS node B (A, B) 7 (A, B) 1 (D, B) 0 (B, D) 1 (E, G) 1 (B, E) 1 (E, B) 0 (E, H) 1 (G, E) 0 Label = 7 (A, C) 1 (B, A) 0 (H, E) 0 (F, C) 0 (C, F) 1 (C, A) 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, B) 7 (D, B) 5 (B, D) 6 (E, G) 4 (B, E) 5 (E, B) 2 (E, H) 3 (G, E) 3 (A, C) 2 (B, A) 2 (H, E) 2 A B C D E F G H 1 2 7 8 3 4 5 6 (F, C) 0 (C, F) 1 (C, A) 0 18 Algoritma Model PRAM Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut. A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[12] B[9] B[16] 11 12 21 22 24 A[13] A[14] A[16] 19 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 5 7 A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 ? B[1] sorted B[6] B[4] 2 A[9] 4 8 A[11] B[8] B[12] B[9] B[16] 11 12 21 22 24 A[13] A[14] A[16] 20 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[9] B[12] B[16] 11 12 21 22 24 A[13] A[14] A[16] 21 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[9] B[12] 11 < 19 B[16] 11 12 21 22 24 A[13] A[14] A[16] 22 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[9] B[12] 11 < 19 B[16] 11 12 21 22 24 A[13] A[14] A[16] 23 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[9] B[12] 21 > 19 B[16] 11 12 21 22 24 A[13] A[14] A[16] 24 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[9] B[12] 21 > 19 B[16] 11 12 21 22 24 A[13] A[14] A[16] 25 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 B[1] sorted 5 B[6] B[4] 2 A[9] 7 4 8 A[11] Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 13 17 19 23 B[8] B[12] B[9] 12 < 19 B[16] 11 12 21 22 24 A[13] A[14] A[16] Index A[7] = 13 26 Algoritma Model PRAM Ambil contoh A[7] = 19 dimana posisinya? Penggabungan A[1] A[2] A[3] sorted 1 5 7 Menggunakan BST (Binary Search Tree) A[4] A[5] A[6] A[7] A[8] 9 12 < 19 13 17 19 23 19 B[1] sorted B[6] B[4] 2 A[9] 4 8 A[11] B[8] B[12] B[9] 11 12 21 22 24 A[13] A[14] A[16] Index A[7] = 13 B[16] Posisi A[7]: 13 +7 - 8 = 12 27 Algoritma Model PRAM Penggabungan A[1] A[2] A[3] sorted 1 sorted 1 B[1] sorted 2 4 5 5 7 7 8 9 9 B[6] B[4] 2 A[4] A[5] A[6] A[7] A[8] 4 A[9] Kompleksitas waktu: O(n 8 A[11] 13 17 19 23 11 12 13 17 19 21 22 23 24 B[8] B[9] B[12] B[16] 11 12 21 22 24 A[13] A[14] log n) A[16] 28 Komunikasi 29 Hypercube Broadcast P R Patern Binomial tree digunakan untuk hypercube broadcasting X S Z Q Y W Binomial Tree Y R R S X P Y Z Q P R S X W Y Z S X W Q Z P W Q 30 Hypercube Broadcast Johnsson and Ho algoritma A A C A B B A B C B A C C A B C B B C A 31 Searching pada Graph 6 5 4 Dua prosesor parallel depth search 1 7 2 3 (5) 1 (1) 9 (1) 8 (2) Graph yang di search 7 (3) 6 5 (4) 2 (6) 3 (7) 4 (2) 8 (3) 9 32 Searching pada Graph 6 5 Dua prosesor parallel breadth-depth search 4 1 7 2 3 (2) 1 (1) 9 8 Graph yang di search (3) (5) 6 7 (1) 2 3 (3) 8 (2) 4 5 (6) (4) 9 (5) 33 Searching pada Graph 6 5 Dua prosesor parallel breadth first search 4 1 7 2 3 (2) 1 (1) 9 8 Graph yang di search (3) 7 (1) 2 3 (3) 8 (4) 9 (2) 5 4 (5) 6 (6) (6) 34 Shorted Path Algorithm Distance A 0 B C D E Queue A Distance A 0 B 4 C 1 D 7 E Queue C D Distance A 0 B 3 C 1 D 7 E 8 Queue B E Distance A 0 B 3 C 1 D 6 E 8 Queue D 3 4 B A 2 1 1 D 1 E C 3 4 A 2 1 3 D B 1 E C 3 4 A 2 1 5 D B 1 E C 3 4 A 7 D B 2 1 C 1 E Distance A 0 B 4 C 1 D E Queue B C Distance A 0 B 3 C 1 D 7 E Queue D B Distance A 0 B 3 C 1 D 6 E 8 Queue E D Distance A 0 B 3 C 1 D 6 E 7 Queue E 4 A D 2 1 2 3 B 1 E C 3 4 A 2 1 4 D B 1 E C 3 4 A 2 1 6 D B 1 E C 3 4 A 8 D B 2 1 C 1 E 35 Minimum Cost Spanning Tree Algorithm - Solin 5 B 4 6 3 A 4 1 6 1 3 F 4 E 1 7 D 2 F 4 E H 1 1 3 I 2 C 5 G 1 2 5 6 3 A H 5 G 1 2 C D 7 B 4 1 I E 4 2 H 1 3 5 B 3 A D 7 2 C 5 G 1 F I E 4 1 6 3 A H 5 3 F 2 C G 1 5 B 4 I 7 D 2 36 Minimum Cost Spanning Tree Algorithm - Kruskal 1 B 7 2 B 7 8 A 8 9 3 A C 3 9 1 E D 6 1 B 7 C 3 3 E D 6 8 A 3 9 C 3 1 E D 3 6 B 7 4 B 7 8 A 3 8 9 A C 3 3 1 E D 6 9 C 3 1 E D 6 37 RESUME 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. 38
© Copyright 2026 Paperzz