1 / 38

Pokok Bahasan 5 Algoritma Pemrosesan Paralel

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

gretel
Download Presentation

Pokok Bahasan 5 Algoritma Pemrosesan Paralel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pokok Bahasan 5Algoritma Pemrosesan Paralel Matakuliah : H0352/Pemrosesan Paralel Tahun : 2005 Versi : versi/01

  2. 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

  3. 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

  4. 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)

  5. Control Pp Privat memory Interconnection network Global memory P2 P1 Privat memory Privat memory Arsitektur PRAM

  6. Komunikasi pada PRAM Arsitektur PRAM

  7. 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

  8. Aktifasi prosesor Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p). Waktu, O(log p) Active processor Algoritma Model PRAM

  9. Penjumlah Sederetan Angka Proses ini disebut Juga dengan Reduksi Paralel a1a2  a3a4 . . an Konsep / gambaran: Proses penjumlahan oleh prosesor P0 P0 P2 Angka yang akan di jumlah P0 P1 P2 P3 Algoritma Model PRAM

  10. 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

  11. 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:

  12. 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:

  13. 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:

  14. 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

  15. 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

  16. 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

  17. Searching dengan DFS A A B B C C F F E E D D H H G G Algoritma Model PRAM

  18. 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

  19. 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]

  20. 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]

  21. 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]

  22. 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]

  23. 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]

  24. 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]

  25. 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]

  26. 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

  27. 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

  28. 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)

  29. Komunikasi

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

More Related