Algoritma paralel dibangun untuk mentransformasikan matriks A menjadi A

III. REDUKSI GANJIL-GENAP/REDUKSI SIKLIS

3.1. Algoritma Sequensial Contoh 9.2

  Selesaikan sistem persamaan berikut : 16 + 4 = 8

  x x

  1

  2

  4 + 11 − 5 = 7

  x x x

  1

  2

  3

  2 x + 14 x − 6 x = 13

  2

  3

  4

  5 + 18 = 24

  x x

  3

4 Jawab

  T

  Vektor x = [ x x x x ] diperoleh melalui prosedur berikut :

  1

  2

  3

  4

  1. eliminasi x pada persamaan kedua dengan meng-gunakan persamaan pertama

  1

  sehingga diperoleh : 16 + 4 = 8

  x x

  1

  2

  10 x − 5 x = 5

  2

  3

  2 x + 14 x − 6 x = 13

  2

  3

  4

  5 + 18 = 24

  x x

  3

  4

  2. ulangi langkah (1) untuk pada persamaan ketiga dan pada persamaan

  x x

  2

  3

  keempat. Hasilnya adalah : 16 + 4 = 8

  x x

  1

  2

  10 x − 5 x = 5

  2

  3

  15 = 12

  x − 6 x

  3

  4

  20 =

  20

  x

  4 3. selesaikan persamaan terakhir, dimulai dari penyelesaian x pada persamaan keempat.

  4 Dengan cara ini maka diperoleh : T T x = [ x x x x ] = [0.225 1.100 1.200 1.000]

  1

  2

  3

4 Sistem di atas dapat dituliskan sebagai A x = b, dimana :

  A =

  1

  3

  3

  2

  2

  2

  1

  1 g f h g f h g f h g

  , A

  (1)

  = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤

  ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡

  ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

  1

  4

  

4

  4

  1

  tridiagonal yang saling lepas sehingga penyelesaian kedua bagian vektor x dapat dilakukan secara serempak.

  (1) adalah hasil transformasi dari matriks A. Matriks A (1) terdiri dari dua matriks

  Matriks A

  1 g f h g g f h g

  1

  1

  2

  1

  1

  2

  1

  

3

  1

  3

  3

  4

  16

  5

  7

  8

  = matriks tridiagonal, b =

  ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥

  ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢

  18 − −

  6

  24

  14

  2

  5

  11

  4

  4

  13

  ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢

  ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡

  ← b[1] / g[1] 11. end

  ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤

  A=

  Perhatikan dua matriks berikut :

  3.2. Potensi Paralelisasi

  Θ(n).

  Algoritma 9.3. mengandung 2 loop masing-masing dengan n1 iterasi. Setiap iterasi memerlukan waktu yang tetap. Kompleksitas algoritma dengan demikian adalah

  ← b[i+1] − (f[i+1] / g[i]) x b[i] 5. endfor 6. for in downto 2 do 7. x[i] ← b[i] / g[i] 8. b[i1] ← b[i1] − x[i] x h[i1] 9. endfor 10. x[1]

  ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥

  ← g[i+1] − (f[i+1] / g[i]) x h[i] 4. b[i+1]

  1. begin 2. for i1 to n1 do 3. g[i+1]

  

b [1.. n] {elemen vektor b}

x [1.. n] {elemen vektor x}

  Global n {ukuran sistem} f[2.. n], g[1.. n], h[1..( n -1)] {elemen matriks A}

  Algoritma 9.3. TRIDIAGONAL.SYSTEM.SOLVER (SISD) :

  Untuk sistem tridiagonal berukuran n prosedur di atas dapat digeneralisasi menjadi algoritma sekuensial berikut :

  3.3. Algoritma Paralel

  (1)

  Algoritma paralel dibangun untuk mentransformasikan matriks A menjadi A . Pola umum struktur matriks tridiagonal berukuran n adalah :

  g x h x = b +

  1

  1

  1

  2

  1

  • =

  2 f x g x h x bin-1 (9.4)

  −

  1

  • i i i i i i i

  1 f x g x + = b n n n n n

