Algoritma Paralel

download

of 38

  • date post

    22-Aug-2014
  • Category

    Documents
  • view

    116
  • download

    2

Embed Size (px)

transcript

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