Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehDevi Hardja Telah diubah "7 tahun yang lalu
1
Pokok Bahasan 5 Algoritma Pemrosesan Paralel
Matakuliah : H0352/Pemrosesan Paralel Tahun : 2005 Versi : versi/01 Pokok Bahasan 5 Algoritma Pemrosesan Paralel
2
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.
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[ (n-1)] Final condition: Sum of elements stored in A[0] Gobal variables: n, A[ (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 end
4
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)
5
Interconnection network
Arsitektur PRAM Global memory Interconnection network P2 Privat memory P1 Pp Control
6
Arsitektur PRAM Komunikasi pada PRAM
7
Algoritma Model PRAM Teorema 2.1: P-Processor dengan komunikasi CRCW-PIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p). P1 P2 P3 P4 P5 M3 6 M7 9 (3,1) (3,2) (7,3) (3,4) (7,5) (3,1) (3,2) (3,4) (7,3) (7,5) T S sort
8
Algoritma Model PRAM Aktifasi prosesor
Active processor Waktu, O(log p) Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p). Aktifasi prosesor
9
Algoritma Model PRAM Penjumlah Sederetan Angka Proses ini disebut
Juga dengan Reduksi Paralel a1a2 a3 a4 . . an P0 P1 P2 P3 Angka yang akan di jumlah Proses penjumlahan oleh prosesor Konsep / gambaran:
10
Algoritma Model PRAM Penjumlah Sederetan Angka SUM (EREW PRAM)
Pseudocode: SUM (EREW PRAM) Initial condition: List of n >= 1 elements stored in A[ (n-1)] Final condition: Sum of elements stored in A[0] Gobal variables: n, A[ (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 end
11
Algoritma Model PRAM Penjumlah Sederetan Angka
Operasional untuk n = 10: 4 3 8 2 9 1 5 6 41 17 15 32 7 10 P P P P P4
12
Algoritma Model PRAM Penjumlah Sederetan Angka
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 end Penjumlah Sederetan Angka Operasional untuk n = 10: j i i mod 2j =0 2i + 2j <10 Pi operasi 1 2 3 4 0/1 0 1/1 0 2/1 0 3/1 0 4/1 0 0+1=1 2+1=3 4+1=5 6+1=7 8+1=9 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/2 0 1/2 1 2/2 0 3/2 1 4/2 0 x 0+2=2 2+2=4 4+2=6 8+2=10 16+2=18 A[0] A[0]+A[2] idle A[4] A[4]+A[6] 0/4 0 1/4 1 2/4 2 3/4 3 4/4 0 0+4=4 2+4=6 4+4=8 8+4=12 A[0] A[0]+A[4]
13
Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka
Konsep / gambaran: 4 3 8 2 9 1 5 6 7 15 17 26 27 32 38 41 22 20 12 14 34 11 10 A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]
14
Algoritma Model PRAM Penjumlah Kumulatip Sederetan Angka Pseudocode:
PREFIX.SUMS (CREW PRAM) Initial condition: List of n >= 1 elements stored in A[ (n-1)] Final condition: Each element A[i] contains A[0] A[1] . . A[i] Gobal variables: n, A[ (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 end
15
Algoritma Model PRAM Rangking dalam List 1 2 4 3 8 7 6 5 9
2 4 3 8 7 6 5 9 Konsep / bagan:
16
Algoritma Model PRAM Rangking dalam List LIST.RANKING (CREW PRAM)
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[ (n-1)], next[ (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 end
17
Algoritma Model PRAM Searching dengan DFS A B C D E F G H
18
Algoritma Model PRAM Searching dengan DFS 8 E F G H A B C D
1 (D, B) (E, G) (E, H) (E, B) (A, C) (F, C) (B, D) (B, E) (G, E) (H, E) (B, A) (C, F) (C, A) 7 5 4 3 2 6 8 E F G H A B C D Posisi = (n +1) - label node B Label = 7 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 Searching dengan DFS
19
Algoritma Model PRAM Penggabungan
Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut. A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
20
? Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19
dimana posisinya? Penggabungan A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 ? B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
21
Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19
dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
22
11 < 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19
dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 11 < 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
23
11 < 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19
dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 11 < 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
24
21 > 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19
dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 21 > 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
25
21 > 19 Algoritma Model PRAM Penggabungan Ambil contoh A[7] = 19
dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 21 > 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16]
26
12 < 19 Algoritma Model PRAM Penggabungan Index A[7] = 13
Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 12 < 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16] Index A[7] = 13
27
12 < 19 Algoritma Model PRAM Penggabungan Posisi A[7]:
Ambil contoh A[7] = 19 dimana posisinya? Penggabungan Menggunakan BST (Binary Search Tree) A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 12 < 19 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] Posisi A[7]: = 12 sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16] Index A[7] = 13
28
Kompleksitas waktu: O(n log n)
Algoritma Model PRAM Penggabungan A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] sorted 13 17 19 23 1 5 7 9 sorted 7 8 9 11 1 2 4 5 21 22 23 24 12 13 17 19 B[1] B[4] B[6] B[8] B[9] B[12] B[16] sorted 12 21 22 24 2 4 8 11 A[9] A[11] A[13] A[14] A[16] Kompleksitas waktu: O(n log n)
29
Komunikasi
30
Patern Binomial tree digunakan untuk hypercube broadcasting
Q S X Y W Z Binomial Tree Patern Binomial tree digunakan untuk hypercube broadcasting
31
Johnsson and Ho algoritma
Hypercube Broadcast Johnsson and Ho algoritma B C A A B C C A B
32
Dua prosesor parallel depth search
Searching pada Graph 8 9 7 2 1 4 3 5 6 Dua prosesor parallel depth search 8 9 7 2 1 4 3 5 6 (1) (2) (3) (4) (5) (6) (7) Graph yang di search
33
Searching pada Graph Dua prosesor parallel breadth-depth search
8 9 7 2 1 4 3 5 6 Dua prosesor parallel breadth-depth search 8 9 7 2 1 4 3 5 6 (1) (2) (3) (4) (5) (6) Graph yang di search
34
Searching pada Graph Dua prosesor parallel breadth first search
8 9 7 2 1 4 3 5 6 8 9 7 2 1 4 3 5 6 (1) (2) (3) (4) (5) (6) Graph yang di search
35
Shorted Path Algorithm
C B 4 1 2 3 Distance Queue A B B C C D E A A B C A D B B D A C B D A E B D D E B E B E 5 7 6 8
36
Minimum Cost Spanning Tree Algorithm - Solin
4 1 2 3 E A D C B F H G I 7 5 6
37
Minimum Cost Spanning Tree Algorithm - Kruskal
7 3 E A B D C 6 1 9 8 2 4
38
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.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.