• Tidak ada hasil yang ditemukan

= 8 = 7. x 4 = 24 = 8 = 5 = 13. pada persamaan ketiga dan x 3 = 5

N/A
N/A
Protected

Academic year: 2021

Membagikan "= 8 = 7. x 4 = 24 = 8 = 5 = 13. pada persamaan ketiga dan x 3 = 5"

Copied!
8
0
0

Teks penuh

(1)

III. REDUKSI GANJIL-GENAP/REDUKSI SIKLIS

3.1. Algoritma Sequensial Contoh 9.2

Selesaikan sistem persamaan berikut :

16

x

1 + 4

x

2 = 8 4

x

1 + 11

x

2 − 5

x

3 = 7 2

x

2 + 14

x

3 − 6

x

4 = 13 5

x

3 + 18

x

4 = 24 Jawab Vektor x = [

x

1

x

2

x

3

x

4] T

diperoleh melalui prosedur berikut : 1. eliminasi

x

1 pada persamaan kedua dengan meng-gunakan persamaan pertama sehingga diperoleh : 16

x

1 + 4

x

2 = 8 10

x

2 − 5

x

3 = 5 2

x

2 + 14

x

3 − 6

x

4 = 13 5

x

3 + 18

x

4 = 24 2. ulangi langkah (1) untuk

x

2 pada persamaan ketiga dan

x

3 pada persamaan keempat. Hasilnya adalah :

16

x

1 + 4

x

2 = 8 10

x

2 − 5

x

3 = 5 15

x

3 − 6

x

4 = 12 20

x

4 = 20

3. selesaikan persamaan terakhir, dimulai dari penyelesaian

x

4 pada persamaan keempat. Dengan cara ini maka diperoleh :

x = [

x

1

x

2

x

3

x

4]

T = [0.225 1.100 1.200 1.000]T

(2)

A =

16

4

4

11

5

2

14

6

5

18

⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ = matriks tridiagonal, b =

8

7

13

24

⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥

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

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

Global n {ukuran sistem}

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

2. for i ← 1 to n −1 do

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

6. for i ← n downto 2 do 7. x[i] ← b[i] / g[i]

8. b[i −1] ← b[i −1] − x[i] x h[i −1] 9. endfor

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

Algoritma 9.3. mengandung 2 loop masing-masing dengan n−1 iterasi. Setiap iterasi memerlukan waktu yang tetap. Kompleksitas algoritma dengan demikian adalah Θ(n).

3.2. Potensi Paralelisasi Perhatikan dua matriks berikut :

A= ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 4 4 3 3 3 2 2 2 1 1

g

f

h

g

f

h

g

f

h

g

, A(1)= ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1 4 1 4 1 3 1 3 1 2 1 2 1 1 1 1

g

f

h

g

0

0

g

f

h

g

Matriks A(1) adalah hasil transformasi dari matriks A. Matriks A(1) terdiri dari dua matriks tridiagonal yang saling lepas sehingga penyelesaian kedua bagian vektor x dapat dilakukan secara serempak.

(3)

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

g

1

x

1 +

h

1

x

2 =

b

1 1i i

x

f

+

g

i

x

i + 1 + i i

x

h

=

b

i 2 ≤ i ≤ n-1 (9.4) 1n n

x

f

+

g

n

x

n =

b

n

Untuk 3 ≤ i ≤ n-2, persamaan (i-1), (i), dan (i+1) adalah : 2 1 − − i i

x

f

+ 1 1 − − i i

x

g

+ i i

x

h

1 = 1i

b

1i i

x

f

+

g

i

x

i + 1 + i i

x

h

= i

b

i i

x

f

+1 + 1 1 + + i i

x

g

+ 2 1 + + i i

x

h

= 1 + i

b

Dari persamaan (i-1) dan (i+1) dapat diperoleh :

1i

x

= (1/ 1i

g

)( 1i

b

-2 1 − − i i

x

f

- i i

x

h

1 ) (9.4a) 1 + i

x

= (1/ 1 + i

g

)( 1 + i

b

- i i

x

f

1 + -

h

i+1

x

i+2) (9.4b) Substitusi kedua persamaan ke persamaan (i) akan menghasilkan :

