Date post: | 22-Aug-2014 |
Category: | Documents |
View: | 186 times |
Download: | 3 times |
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 algoritmaGraph, flowchart, atau diagram yang merupakan ide dasar untuk memecahkan problem.Kumpulan statemen yang dapat mewakili konsep/gambaran yang dibuat. Contoh statemen tsb adalah:
ProblemKonsep / gambaran
PseudocodeSUM (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() adalah statemen untuk mengaktipkan prosesor yang dipakai.for all do 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
P1Privat memory
P2Privat memory
PpPrivat memory
Interconnection network
Global memory
5
Arsitektur PRAMKomunikasi pada PRAM
6
Algoritma Model PRAMP1 P2 P3 P4 P5 6 2 9 3 7T
(3,1) (3,2) (7,3) (3,4) (7,5) sort
P1 P2 P3 P4 P5 6 2 9 3 7T
P1 P2 P3 P4 P5 6 2 9 3 7
(3,1) (3,2) (3,4) (7,3) (7,5)
M3 6
M7 9S
M31 0 1 0 0
M79
6
Teorema 2.1: P-Processor dengan komunikasi CRCWPIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p).7
Algoritma Model PRAMAktifasi prosesor Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p).
Waktu, O(log p)
Active processor8
Algoritma Model PRAMPenjumlah Sederetan AngkaKonsep / gambaran:
Proses ini disebut Juga dengan Reduksi Paralel a1a2 a3 a4 . . an
P0 P0 P2 Proses penjumlahan oleh prosesor
P0
P1
P2
P3
Angka yang akan di jumlah
9
Algoritma Model PRAMPenjumlah Sederetan AngkaPseudocode:
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 PRAMPenjumlah Sederetan AngkaOperasional untuk n = 10:P0 4 3 8 P1 2 9 P2 1 0 P3 5 6 P4 3
7
10
10
5
9
17
15
32
41 11
Algoritma Model PRAMbegin 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=10 0 0 0 1 1 1 1 1 2 2 2 2 2 1 2 3 4 0 1 2 3 4 0 1 2 3 4 1/1 0 2/1 0 3/1 0 4/1 0 0/2 0 1/2 1 2/2 0 3/2 1 4/2 0 0/4 0 1/4 1 2/4 2 3/4 3 4/4 0 x x x x x 2+1=3 4+1=5 6+1=7 8+1=9 0+2=2 2+2=4 4+2=6 8+2=10 16+2=18 0+4=4 2+4=6 4+4=8 8+4=12 16+2=18
Sederetan AngkaOperasional untuk n = 10:
= 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 end14
Algoritma Model PRAM Rangking dalam ListKonsep / 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
3
2
1
0
15
Algoritma Model PRAM Rangking dalam ListPseudocode:
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 doposition[i] position[i] + position[ next[i]] next[i] next[next[i]] endfor
endfor end
16
Algoritma Model PRAMSearching dengan DFS
A
A
B
C F E D G H
B
C F E
D
G
H
17
Algoritma Model PRAMSearching dengan DFS(A, B) 7
node B Label = 7
(A, B) 1
(D, B) 0
(E, G) 1
(E, H) 1
(E, B) 0
(A, C) 1
(F, C) 0
(B, D) 1
(B, E) 1
(G, E) 0
(H, E) 0
(B, A) 0
(C, F) 1
(C, A) 0
Posisi = (n +1) - label n = jumlah node B=97=2 D=96=3 E=95=4 G=94=5 H=93=6 C=92=7 F=91=8(A, B) 7 (D, B) 5 (E, G) 4
(E, H) 3
(E, B) 2
(A, C) 2
(F, C) 0
(B, D) 6
(B, E) 5
(G, E) 3
(H, E) 2
(B, A) 2
(C, F) 1
(C, A) 0
A 1
B 2
C D E 7 3 4
F G H 8 5 618
Algoritma Model PRAMPenggabunganA[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
sorted
1
5
7
9
13 17 19 23
Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut.
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
19
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
sorted
1
5
7
9
13 17 19 23
?
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
20
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
21
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
11 < 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
22
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
11 < 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
23
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
21 > 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
24
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
21 > 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
25
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
12 < 19
B[1]
B[4]
B[6]
B[8]
B[9]
B[12]
B[16]
sorted
2A[9]
4
8A[11]
11 12 21 22 24A[13] A[14] A[16]
Index A[7] = 13
26
Algoritma Model PRAMPenggabunganAmbil contoh A[7] = 19 dimana posisinya?A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Menggunakan BST (Binary Search Tree)
sorted
1
5
7
9
13 17 19 23
12