Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pokok Bahasan 5 Algoritma Pemrosesan Paralel

Presentasi serupa


Presentasi berjudul: "Pokok Bahasan 5 Algoritma Pemrosesan Paralel"— Transcript presentasi:

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 a1a2  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.


Download ppt "Pokok Bahasan 5 Algoritma Pemrosesan Paralel"

Presentasi serupa


Iklan oleh Google