Algoritma Paralel

download

of 38

  • date post

    22-Aug-2014
  • Category

    Documents
  • view

    108
  • download

    2

Embed Size (px)

transcript

<p>Matakuliah Tahun Versi</p> <p>: H0352/Pemrosesan Paralel : 2005 : versi/01</p> <p>Pokok Bahasan 5</p> <p>Algoritma Pemrosesan Paralel</p> <p>1</p> <p>Learning Outcomes</p> <p>Pada akhir pertemuan ini diharapkan mahasiswa akan dapat:</p> <p> menggunakan konsep kerja algoritma dalam pemrosesan paralel menunjukkan beberapa algoritma paralel sederhana menggunakan teori graph.</p> <p>2</p> <p>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:</p> <p>ProblemKonsep / gambaran</p> <p>PseudocodeSUM (EREW PRAM) Initial condition: List of n &gt;= 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 &lt; n then A[2i] A[2i] + A[2i + 2j] endif endfor endfor end</p> <p>Spawn() adalah statemen untuk mengaktipkan prosesor yang dipakai.for all do endfor if . . . then . . . else . . . endif while . . . endwhile</p> <p>3</p> <p>Abstract Machine Models</p> <p>Ada beberapa model untuk abstract machine models, sebagai contoh:</p> <p>PRAM : Parallel Random Access Machine BSP : Bulk Synchronous Parallel PPM : Phase Parallel Model</p> <p>(Dalam kuliah ini hanya PRAM yang akan dibahas)</p> <p>4</p> <p>Arsitektur PRAM</p> <p>Control</p> <p>P1Privat memory</p> <p>P2Privat memory</p> <p>PpPrivat memory</p> <p>Interconnection network</p> <p>Global memory</p> <p>5</p> <p>Arsitektur PRAMKomunikasi pada PRAM</p> <p>6</p> <p>Algoritma Model PRAMP1 P2 P3 P4 P5 6 2 9 3 7T</p> <p>(3,1) (3,2) (7,3) (3,4) (7,5) sort</p> <p>P1 P2 P3 P4 P5 6 2 9 3 7T</p> <p>P1 P2 P3 P4 P5 6 2 9 3 7</p> <p>(3,1) (3,2) (3,4) (7,3) (7,5)</p> <p>M3 6</p> <p>M7 9S</p> <p>M31 0 1 0 0</p> <p>M79</p> <p>6</p> <p>Teorema 2.1: P-Processor dengan komunikasi CRCWPIORITY dapat disimulasikan menggunakan p-processor EREW dengan kompleksitas bertambah O(log p).7</p> <p>Algoritma Model PRAMAktifasi prosesor Untuk megaktipkan (menghidupkan) prosesor dalam model PRAM diperlukan O(log p).</p> <p>Waktu, O(log p)</p> <p>Active processor8</p> <p>Algoritma Model PRAMPenjumlah Sederetan AngkaKonsep / gambaran:</p> <p>Proses ini disebut Juga dengan Reduksi Paralel a1a2 a3 a4 . . an</p> <p>P0 P0 P2 Proses penjumlahan oleh prosesor</p> <p>P0</p> <p>P1</p> <p>P2</p> <p>P3</p> <p>Angka yang akan di jumlah</p> <p>9</p> <p>Algoritma Model PRAMPenjumlah Sederetan AngkaPseudocode:</p> <p>SUM (EREW PRAM) Initial condition: List of n &gt;= 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 &lt; n then A[2i] A[2i] + A[2i + 2j] endif endfor endfor 10 end</p> <p>Algoritma Model PRAMPenjumlah Sederetan AngkaOperasional untuk n = 10:P0 4 3 8 P1 2 9 P2 1 0 P3 5 6 P4 3</p> <p>7</p> <p>10</p> <p>10</p> <p>5</p> <p>9</p> <p>17</p> <p>15</p> <p>32</p> <p>41 11</p> <p>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 &lt; 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</p> <p>Sederetan AngkaOperasional untuk n = 10:</p> <p>= 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</p> <p>Algoritma Model PRAM Rangking dalam ListKonsep / bagan: 1 1 1 1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>1</p> <p>0</p> <p>2</p> <p>2</p> <p>2</p> <p>2</p> <p>2</p> <p>2</p> <p>2</p> <p>2</p> <p>1</p> <p>0</p> <p>4</p> <p>4</p> <p>4</p> <p>4</p> <p>4</p> <p>4</p> <p>3</p> <p>2</p> <p>1</p> <p>0</p> <p>8</p> <p>8</p> <p>7</p> <p>6</p> <p>5</p> <p>4</p> <p>3</p> <p>2</p> <p>1</p> <p>0</p> <p>9</p> <p>8</p> <p>7</p> <p>6</p> <p>5</p> <p>4</p> <p>3</p> <p>2</p> <p>1</p> <p>0</p> <p>15</p> <p>Algoritma Model PRAM Rangking dalam ListPseudocode:</p> <p>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</p> <p>endfor end</p> <p>16</p> <p>Algoritma Model PRAMSearching dengan DFS</p> <p>A</p> <p>A</p> <p>B</p> <p>C F E D G H</p> <p>B</p> <p>C F E</p> <p>D</p> <p>G</p> <p>H</p> <p>17</p> <p>Algoritma Model PRAMSearching dengan DFS(A, B) 7</p> <p>node B Label = 7</p> <p>(A, B) 1</p> <p>(D, B) 0</p> <p>(E, G) 1</p> <p>(E, H) 1</p> <p>(E, B) 0</p> <p>(A, C) 1</p> <p>(F, C) 0</p> <p>(B, D) 1</p> <p>(B, E) 1</p> <p>(G, E) 0</p> <p>(H, E) 0</p> <p>(B, A) 0</p> <p>(C, F) 1</p> <p>(C, A) 0</p> <p>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</p> <p>(E, H) 3</p> <p>(E, B) 2</p> <p>(A, C) 2</p> <p>(F, C) 0</p> <p>(B, D) 6</p> <p>(B, E) 5</p> <p>(G, E) 3</p> <p>(H, E) 2</p> <p>(B, A) 2</p> <p>(C, F) 1</p> <p>(C, A) 0</p> <p>A 1</p> <p>B 2</p> <p>C D E 7 3 4</p> <p>F G H 8 5 618</p> <p>Algoritma Model PRAMPenggabunganA[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>Akan dilakukan penggabungan dua set bilangan yang urut, sehingga hasil gabungan juga urut.</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>19</p> <p>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]</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>?</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>20</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>21</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>11 &lt; 19</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>22</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>11 &lt; 19</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>23</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>21 &gt; 19</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>24</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>21 &gt; 19</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>25</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>12 &lt; 19</p> <p>B[1]</p> <p>B[4]</p> <p>B[6]</p> <p>B[8]</p> <p>B[9]</p> <p>B[12]</p> <p>B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>Index A[7] = 13</p> <p>26</p> <p>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]</p> <p>Menggunakan BST (Binary Search Tree)</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>12 &lt; 19</p> <p>19B[1] B[4] B[6] B[8] B[9] B[12] B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>Posisi A[7]: 13 +7 - 8 = 1227</p> <p>Index A[7] = 13</p> <p>Algoritma Model PRAMPenggabunganA[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]</p> <p>sorted</p> <p>1</p> <p>5</p> <p>7</p> <p>9</p> <p>13 17 19 23</p> <p>sorted</p> <p>1B[1]</p> <p>2</p> <p>4</p> <p>5B[4]</p> <p>7</p> <p>8B[6]</p> <p>9</p> <p>11 12 13 17 19 21 22 23 24B[8] B[9] B[12] B[16]</p> <p>sorted</p> <p>2A[9]</p> <p>4</p> <p>8A[11]</p> <p>11 12 21 22 24A[13] A[14] A[16]</p> <p>Kompleksitas waktu: O(n</p> <p>log n)</p> <p>28</p> <p>Komunikasi</p> <p>29</p> <p>Hypercube BroadcastP</p> <p>Patern Binomial tree digunakan untuk hypercube broadcasting</p> <p>R S Z Y W Q</p> <p>X</p> <p>Binomial Tree</p> <p>YR S</p> <p>Z R</p> <p>YS</p> <p>Z R</p> <p>YS</p> <p>Z</p> <p>X P Q</p> <p>W P</p> <p>X Q</p> <p>W P</p> <p>X Q</p> <p>W</p> <p>30</p> <p>Hypercube Broadcast</p> <p>Johnsson and Ho algoritma</p> <p>A A C A B A B C C A B B C B C A A B C B</p> <p>31</p> <p>Searching pada Graph</p> <p>6</p> <p>5 1</p> <p>4</p> <p>Dua prosesor parallel depth search(5) (1)</p> <p>7</p> <p>2</p> <p>3 1(1) (2) (7)</p> <p>9</p> <p>8 7(3)</p> <p>2(6) (2)</p> <p>3</p> <p>4</p> <p>Graph yang di search6 5(4)</p> <p>(3)</p> <p>8 9</p> <p>32</p> <p>Searching pada Graph</p> <p>6</p> <p>5 1</p> <p>4</p> <p>Dua prosesor parallel breadth-depth search(2) (1)</p> <p>7</p> <p>2</p> <p>3 1(1)</p> <p>(2)</p> <p>5(6)</p> <p>9</p> <p>8(5)</p> <p>(3)</p> <p>2 3(3) (4)</p> <p>4</p> <p>Graph yang di search</p> <p>7</p> <p>6</p> <p>8</p> <p>9(5)</p> <p>33</p> <p>Searching pada Graph</p> <p>6</p> <p>5 1</p> <p>4</p> <p>Dua prosesor parallel breadth first search(2) (1)</p> <p>7</p> <p>2</p> <p>3 1(1)</p> <p>(2)</p> <p>5(5)</p> <p>9</p> <p>8</p> <p>(3)</p> <p>2 3(3) (4)</p> <p>4</p> <p>Graph yang di search</p> <p>7</p> <p>6(6)</p> <p>8</p> <p>9(6)</p> <p>34</p> <p>Shorted Path AlgorithmDistance A 0 B C D E Distance A 0 B 4 C 1 D 7 E Distance A 0 B 3 C 1 D 7 E 8 Distance A 0 B 3 C 1 D 6 E 8 Queue A 3 4</p> <p>B2 1</p> <p>D</p> <p>A</p> <p>1Queue C D</p> <p>1</p> <p>C3</p> <p>E</p> <p>Distance A 0 B 4 C 1 D E Distance A 0 B 3 C 1 D 7 E Distance A 0 B 3 C 1 D 6 E 8 Distance A 0 B 3 C 1 D 6 E 7</p> <p>Queue B C</p> <p>4</p> <p>B2</p> <p>3 1</p> <p>D</p> <p>A1</p> <p>2Queue D B</p> <p>C3</p> <p>E D2 1</p> <p>4</p> <p>B2 1</p> <p>D</p> <p>4</p> <p>B</p> <p>A</p> <p>A</p> <p>3Queue B E</p> <p>1</p> <p>C3</p> <p>E</p> <p>4Queue E D</p> <p>1</p> <p>C3</p> <p>E</p> <p>4</p> <p>B2 1</p> <p>D</p> <p>4</p> <p>B2 1</p> <p>D</p> <p>A</p> <p>A</p> <p>5Queue D</p> <p>1</p> <p>C3</p> <p>E</p> <p>6Queue E</p> <p>1</p> <p>C3</p> <p>E</p> <p>4</p> <p>B2 1</p> <p>D</p> <p>4</p> <p>B2 1</p> <p>D</p> <p>A</p> <p>A</p> <p>7</p> <p>1</p> <p>C</p> <p>E</p> <p>8</p> <p>1</p> <p>C</p> <p>E 35</p> <p>Minimum Cost Spanning Tree Algorithm - Solin</p> <p>4</p> <p>B3 6</p> <p>5</p> <p>4</p> <p>B3 6</p> <p>5</p> <p>A1</p> <p>C5 1</p> <p>2</p> <p>H1 1</p> <p>A</p> <p>C5 1</p> <p>2</p> <p>H1</p> <p>G3</p> <p>G3</p> <p>F4</p> <p>E</p> <p>I7</p> <p>F4</p> <p>D</p> <p>2</p> <p>E</p> <p>I7</p> <p>D</p> <p>2</p> <p>4</p> <p>B3 6</p> <p>5</p> <p>4</p> <p>B3 6</p> <p>5</p> <p>A1</p> <p>C51</p> <p>2</p> <p>H1 1</p> <p>A</p> <p>C51</p> <p>2</p> <p>H1</p> <p>G3</p> <p>G3</p> <p>F4</p> <p>E</p> <p>I7</p> <p>F4</p> <p>D</p> <p>2</p> <p>E</p> <p>I7</p> <p>D</p> <p>2 36</p> <p>Minimum Cost Spanning Tree Algorithm - Kruskal</p> <p>1A3</p> <p>7</p> <p>B8 9 3</p> <p>2A3</p> <p>7</p> <p>B8 9 3</p> <p>C1</p> <p>C1</p> <p>D6</p> <p>E A3</p> <p>7</p> <p>B8 9 3</p> <p>D6</p> <p>E</p> <p>C1</p> <p>D</p> <p>E6</p> <p>3A3</p> <p>7</p> <p>B8 9 3</p> <p>4A3</p> <p>7</p> <p>B8 9 3</p> <p>C1</p> <p>C1</p> <p>D6</p> <p>E</p> <p>D6 37</p> <p>E</p> <p>RESUMETelah dibahas:</p> <p> Konsep pembuatan algoritma secara umum, arsitektur PRAM, dan algoritma untuk model PRAM Contoh-contoh algoritma untuk PRAM: Rangking dalam list Searching dengan DFS Penggabungan</p> <p> 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</p>