algoritma PARALEL

Download Report

Transcript algoritma PARALEL

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