2 1i ) ( i

x

f

+

g

i(1)

x

i + 2 1 + i ) ( i

x

h

=

b

i(1) (9.5) dimana : ) ( i

f

1 =

α

i(1) 1i

f

,

g

i(1) =

g

i +

α

i(1) 1i

h

+

β

i(1) 1 + i

f

(9.6a) ) ( i

h

1 =

β

i(1) 1 + i

h

,

b

i(1) = i

b

+

α

i(1) 1i

b

+

β

i(1) 1 + i

b

(9.6b) ) ( i 1

α

= 1

i i

g

f

,

β

i(1) = 1 +

i i

g

h

(9.6c)

Persamaan (9.6) juga berlaku untuk : ( ) n

f

-1 1 ,

f

n(1),

g

(1) 2 , ) ( n

g

-11 ,

h

(1) 1 , ) (

h

2 1 , kecuali untuk : ) (

g

1 1 = 1

g

+ (1) 1

β

f

2 dan

g

n(1) =

g

n +

α

n(1) 1n

h

(9.6d) ) (

b

1 1 = 1

b

+ (1) 1

β

b

2 dan

b

n(1) = n

b

+

α

n(1) 1n

b

(9.6e)

Ungkapan matriks persamaan (9.5) adalah A(1)x = b(1) yang merupakan transformasi dari Ax = b dimana :

(4)

A(1) = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

g

n 1 1 n 1 1 -n 1 2 -n 1 4 1 3 1 3 1 2 1 2 1 1 1 1

0

f

0

g

h

f

g

0

f

h

0

g

0

h

0

g

Ο Ο Ο Ο Ο Ο Ο (9.7)

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

A

(1)

x

=

b

(1), dimana

A

(1) =

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (

g

1 n 1 n 1 2 -n 1 6 1 4 1 4 1 4 1 2 1 2 1 1 -n 1 1 -n 1 3 -n 1 5 1 3 1 3 1 3 1 1 1 1

f

h

f

h

g

f

h

g

0

0

g

f

h

f

h

g

f

h

g

Ο

Ο

Ο

Ο

Ο Ο Ο Ο (9.8a)

x

= [

x

1

x

3

x

n-1

x

2

x

4 n

x

] T (9.8b)

b

(1) = [

b

(1) 1 ) (

b

3 1

b

(1) 1 -n ) (

b

2 1

b

(1) 4 ) (

b

n 1 ]T (9.8c)

Berdasarkan pembahasan di atas maka dapat disusun sebuah algoritma seperti berikut di bawah ini.

(5)

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} f (1)[3.. n], g (1)[1.. n], h (1)[1..( n -2)] {elemen A(1)} b (1)[1.. n] {elemen b(1)} p {# proses} α(1)[2.. n], β(1)[1..( n -1)] {faktor skala} x[1.. n] {elemen vektor x} 1. begin 2. for i ← 1 to n −1 do 3. α(1)

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

5. endfor

6. for i ← 2 to n −1 do

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

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

10. b (1)[i] ← b[i] + α(1)[i] × b[i-1] + β(1)[i] × b[i+1] 11. endfor 12. g (1)[1] ← g[1] + β(1)[1] × f[2] 13. g (1)[n] ← g[n] + α(1)[n] × h[n -1] 14. b (1)[1] ← b[i] + β(1)[1] × b[2] 15. b (1)[n] ← b[n] + α(1)[n] × b[n -1] 16. forall P[j] where 1 ≤ j ≤ 2 do 17. for i ← 2 to n −1 step 2 do 18. g (1)[i+j] ← g (1)[i+j] − (f (1)

[i+j) / g (1)[i+j-2]) x h (1) [i+j-2] 19. b (1)[i+j] ← b (1)[i+j]

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

20. endfor

21. for i ← n-2+j downto j+1 do step 2 22. x[i] ← b (1)[i] / g (1)[i] 23. b (1)[i − 2] ← b (1)[i − 2] − x[i] x h (1)[i − 2] 24. endfor 25. x[j] ← b (1)[j] / g (1)[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. :

(6)

looping 2-5 : i = 1 : α(1)[2] = -f[2] / g[1] = -4/16 = -1/4 β(1)[1] = - h[1] / g[2] = -4/11 i = 2 : α(1)[3] = -f[3] / g[2] = -2/11 β(1) [2] = - h[2] / g[3] = 5/14 i = 3 : α(1)[4] = -f[4] / g[3] = -5/14 β(1)[3] = - h[3] / g[4] = 6/18 = 1/3 looping 6 – 11 : i = 2 : f (1)[3] = α(1)[3] × f [2] = -2/11 × 4 = -8/11 g (1)[2] = g[2] + α(1)[2] × h[1] + β(1)[2] × f[3] = 11 – 1/4 × 4 + 5/14 × 2 = 75/7 h (1)[1] = β(1)[1] × h[2] = -4/11 × (-5) = 20/11 b (1)[2] = b[2] + α(1)[2] × b[1] + β(1)[2] × b[3] = 7 – 1/4 × 8 + 5/14 × 13 = 135/14 i = 3 : f (1)[4] = α(1)[4] × f [3] = -5/14 × 2 = -5/7 g (1)[3] = g[3] + α(1)[3] × h[2] + β(1)[3] × f[4] = 14 – 2/11 × (-5)+ 1/3 × 5 = 547/33 h (1)[2] = β(1)[2] × h[3] = 5/14 × (-6) = -15/7 b (1)[3] = b[3] + α(1)[3] × b[2] + β(1)[3] × b[4] = 13 – 2/11 × 7 + 1/3 × 24 = 217/11 baris 12-15 : g (1)[1] = g[1] + β(1)[1] × f[2] = 16 – 4/11 × 4 = 160/11 g (1)[4] = g[4] + α(1)[4] × h[3] = 18 – 5/14 × (-6) = 141/7 b (1)[1] = b[1] + β(1)[1] × b[2] = 8 – 4/11 × 7 = 60/11 b (1)[4] = b[4] + α(1)[4] × b[3] = 24 – 5/14 × 13 = 271/14 Sampai tahap ini terbentuk matriks dan vektor berikut :

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1 4 1 4 1 2 1 2 1 3 1 3 1 1 1 1

g

f

h

g

0

0

g

f

h

g

= ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − 7 141 7 5 7 15 7 75 0 0 33 547 11 8 11 20 11 160 , ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ) ( ) ( ) ( ) ( 1 4 1 2 1 3 1 1

b

b

b

b

= ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ 14 27114 13511 21711 60 looping paralel 16 – 28, j = 1 : sublooping 17-20 i = 2 : g (1)[3] = g (1)[3] – (f (1)[3] / g (1)[1]) × h (1)[1] = (547/33) – ((-8/11) / (160/11)) × 20/11 = 550/33 b (1)[3] = b (1)[3] – (f (1)[3] / g (1)[1]) × b (1)[1] = (217/11) – ((-8/11) / (160/11)) × 60/11 = 220/11

(7)

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 i = 2 : g (1)[4] = g (1)[4] – (f (1)[4] / g (1)[2]) × h (1)[2] = (141/7) – ((-5/7) / (75/7)) × (-15/7) = 20 b (1)[4] = b (1)[4] – (f (1)[4] / g (1)[2]) × b (1)[2] = (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 :

1

3

6

n 1 2 i 1 n 1 i

+

+

− = − = = 9n – 8 (9.9)

sedangkan untuk algoritma 9.4. adalah :

1

3/2

6/2

8

10

2

n 2 1 i 1 n 2 i 1 n 2 i 1 n 1 i

+

+

+

+

+

− = − = − = − = = 16.5n – 22 (9.10)

sehingga speedup adalah :

20

16.5n

8

9n

n

lim

∞ → = 0.545 (9.11)

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

1

3/2

6/2

8/2

10/2

2/2

n 2 1 i 1 n 2 i 1 n 2 i 1 n 1 i

+

+

+

+

+

− = − = − = − = = 10.5n – 18 (9.12)

sehingga speedup adalah :

0

10.5n

8

9n

n

lim

1

∞ → = 0.857 (9.13)

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,

(8)

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

1

2/2

3/2

4

1

n 2 1 i 1 n 2 i 1 n 2 i 1 n 1 i

+

+

+

+

+

− = − = − = − =

2

= 7.5n – 14 (9.14)

sehingga speedup adalah :

14

∞ →

7.5n

8

9n

n

lim

= 1.2 (9.15)

Referensi

Dokumen terkait

Kompetensi adalah suatu kemampuan (keterampilan, sikap, dan pengetahuan) yang dimiliki seseorang yang dapat menunjukkan kinerja unggul dalam melakukan pekerjaan..

Mengenai hal ini, apa yang telah dilaku- kan oleh pemerintah Iran bisa dijadikan bahan kajian yang tepat, yaitu karena konsekuensi atas pelarangan perkawinan sesama

1) Pengalaman tidak berpengaruh pada sensitivitas etika auditor BPKP perwakilan Provinsi Bali. Hal ini berarti bahwa jabatan auditor, masa kerja, tingkat pendidikan

Bagi sampel kajian ini (n=285), tahap nomofobia antara kelima-lima tempoh penggunaan telefon pintar tidak menunjukkan perbezaan yang signifikan antara tahap nomofobia

Tujuan kegiatan praktik mengajar ini adalah menerapkan sistem pembelajaran di sekolah dengan menggunakan ilmu yang dimiliki. Praktik mengajar di kelas dilaksanakan

Selanjutnya, penelitian yang diterapkan saat ini menggunakan bentuk fungsi translog dengan konsep efisiensi keuntungan alternatif dan harga dana, harga tenaga kerja

Avram Grant berhasil membawa Chelsea menjadi treble runner-up di ajang Piala Carling sebelum dikalahkan Tottenham Hotspur,menjadi runner-up Liga Utama Inggris di bawah

Rumah Sakit Islam Siti Rahmah melaksanakan Pelayanan Kesehatan bagi seluruh Masyarakat/ Individu-individu yang membutuhkannya tanpa memandang suku,agama,ras dan golongan, baik