1 Untuk 3

  ≤ in-2, persamaan (i-1), (i), dan (i+1) adalah :

  =

  f x g x h x b i i

  1 i2 i1 i1 i1 i

  1

  f x g x h x b

  i i

  = i

  i i

  −

  1

  • i i

  1 f x g x h x = b + + i i

  1 i

  1 i 1 i 1 i 2 i

  1 Dari persamaan (i-1) dan (i+1) dapat diperoleh : x = (1/ g )( b f x h x - ) - (9.4a) i i

  1 i1 i1 i1 i2 i

  1 x = (1/ g b f x h x ) (9.4b) - - )( i i i i

  1

  1 1 i

  1 i 1 i

  

2

Substitusi kedua persamaan ke persamaan (i) akan menghasilkan : ( 1 ) ( 1 ) ( 1 ) ( 1 ) f x g x h x + = b +

  (9.5)

  2 i

  • i i i i i i

  2

  dimana :

  ( ) ( ) ( ) ( ) ( )

  1

  1

  1

  1

  1 f = f , g = g h f

  • (9.6a) +

  α α β

  1 i1 i

  • i i i i i i i

  1 ( 1 ) ( 1 ) ( 1 ) ( 1 ) ( 1 ) h = β h , b b α b β b (9.6b)

  i i i i i

  = i

  1 f h i i ( ) ( )

  i 1 i1 i

  1

  1

  = − , = − (9.6c)

  α β i i g g

  − + i

  1 i

  

1

( ) ( ) ( ) ( ) ( ) ( )

  1

  1

  1

  1

  1

  1 Persamaan (9.6) juga berlaku untuk : , f , , , , , f g g h h n 1 -

  2 n - n

  1

  1

  2

  kecuali untuk :

  ( 1 ) ( 1 ) ( 1 ) ( 1 )

  = dan + = (9.6d) +

  g g β f g g α h n n n n

  1

  1

  1

2

  1 ( ) ( ) ( ) ( )

  1

  1

  1

  1

  = dan (9.6e)

  b b β b b b α b

  n n

  = n

  1

  1

  1 2 n

  1 (1) (1)

  Ungkapan matriks persamaan (9.5) adalah A x = b yang merupakan transformasi dari

  Ax = b dimana :

  A (1)

  1

  1 x

  = [ x

  x

  (9.8a)

  Ο Ο Ο Ο

  Ο Ο Ο Ο

  1 f h f h g f h g g f h f h g f h g

  1

  1

  …

  3

  1

  3

  1

  3

  1

  5

  1

  3

  1 - n x x

  1 1 - n 1 1 - n

  3 ) ( b

  T

  ]

  1 n

  4 ) ( b

  1

  2 ) (

b

  1

  1 1 - n ) ( b

  1

  2 x

  1 ) ( b

  1

  ) ( b

  = [

  b (1)

  (9.8b)

  x ] T

  n

  4

  1 3 - n

  2

  = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤

  3

  1 f g h f g f h g h g

  1

  1

  1

  2

  1

  2

  1

  1

  (9.7) Persamaan A

  3

  1

  4

  1

  1 1 - n 1

2 - n

  1

n

1 n

  ) ( ) ( ) ( ) ( g

  ) ( ) ( ) ( ) ( ) ( ) ( ) (

  ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡

  Ο Ο Ο Ο Ο Ο Ο

  (1) x = b (1) dapat disusun ulang menjadi

  1

  6

  2

  

1

  4

  1

  4

  

1

  4

  1

  

1

  A (1) x = b (1)

  1 2 - n

  1 n 1 n

  ) ( ) ( ) ( ) ( ) ( ) ( g

  

) (

) ( ) ( ) ( ) (

  ) ( ) ( ) (

) (

) ( ) ( ) (

  ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡

  ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤

  A (1) =

  , dimana

  (9.8c) Berdasarkan pembahasan di atas maka dapat disusun sebuah algoritma seperti berikut di bawah ini.

  Algoritma 9.4. CYCLIC.REDUCTION(SIMD) :

  Global n {ukuran sistem}

   f [2.. n], g[1.. n], h[1..( n -1)] {elemen A} b [1.. n] {elemen b} ( ) ( ) ( )

  1

  1 1 (1) f [3.. n], g [1.. n], h [1..( n -2)] {elemen A }

  ( 1 ) (1) b [1.. n] {elemen b } p {# proses}

  ( ) ( )

  1

  1

  α [2.. n], β [1..( n -1)] {faktor skala} x[1.. n] {elemen vektor x} 1. begin 2. for i

  ← 1 to n1 do

  ( 1 )

  3. α [i+1] ← -f[i+1] / g[i]

  ( )

  1

  4. [i] β ← - h[i]/ g[i+1]

  5. endfor 6. for i

  ← 2 to n1 do

  ( 1 ) ( 1 )

  7. f [i+1] ← α [i+1] × f[i]

  ( ) ( ) ( )

  1

  1

  1

  8. g [i] [i] [i] ← g[i] + α × h[i-1] + β × f[i+1]

  ( 1 ) ( 1 )

  9. h [i-1] ← β [i-1] × h[i]

  ( ) ( ) ( )

  1

  1

  1

  10. b [i] [i] [i] ← b[i] + α × b[i-1] + β × b[i+1]

  11. endfor

  ( 1 ) ( 1 )

  12. g [1] ← g[1] + β [1] × f[2]

  ( ) ( )

  1

  1

  13. g [n] [n] ← g[n] + α × h[n -1]

  ( 1 ) ( 1 )

  14. b [1] ← b[i] + β [1] × b[2]

  ( ) ( )

  1

  1

  15. b [n] ← b[n] + α [n] × b[n -1] 16. forall P[j] where 1

  ≤ j ≤ 2 do 17. for i

  ← 2 to n1 step 2 do

  ( ) ( )

  1

  1

  18. g [i+j] ← g [i+j]

  ( ) ( ) ( )

  1

  1

  1

  [i+j) / g [i+j-2]) x h [i+j-2] − (f

  ( 1 ) ( 1 )

  19. b [i+j] ← b [i+j]

  ( ) ( ) ( )

  1

  1

  1

  [i+j) / g [i+j-2]) x b [i+j-2] − (f

  20. endfor 21. for i

  ← n-2+j downto j+1 do step 2

  ( ) ( )

  1

  1

  22. x[i] ← b [i] / g [i]

  ( ) ( ) ( )

  1

  1

  1

  23. b [i [i [i 2] ← b 2] − x[i] x h 2]

  24. endfor

  ( 1 ) ( 1 )

  25. x[j] ← b [j] / g [j] 26. endfor 27. end Algoritma 9.4. terdiri dari 4 loop masing-masing dengan kompleksitas algoritma Θ(n).

  Berikut ini adalah tracing penerapan algoritma 9.4. terhadap sistem persamaan pada contoh 9.2. :

  looping 2-5 : ( 1 ) i = 1 : α [2] = -f[2] / g[1] = -4/16 = -1/4

  ( )

  1

  [1] = - h[1] / g[2] = -4/11 β

  ( 1 ) i = 2 : α [3] = -f[3] / g[2] = -2/11

  ( )

  1

  [2] = - h[2] / g[3] = 5/14 β

  ( 1 ) i = 3 : α [4] = -f[4] / g[3] = -5/14

  ( )

  1

  [3] = - h[3] / g[4] = 6/18 = 1/3 β

  looping 6 – 11 : ( 1 ) ( 1 ) i = 2 : f [3] = α [3] × f [2] = -2/11 × 4 = -8/11

  ( ) ( ) ( )

  1

  1

  1 g [2] = g[2] + α [2] × h[1] + β [2] × f[3]

  = 11 – 1/4 × 4 + 5/14 × 2 = 75/7

  ( 1 ) ( 1 ) h [1] = β [1] × h[2] = -4/11 × (-5) = 20/11

  ( ) ( ) ( )

  1

  1

  1 b [2] = b[2] + [2] [2]

  α × b[1] + β × b[3]

   = 7 – 1/4

  × 8 + 5/14 × 13 = 135/14

  ( 1 ) ( 1 ) i = 3 : f [4] = α [4] × f [3] = -5/14 × 2 = -5/7

  ( ) ( ) ( )

  1

  1

  1 g [3] = g[3] + [3] [3]

  α × h[2] + β × f[4] = 14 – 2/11

  × (-5)+ 1/3 × 5 = 547/33

  ( ) ( )

  1

  1 h [2] = β [2] × h[3] = 5/14 × (-6) = -15/7

  ( ) ( ) ( )

  1

  1

  1 b [3] = b[3] + [3] [3]

  α × b[2] + β × b[4]

   = 13 – 2/11 × 7 + 1/3 × 24 = 217/11 baris 12-15 : ( ) ( )

  1

  1 g [1] = g[1] + β [1] × f[2] = 16 – 4/11 × 4 = 160/11

  ( 1 ) ( 1 ) g [4] = g[4] + α [4] × h[3] = 18 – 5/14 × (-6) = 141/7

  ( ) ( )

  1

  1 b [1] = b[1] + β [1] × b[2] = 8 – 4/11 × 7 = 60/11

  ( 1 ) ( 1 ) b [4] = b[4] + [4]

  α × b[3] = 24 – 5/14 × 13 = 271/14

  Sampai tahap ini terbentuk matriks dan vektor berikut :

  60

  ⎡ ⎤

  160

  20

  ⎡ ⎤

  ( ) ( ) ( )

  1

  1

  1

  ⎡ ⎤ ⎡ ⎤ ⎢ ⎥

  g h b

  11

  ⎢ ⎥

  11

  11

  1

  1

  1

  ⎢ ⎥ ⎢ ⎥ ⎢ ⎥

  217

  ⎢ −

  8 547( 1 ) ( 1 )

  ( 1 )

  ⎢ ⎥ ⎢ ⎥

  f g b ⎢ ⎥

  3 3 ⎢ ⎥

  3

  11

  33

  11

  = , = ⎢ ⎥ ⎢ ⎥

  ⎢ ⎥ ⎢ ⎥

  ( 1 ) ( 1 ) ( 1 )

75

15 135

  ⎢ ⎥ ⎢ ⎥

  g h b

  ⎢ ⎥

  2

  2

  2

  ⎢ ⎥

  7

  7

  14

  ⎢ ⎥ ⎢ ⎥ ⎢ ⎥

  ( 1 ) ( 1 ) ( 1 )

  ⎢ ⎥ −

  5 141 271 f g b

  ⎢ ⎥ ⎢ ⎥

  4

  4 4 ⎢ ⎥

  ⎣ ⎦ ⎣ ⎦ ⎢ ⎥ ⎣

  7 7

  ⎣

  14looping paralel 16 – 28, j = 1 : sublooping 17-20

  ( ) ( ) ( ) ( ) ( )

  1

  1

  1

  

1

  1 i = 2 : g [3] = g [3](f [3] / g [1]) [1]

  × h = (547/33) – ((-8/11) / (160/11))

  × 20/11 = 550/33

  ( ) ( ) ( ) ( ) ( )

  1

  1

  1

  

1

  1 b [3] = b [3](f [3] / g [1]) × b [1]

  = (217/11) – ((-8/11) / (160/11)) × 60/11 = 220/11

  sublooping 21-24 i = 3 x [3] = b[3] / g[3] = (220/11) / (550/33) = 1.200 b [1] = b[1] - x[3] × h[1] = 60/11 – 1.200 × 20/11 = 36/11 instruksi 25 : x [1] = b[1] / g[1] = (36/11) / (160/11) = 0.225 looping paralel 16 – 28, j = 2 : sublooping 17-20

  ( 1 ) ( 1 ) ( 1 ) ( 1 ) ( 1 ) i = 2 : g [4] = g [4](f [4] / g [2]) × h [2]

  = (141/7) – ((-5/7) / (75/7)) × (-15/7) = 20

  ( ) ( ) ( ) ( ) ( )

  1

  1

  1

  

1

  1 b [4] = b [4](f [4] / g [2]) [2]

  × b = (271/14) – ((-5/7) / (75/7))

  × 135/14 = 20

  sublooping 21-24 i = 3 x [4] = b[4] / g[4] = 20 / 20 = 1.000 b [2] = b[2] - x[4] × h[2] = 135/14 – 1.000 × (-15/7) = 165/14 instruksi 25 : x [2] = b[2] / g[2] = (165/14) / (75/7) = 1.100

2.4. Speedup Kompleksitas algoritma dapat juga dinyatakan melalui nilai total operasi floating point.

  Untuk algoritma 9.3. nilai total operasi floating point adalah :

  n 1 n

  1 − −

  6

  3

  1

  = 9n – 8 (9.9)

  • ∑ ∑

  i 1 i

  2 = =

  sedangkan untuk algoritma 9.4. adalah :

  n 1 n 1 n 1 n

  2 − − − −

  2

  10 8 6/2 3/2

  1

  = 16.5n – 22 (9.10)

  • ∑ ∑ ∑ ∑

  i 1 i 2 i 2 i

  1 = = = =

  sehingga speedup adalah :

  9n

  8 − lim

  = 0.545 (9.11) n

  16.5n

  20

  → ∞

  −

  Jika paralelisasi juga dilakukan pada langkah 2-5, 6-11, dan 12-16 maka total operasi floating point algoritma 9.4 adalah :

  n 1 n 1 n 1 n

  2 − − − − 2/2 10/2 8/2 6/2 3/2

  1

  = 10.5n – 18 (9.12)

  ∑ ∑ ∑ ∑ i 1 i 2 i 2 i

  1 = = = =

  sehingga speedup adalah :

  9n

  8 − lim

  = 0.857 (9.13) n

  10.5n

  → ∞

  −

1 Baik (9.11) maupun (9.12) adalah nilai speedup yang buruk (< 1.0). Kedua nilai tersebut

  dihasilkan jika paralelisasi menggunakan 2 prosesor. Jika menggunakan 4 prosesor maka instruksi-instruksi yang dapat di-assign ke masing-masing prosesor adalah instruksi : 6-10,

  12-15, dan, dengan sedikit perbedaan penanganan, langkah 16-25. Total operasi floating point dengan 4 prosesor adalah :

  n 1 n 1 n 1 n

  2 − − − − 1 4 3/2 2/2

  1

  = 7.5n – 14 (9.14)

  2 ∑ ∑ ∑ ∑ i 1 i 2 i 2 i

  1 = = = =

  sehingga speedup adalah :

  9n

  8 − lim

  = 1.2 (9.15) n → ∞ 7.5n

  −

Dokumen yang terkait

SOME RESULTS OF CONSTRUCTING SEMI GERGONNE POINT ON A NONCONVEX QUADRILATERAL

0 0 16

A SIXTH-ORDER DERIVATIVE-FREE ITERATIVE METHOD FOR SOLVING NONLINEAR EQUATIONS

0 1 8

ON A PERTURBATION OF THE STUDENT t DISTRIBUTION

0 0 18

VERTEX EXPONENTS OF A CLASS OF TWO-COLORED DIGRAPH WITH ONE LOOP Siti Sahara, Saib Suwilo, Mardiningsih

0 0 18

MAKALAH Fase Perkembangan Anak Usia 2 sampai 6 Tahun (Makalah ini Disusun untuk Memenuhi Tugas Mata Kuliah Perkembangan Peserta Didik dengan Dosen Pengampu Iyan Sofyan, S.Pd, M.A.) Disusun Oleh: Diana Pertiwi (1400007026) Faris Mustajir (1400007047) Nuris

0 0 17

MAKALAH PERKEMBANGAN PESERTA DIDIK FASE PERKEMBANGAN 41 - 60 TAHUN Tugas Kelompok (Diajukan untuk Memenuhi Tugas Mata Kuliah Perkembangan Peserta Didik Dosen Pengampu Iyan Sofiyan, S.Pd, M,A) Oleh: Nurfitriyah 1400007025 Muhammad Karim 14000029 Mutmaina I

0 0 8

Masyarakat Iktiologi Indonesia Pemanfaatan minyak cengkeh Syzigium aromaticum untuk meningkatkan efisiensi pakan pada ikan patin Pangasianodon hypophthalmus (Sauvage, 1876)

0 0 10

Visualisasi Berbasis Naive Bayes untuk Pemetaan Penyebaran Penyakit Infeksi Saluran Pernafasan Akut Naive Bayes Based Visualization For Mapping Acute Respiratory Infection Disease

0 0 11

Rancang Bangun Aplikasi Absensi Online untuk Pegawai Analisis Kredit Mikro (Studi Kasus: BPD Jateng) Online Attendance Application Design for Microcredit Analysis Officer (Case Study: BPD Jateng)

0 0 12

Desain Video Berbasis Motion Graphic untuk PPDB SMK Harapan Indonesia 1 dan 3 Video Design based on Motion Graphic PPDB of Smk Harapan Indonesia 1 dan 3

0 2 10