• Tidak ada hasil yang ditemukan

3. ALGORITMA PARALEL UNTUK MODEL PDS

3.4 Algoritma Paralel untuk Sistem PDS

Berikut ini akan dibangun algoritma paralel untuk mengaproksimasi solusi dari sistem PDS pada persamaan (3.5) dengan metode EM pada persamaan (3.6).

Sebelum menbangun algoritma paralel untuk sistem PDS, perhatikan kembali bentuk dari sistem PDS berdimensi N dengan proses Wiener berdimensi M, yaitu

๐‘‘๐‘ฟ(๐‘ก) = ๐ด๐‘ฟ(๐‘ก)๐‘‘๐‘ก + ๐ต๐‘˜๐‘ฟ(๐‘ก)๐‘‘๐‘Š๐‘˜(๐‘ก)

๐‘€

๐‘˜=1

, ๐‘ฟ 0 = ๐‘ฟ๐ŸŽ yang apabila dinyatakan dalam bentuk matriks adalah sebagai berikut:

๐‘‘

Sistem PDS dapat diselesaikan dengan metode EM sebagai berikut:

๐‘ฟ ๐‘ก๐‘— = ๐‘ฟ ๐‘ก๐‘— โˆ’1 + ๐ด๐‘ฟ ๐‘ก๐‘— โˆ’1 โˆ†๐‘ก + ๐ต๐‘˜๐‘ฟ ๐‘ก๐‘— โˆ’1 ๐‘‘๐‘Š๐‘˜ ๐‘ก๐‘—

๐‘€

๐‘˜=1

, ๐‘ฟ 0 = ๐‘ฟ๐ŸŽ yang apabila dijabarkan menjadi:

๐‘‹1 ๐‘ก๐‘—

secara bersamaan. Dengan demikian dapat disimpulkan bahwa jika matriks ๐ด dan ๐ต๐‘˜ merupakan matriks penuh, maka algoritma paralel tidak efektif diterapkan pada sistem PDS.

Dalam berbagai bidang aplikasi yang melibatkan sistem PDS, seringkali dijumpai matriks suku deterministik ๐ด dan matriks suku stokastik ๐ต๐‘˜ merupakan matriks penuh sehingga algoritma paralel tidak efektif untuk diterapkan. Akan tetapi, menurut Bai dan Ward (2006), dengan menggunakan transformasi Householder, maka suatu matriks penuh dapat ditransformasi ke bentuk matriks tridiagonal. Oleh karena itu, matriks penuh ๐ด dan ๐ต๐‘˜ yang terdapat pada sistem PDS dapat ditransformasi ke bentuk matriks tridiagonal. Pada skripsi ini, transformasi Householder tidak dibahas, tetapi diasumsikan bahwa telah diterapkan transformasi Householder pada matriks penuh ๐ด dan ๐ต๐‘˜ sehingga ๐ด dan ๐ต๐‘˜ merupakan matriks tridiagonal.

Berikut ini akan dibangun algoritma paralel untuk sistem PDS dimana matriks suku deterministik ๐ด dan matriks suku stokastik ๐ต๐‘˜ telah ditransformasi menjadi matriks tridiagonal. Pertama-tama perhatikan sistem PDS pada kasus ini, yaitu:

dimana ๐‘ฟ =

Untuk memudahkan penghitungan, maka ๐‘ = 2n dimana ๐‘› adalah bilangan asli.

Sistem PDS diatas dapat diselesaikan dengan metode EM sebagai berikut ๐‘ฟ ๐‘ก๐‘— = ๐‘ฟ ๐‘ก๐‘— โˆ’1 + ๐ด๐‘ฟ ๐‘ก๐‘— โˆ’1 โˆ†๐‘ก + ๐ต๐‘˜๐‘ฟ ๐‘ก๐‘— โˆ’1 ๐‘‘๐‘Š๐‘˜ ๐‘ก๐‘—

๐‘€

๐‘˜=1

, ๐‘ฟ 0 = ๐‘ฟ๐ŸŽ

yang apabila dijabarkan menjadi ๐‘‹1 ๐‘ก๐‘—

Perhatikan bahwa:

1. Untuk menyelesaikan ๐‘‹1 ๐‘ก๐‘— diperlukan nilai ๐‘‹1 ๐‘ก๐‘— โˆ’1 dan ๐‘‹2 ๐‘ก๐‘— โˆ’1 . 2. Untuk menyelesaikan ๐‘‹2 ๐‘ก๐‘— diperlukan nilai ๐‘‹1 ๐‘ก๐‘— โˆ’1 , ๐‘‹2 ๐‘ก๐‘— โˆ’1 , dan

๐‘‹3 ๐‘ก๐‘— โˆ’1 .

Untuk menyelesaikan ๐‘‹3 ๐‘ก๐‘— diperlukan nilai ๐‘‹2 ๐‘ก๐‘— โˆ’1 , ๐‘‹3 ๐‘ก๐‘— โˆ’1 , dan ๐‘‹4 ๐‘ก๐‘— โˆ’1 .

โ‹ฎ

Untuk menyelesaikan ๐‘‹๐‘โˆ’1 ๐‘ก๐‘— diperlukan nilai ๐‘‹๐‘โˆ’2 ๐‘ก๐‘— โˆ’1 , ๐‘‹๐‘โˆ’1 ๐‘ก๐‘— โˆ’1 , dan ๐‘‹๐‘ ๐‘ก๐‘— โˆ’1 .

3. Untuk menyelesaikan ๐‘‹๐‘ ๐‘ก๐‘— diperlukan nilai ๐‘‹๐‘โˆ’1 ๐‘ก๐‘— โˆ’1 , dan ๐‘‹๐‘ ๐‘ก๐‘— โˆ’1 Secara umum, untuk menyelesaikan ๐‘‹๐‘– ๐‘ก๐‘— diperlukan suku ๐‘‹๐‘–โˆ’1 ๐‘ก๐‘— โˆ’1 , ๐‘‹๐‘– ๐‘ก๐‘— โˆ’1 , dan ๐‘‹๐‘–+1 ๐‘ก๐‘— โˆ’1 untuk ๐‘– โ‰  1 dan ๐‘– โ‰  ๐‘. Misalkan tersedia ๐‘ prosesor untuk menyelesaikan masalah ini dimana ๐‘ = 2n dimana ๐‘› adalah bilangan asli dan ๐‘ habis membagi ๐‘. Setiap prosesor ๐‘– dimana ๐‘– = 1,2, โ€ฆ , ๐‘ ditugaskan untuk menghitung ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— hingga ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— dimana ๐‘— = 1,2, โ€ฆ , ๐ฟ. Ide paralel pada kasus ini adalah sebagai berikut:

1. Elemen baris ke-( ๐‘– โˆ’ 1 โˆ— ๐‘/๐‘ + 1) hingga baris ke-(๐‘– โˆ— ๐‘/๐‘) dan kolom ke-( ๐‘– โˆ’ 1 โˆ— ๐‘/๐‘ + 1) hingga kolom ke-(๐‘– โˆ— ๐‘/๐‘) dari matriks ๐ด dan ๐ต๐‘˜ dikirimkan ke prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘.

2. Berdasarkan elemen-elemen matriks-matriks tersebut, setiap prosesor ๐‘– menghitung ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— hingga ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— . Namun, masalah muncul pada prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1 ketika menghitung ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— karena membutuhkan ๐‘‹๐‘–โˆ—๐‘/๐‘โˆ’1 ๐‘ก๐‘— โˆ’1 , ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 , dan ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 . Sedangkan ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 dikerjakan oleh prosesor (๐‘– + 1). Untuk mengatasi masalah tersebut, maka elemen baris ke-(๐‘– โˆ— ๐‘/๐‘) dan kolom ke-(๐‘– โˆ— ๐‘/๐‘ + 1) dari matriks ๐ด dan ๐ต๐‘˜ dikirimkan ke prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1. Pada setiap titik diskretisasi, prosesor (๐‘– + 1)

mengirimkan nilai ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 ke prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1 sehingga prosesor ๐‘– dapat menghitung ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— .

3. Masalah juga muncul pada prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘ ketika menghitung ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— karena membutuhkan ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 , ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 , dan ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+2 ๐‘ก๐‘— โˆ’1 . Sedangkan ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 dikerjakan oleh prosesor (๐‘– โˆ’ 1). Untuk mengatasi masalah tersebut, maka elemen baris ke-((๐‘– โˆ’ 1) โˆ— ๐‘/๐‘ + 1) dan kolom ke-((๐‘– โˆ’ 1) โˆ— ๐‘/๐‘) dari matriks ๐ด dan ๐ต๐‘˜ dikirimkan ke prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘. Pada setiap titik diskretisasi, prosesor (๐‘– โˆ’ 1) mengirimkan nilai ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 ke prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘ sehingga prosesor ๐‘– dapat menghitung ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— .

Berdasarkan ide paralel yang telah dibahas, maka distribusi matriks ๐ด dan ๐ต๐‘˜ pada p prosesor adalah seperti pada Gambar 3.6.

Gambar 3.6 Distribusi matriks tridiagonal ๐ด dan ๐ต๐‘˜ pada p prosesor Berikut ini akan dibangun algoritma paralel untuk sistem PDS. Algoritma paralel untuk sistem PDS akan dibagi menjadi dua tahap paralel, yaitu:

1. Tahap Paralel 1

Pada tahap ini, setiap prosesor ๐‘– dimana ๐‘– = 1,2, โ€ฆ , ๐‘ menghitung

๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— hingga ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— berdasarkan elemen baris ke-( ๐‘– โˆ’ 1 โˆ— ๐‘/๐‘ + 1) hingga baris ke-(๐‘– โˆ— ๐‘/๐‘) dan kolom ke-( ๐‘– โˆ’ 1 โˆ— ๐‘/๐‘ + 1) hingga kolom ke-(๐‘– โˆ— ๐‘/๐‘) dari matriks ๐ด dan ๐ต๐‘˜. Jadi, setelah tahap paralel 1 dilakukan, maka didapat ๐‘ฟ(๐‘ก๐‘—), yaitu

๐‘ฟ(๐‘ก๐‘—) = ๐‘ฟ(๐‘ก๐‘— โˆ’1) + ๐ด๐‘ฟ(๐‘ก๐‘— โˆ’1)โˆ†๐‘ก + ๐ต๐‘˜๐‘ฟ(๐‘ก๐‘— โˆ’1)๐‘‘๐‘Š๐‘˜(๐‘ก๐‘—)

๐‘€ ๐‘˜=1

, ๐‘ฟ 0 = ๐‘ฟ๐ŸŽ

dimana matriks ๐ด dan ๐ต๐‘˜ adalah matriks blok diagonal dengan banyaknya blok diagonal adalah ๐‘ dan ukuran blok diagonal sebesar ๐‘/๐‘ (lihat Gambar 3.7).

Gambar 3.7 Distribusi matriks ๐ด dan ๐ต๐‘˜ pada tahap paralel 1

2. Tahap Paralel 2

Pada tahap ini, prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1 meng-update nilai

๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— karena pada tahap paralel 1 ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— hanya dihitung berdasarkan ๐‘‹๐‘–โˆ—๐‘/๐‘โˆ’1 ๐‘ก๐‘— โˆ’1 dan ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 , sedangkan seharusnya untuk menghitung ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 diperlukan nilai ๐‘‹๐‘–โˆ—๐‘/๐‘โˆ’1 ๐‘ก๐‘— โˆ’1 , ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 , dan

๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 . Nilai ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 dikerjakan oleh prosesor (๐‘– + 1). Oleh karena itu, pada setiap titik diskretisasi ๐‘ก๐‘— prosesor (๐‘– + 1) mengirimkan nilai ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 ke prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1 sehingga prosesor ๐‘– dapat meng-update ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— yang telah diperoleh pada tahap paralel 1, yaitu

๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— = ๐‘‹๐‘–โˆ—๐‘/๐‘ ๐‘ก๐‘— +๐ด(๐‘–โˆ—๐‘/๐‘),(๐‘–โˆ—๐‘/๐‘+1)โˆ—๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 + ๐ต(๐‘–โˆ—๐‘/๐‘),(๐‘–โˆ—๐‘/๐‘+1)๐‘˜ โˆ— ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1

๐‘€๐‘˜=1

dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1.

Selain itu, pada tahap paralel 2 ini prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘ juga meng-update nilai ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— karena pada tahap paralel 1 ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— hanya dihitung berdasarkan ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 dan ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+2 ๐‘ก๐‘— โˆ’1 , sedangkan seharusnya untuk menghitung ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— diperlukan nilai ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 , ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 , dan ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+2 ๐‘ก๐‘— โˆ’1 . Nilai

๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 dikerjakan oleh prosesor (๐‘– โˆ’ 1). Oleh karena itu, pada setiap titik diskretisasi ๐‘ก๐‘— prosesor (๐‘– โˆ’ 1) mengirimkan nilai ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 ke prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘ sehingga prosesor ๐‘– dapat meng-update ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— yang telah diperoleh pada tahap paralel 1, yaitu ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— = ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1 ๐‘ก๐‘— +๐ด((๐‘–โˆ’1)โˆ—๐‘/๐‘+1),((๐‘–โˆ’1)โˆ—๐‘/๐‘)โˆ—

๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 + ๐‘€๐‘˜=1๐ต((๐‘–โˆ’1)โˆ—๐‘/๐‘+1),((๐‘–โˆ’1)โˆ—๐‘/๐‘)๐‘˜ โˆ— ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1

dimana ๐‘– = 2, โ€ฆ , ๐‘. Pada tahap paralel 2, setiap prosesor ๐‘– dimana ๐‘– = 1,2, โ€ฆ , ๐‘ melakukan tugasnya secara bersamaan.

Jadi, distribusi matriks ๐ด dan ๐ต๐‘˜ yang digunakan untuk tahap paralel 1 dan tahap paralel 2 adalah seperti pada Gambar 3.8. Berikut ini adalah Algoritma 3.4 yaitu algoritma paralel untuk sistem PDS pada kasus matriks ๐ด dan ๐ต๐‘˜ adalah matriks tridiagonal (lihat Tabel 3.4). Algoritma 3.4 bertujuan untuk

mengaproksimasi solusi dari sistem PDS pada persamaan (3.5) dengan metode Euler-Maruyama pada persamaan (3.6) dengan asumsi bahwa matriks ๐ด dan ๐ต๐‘˜ telah ditransformasi menjadi matriks tridiagonal dengan transformasi

Householder. Input dari algoritma ini adalah banyaknya PDS pada sistem yaitu ๐‘ = 2๐‘›, banyaknya proses Wiener yaitu ๐‘€, ๐‘‡ yang merupakan batas atas interval [0, ๐‘‡], nilai awal dari masing-masing PDS yaitu ๐‘‹1๐‘ง๐‘’๐‘Ÿ๐‘œ, ๐‘‹2๐‘ง๐‘’๐‘Ÿ๐‘œ, โ€ฆ , ๐‘‹๐‘๐‘ง๐‘’๐‘Ÿ๐‘œ, banyaknya titik diskretisasi yaitu ๐ฟ, ๐ด yang merupakan matriks koefisien drift, ๐ต๐‘˜

yang merupakan koefisien diffusion, dan ๐‘ = 2๐‘› yang merupakan banyaknya prosesor dimana ๐‘|๐‘.

Gambar 3.8 Distribusi matriks ๐ด dan ๐ต๐‘˜ pada tahap paralel 1 dan tahap paralel 2 Langkah pertama pada Algoritma 3.4 adalah menghitung โˆ†๐‘ก = ๐‘‡/๐ฟ. Titik diskretisasi ๐‘ก1 adalah โˆ†๐‘ก, titik diskretisasi ๐‘ก2 adalah 2 โˆ— โˆ†๐‘ก, atau secara umum titik diskretisasi ๐‘ก๐‘— adalah ๐‘— โˆ— โˆ†๐‘ก dimana ๐‘— = 1,2, โ€ฆ , ๐ฟ. Selanjutnya dihitung ๐‘‘๐‘Š๐‘˜ ๐‘ก๐‘— = ๐‘Š๐‘˜ ๐‘ก๐‘— โˆ’ ๐‘Š๐‘˜ ๐‘ก๐‘— โˆ’1 dimana ๐‘˜ = 1, โ€ฆ , ๐‘€, ๐‘— = 1, โ€ฆ , ๐ฟ. ๐‘‘๐‘Š_1, ๐‘‘๐‘Š_2, โ€ฆ , ๐‘‘๐‘Š_๐‘ merupakan array berukuran 1 ๐‘ฅ ๐ฟ berisi bilangan random berdistribusi

โˆ†๐‘ก ๐‘(0,1). Dalam hal ini ๐‘‘๐‘Š_1๐‘— adalah entri ke-๐‘— dari ๐‘‘๐‘Š_1 adalah nilai dari ๐‘‘๐‘Š1 ๐‘ก๐‘— = ๐‘Š1 ๐‘ก๐‘— โˆ’ ๐‘Š1 ๐‘ก๐‘— โˆ’1 dimana ๐‘— = 1, โ€ฆ , ๐ฟ. ๐‘‘๐‘Š_2๐‘— adalah entri ke-๐‘— dari ๐‘‘๐‘Š_2 adalah nilai dari ๐‘‘๐‘Š2 ๐‘ก๐‘— = ๐‘Š2 ๐‘ก๐‘— โˆ’ ๐‘Š2 ๐‘ก๐‘— โˆ’1 dimana ๐‘— = 1, โ€ฆ , ๐ฟ.

Demikian seterusnya hingga ๐‘‘๐‘Š_๐‘€๐‘— adalah entri ke-๐‘— adalah entri ke-๐‘— dari ๐‘‘๐‘Š_๐‘€ adalah nilai dari ๐‘‘๐‘Š๐‘€ ๐‘ก๐‘— = ๐‘Š๐‘€ ๐‘ก๐‘— โˆ’ ๐‘Š๐‘€ ๐‘ก๐‘— โˆ’1 dimana ๐‘— = 1, โ€ฆ , ๐ฟ.

Pada langkah 3, inisialisasi ๐‘‹๐‘ ๐‘ฆ๐‘  sebagai matriks berukuran ๐‘ ๐‘ฅ (๐ฟ + 1) yang semua entrinya adalah nol. Baris ke-๐‘– dari ๐‘‹๐‘ ๐‘ฆ๐‘  dimana ๐‘– = 1, โ€ฆ , ๐‘ akan digunakan untuk menyimpan solusi EM dari PDS ke-๐‘– dalam sistem yaitu ๐‘‹๐‘–.

Pada langkah 4, ๐‘‹๐‘ ๐‘ฆ๐‘ :,1 adalah kolom ke-1 dari ๐‘‹๐‘ ๐‘ฆ๐‘  berisi nilai awal untuk masing-masing PDS yaitu [๐‘‹1๐‘ง๐‘’๐‘Ÿ๐‘œ; ๐‘‹2๐‘ง๐‘’๐‘Ÿ๐‘œ; โ€ฆ ; ๐‘‹๐‘๐‘ง๐‘’๐‘Ÿo].

Tabel 3.4 Algoritma paralel untuk sistem PDS dimana matriks suku deterministik ๐ด dan matriks suku stokastik ๐ต๐‘˜ telah ditransformasi menjadi matriks tridiagonal

Algoritma 3.4 Euler-Maruyama method for SDE system in parallel where ๐‘จ and ๐‘ฉ๐’Œ are tridiagonal matrix

INPUT : ๐‘ = 2๐‘› is a number of SDEs, ๐‘€ is a number of Wiener process, ๐‘‡ is upper bound of interval [0, ๐‘‡], ๐‘‹1๐‘ง๐‘’๐‘Ÿ๐‘œ, ๐‘‹2๐‘ง๐‘’๐‘Ÿ๐‘œ, โ€ฆ , ๐‘‹๐‘๐‘ง๐‘’๐‘Ÿ๐‘œ is initial value of SDEs respectively, ๐ฟ is number of discretized point, ๐ด is drift coefficient matrix and ๐ต๐‘˜ for ๐‘˜ = 1,2, โ€ฆ , ๐‘€ is diffusion coefficient matrix where ๐ด and ๐ต๐‘˜ are tridiagonal matrix respectively, ๐‘ is a number of processors where ๐‘|๐‘.

OUTPUT : ๐‘‹๐‘ ๐‘ฆ๐‘  is an ๐‘-by-๐ฟ where ๐‘–th row is the Euler-Maruyama solution of ๐‘‹๐‘– to the SDE system:

๐‘‘๐‘ฟ ๐‘ก = ๐ด๐‘ฟ ๐‘ก ๐‘‘๐‘ก + ๐ต๐‘˜๐‘ฟ ๐‘ก ๐‘‘๐‘Š๐‘˜ ๐‘ก

๐‘€

๐‘˜=1

, ๐‘ฟ 0 = ๐‘ฟ๐ŸŽ,0 โ‰ค ๐‘ก โ‰ค ๐‘‡ 1 โˆ†๐‘ก โˆถ= ๐‘‡/๐ฟ

2 set ๐‘‘๐‘Š_1 is a 1-by-๐ฟ array of random number from normally distributed โˆ†๐‘ก ๐‘(0,1)

๐‘‘๐‘Š_2 is a 1-by-๐ฟ array of random number from normally distributed โˆ†๐‘ก ๐‘(0,1)

โ‹ฎ

๐‘‘๐‘Š_๐‘€ is a 1-by-๐ฟ array of random number from normally distributed โˆ†๐‘ก ๐‘(0,1)

3 set ๐‘‹๐‘ ๐‘ฆ๐‘  is an ๐‘-by-(๐ฟ + 1) zeros array

4 set ๐‘‹๐‘ ๐‘ฆ๐‘ :,1 โˆถ=

๐‘‹1๐‘ง๐‘’๐‘Ÿ๐‘œ ๐‘‹2๐‘ง๐‘’๐‘Ÿ๐‘œ

โ‹ฎ ๐‘‹๐‘๐‘ง๐‘’๐‘Ÿ๐‘œ

5 Each processor ๐‘– where ๐‘– = 1,2, โ€ฆ , ๐‘ do in parallel 6 set ๐ด1 โˆถ= 0

7 set ๐ด2 โˆถ= 0

8 set ๐ต1 is an 1-by-๐‘€ zeros array 9 set ๐ต2 is an 1-by-๐‘€ zeros array 10 if ๐‘– โ‰  ๐‘ processor ๐‘– do

11 ๐ด1 โˆถ= ๐ด๐‘–โˆ—๐‘/๐‘,๐‘–โˆ—๐‘/๐‘+1โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ ๐‘–โˆ—๐‘/๐‘+1,1 12 for k = 1 to ๐‘€ do

13 ๐ต11,๐‘˜ โˆถ= ๐ต๐‘–โˆ—๐‘/๐‘,๐‘–โˆ—๐‘/๐‘+1๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ ๐‘–โˆ—๐‘/๐‘+1,1 end for

end if

14 if ๐‘– โ‰  1 processor ๐‘– do

15 ๐ด2 โˆถ= ๐ด(๐‘–โˆ’1)โˆ—๐‘/๐‘+1,(๐‘–โˆ’1)โˆ—๐‘/๐‘ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ (๐‘–โˆ’1)โˆ—๐‘/๐‘,1 16 for k = 1 to ๐‘€ do

17 ๐ต21,๐‘˜ โˆถ= ๐ต(๐‘–โˆ’1)โˆ—๐‘/๐‘+1,(๐‘–โˆ’1)โˆ—๐‘/๐‘๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ (๐‘–โˆ’1)โˆ—๐‘/๐‘,1 end for

end if

18 set ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™ is an (๐‘/๐‘)-by-(๐ฟ + 1) zeros array 19 set ๐ด_๐‘™๐‘œ๐‘๐‘Ž๐‘™ โˆถ= ๐ด ๐‘–โˆ’1 โˆ—๐‘/๐‘+1:๐‘–โˆ—๐‘/๐‘, ๐‘–โˆ’1 โˆ—๐‘/๐‘+1:๐‘–โˆ—๐‘/๐‘

20 set ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™:,1 โˆถ= ๐‘‹๐‘ ๐‘ฆ๐‘  ๐‘–โˆ’1 โˆ—๐‘/๐‘+1:๐‘–โˆ—๐‘/๐‘,1

21 set ๐ต๐‘ก๐‘’๐‘š๐‘ is an (๐‘/๐‘)-by-๐‘€ zeros array 22 for ๐‘— = 1 to ๐ฟ do

23 for ๐‘˜ = 1 to ๐‘€ do

24 set ๐ต๐‘ก๐‘’๐‘š๐‘:,๐‘š โˆถ= ๐ต ๐‘–โˆ’1 โˆ—๐‘/๐‘+1:๐‘–โˆ—๐‘/๐‘, ๐‘–โˆ’1 โˆ—๐‘/๐‘+1:๐‘–โˆ—๐‘/๐‘๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™:,๐‘— end for

25 ๐ด๐‘ก๐‘’๐‘š๐‘ โˆถ= ๐ด_๐‘™๐‘œ๐‘๐‘Ž๐‘™ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™:,๐‘—

26 ๐ด๐‘ก๐‘’๐‘š๐‘๐‘/๐‘ โˆถ= ๐ด๐‘ก๐‘’๐‘š๐‘๐‘/๐‘ + ๐‘‹1 27 ๐ด๐‘ก๐‘’๐‘š๐‘1 โˆถ= ๐ด๐‘ก๐‘’๐‘š๐‘1+ ๐‘‹2 28 ๐ต๐‘ก๐‘’๐‘š๐‘๐‘/๐‘,: โˆถ= ๐ต๐‘ก๐‘’๐‘š๐‘๐‘/๐‘,:+ ๐‘Œ1 29 ๐ต๐‘ก๐‘’๐‘š๐‘1,: โˆถ= ๐ต๐‘ก๐‘’๐‘š๐‘1,:+ ๐‘Œ2

30 ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™:,๐‘— +1 โˆถ= ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™:,๐‘— + ๐ด๐‘ก๐‘’๐‘š๐‘ โˆ— โˆ†๐‘ก + ๐ต๐‘ก๐‘’๐‘š๐‘ โˆ—

๐‘‘๐‘Š_1๐‘— ๐‘‘๐‘Š_2๐‘—

โ‹ฎ ๐‘‘๐‘Š_๐‘€๐‘— 31 if ๐‘– โ‰  ๐‘ processor ๐‘– do

32 labSend ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™๐‘/๐‘,๐‘— +1 to prosesor (๐‘– + 1) 33 labReceive ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™1,๐‘— +1 from prosesor (๐‘– + 1) 34 ๐ด1 โˆถ= ๐ด๐‘–โˆ—๐‘/๐‘,๐‘–โˆ—๐‘/๐‘+1โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™1,๐‘— +1

35 for k = 1 to ๐‘€ do

36 ๐ต11,๐‘˜ โˆถ= ๐ต๐‘–โˆ—๐‘/๐‘,๐‘–โˆ—๐‘/๐‘+1๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™1,๐‘— +1 end for

end if

37 if ๐‘– โ‰  1 processor ๐‘– do

38 labSend ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™1,๐‘— +1 to prosesor (๐‘– โˆ’ 1)

39 labReceive ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™๐‘/๐‘,๐‘— +1 from prosesor (๐‘– โˆ’ 1) 40 ๐ด2 โˆถ= ๐ด(๐‘–โˆ’1)โˆ—๐‘/๐‘+1,(๐‘–โˆ’1)โˆ—๐‘/๐‘ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™๐‘/๐‘,๐‘— +1 41 for k = 1 to ๐‘€ do

42 ๐ต21,๐‘˜ โˆถ= ๐ต(๐‘–โˆ’1)โˆ—๐‘/๐‘+1,(๐‘–โˆ’1)โˆ—๐‘/๐‘๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™๐‘/๐‘,๐‘— +1 end for

end if end for end do

Langkah selanjutnya merupakan proses paralel yang dimulai pada langkah 5 dengan menggunakan ๐‘ prosesor. Sebelum menghitung solusi EM dari masing-masing PDS pada tiap titik diskretisasi ๐‘ก๐‘— dimana ๐‘— = 1, โ€ฆ , ๐ฟ, maka dilakukan inisialisasi ๐ด1, ๐ด2, ๐ต1, ๐ต2 terlebih dahulu. Langkah 10 hingga 13 dilakukan oleh prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1. Pada langkah ini dihitung

๐ด1 = ๐ด๐‘–โˆ—๐‘/๐‘,๐‘–โˆ—๐‘/๐‘+1โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ ๐‘–โˆ—๐‘/๐‘+1,1 yang merupakan bagian dari proses tahap paralel 2 yaitu menghitung ๐ด(๐‘–โˆ—๐‘/๐‘),(๐‘–โˆ—๐‘/๐‘+1)โˆ— ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 pada ๐‘ก1. Sedangkan ๐ต11,๐‘˜ = ๐ต๐‘–โˆ—๐‘/๐‘,๐‘–โˆ—๐‘/๐‘+1๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ ๐‘–โˆ—๐‘/๐‘+1,1 untuk ๐‘˜ = 1, โ€ฆ , ๐‘€ merupakan bagian dari

proses tahap paralel 2 yaitu menghitung ๐‘€๐‘˜=1๐ต(๐‘–โˆ—๐‘/๐‘),(๐‘–โˆ—๐‘/๐‘+1)๐‘˜ โˆ— ๐‘‹๐‘–โˆ—๐‘/๐‘+1 ๐‘ก๐‘— โˆ’1 pada ๐‘ก1. Sedangkan langkah 14 hingga 17 dilakukan oleh prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘. Pada langkah ini dihitung ๐ด2 = ๐ด(๐‘–โˆ’1)โˆ—๐‘/๐‘+1,(๐‘–โˆ’1)โˆ—๐‘/๐‘ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ (๐‘–โˆ’1)โˆ—๐‘/๐‘,1 yang merupakan bagian dari proses tahap paralel 2 yaitu menghitung ๐ด((๐‘–โˆ’1)โˆ—๐‘/๐‘+1),((๐‘–โˆ’1)โˆ—๐‘/๐‘)โˆ— ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 pada ๐‘ก1. Sedangkan ๐ต21,๐‘˜ = ๐ต(๐‘–โˆ’1)โˆ—๐‘/๐‘+1,(๐‘–โˆ’1)โˆ—๐‘/๐‘๐‘˜ โˆ— ๐‘‹๐‘ ๐‘ฆ๐‘ (๐‘–โˆ’1)โˆ—๐‘/๐‘,1 untuk ๐‘˜ = 1, โ€ฆ , ๐‘€ merupakan bagian dari proses tahap paralel 2 yaitu menghitung ๐‘€ ๐ต((๐‘–โˆ’1)โˆ—๐‘/๐‘+1),((๐‘–โˆ’1)โˆ—๐‘/๐‘)๐‘˜

๐‘˜=1

โˆ— ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘ ๐‘ก๐‘— โˆ’1 pada ๐‘ก1.

Proses berikutnya yaitu langkah 18 hingga 24 merupakan tahap paralel 1 dalam menghitung solusi EM dari masing-masing PDS pada tiap titik diskretisasi ๐‘ก๐‘— dimana ๐‘— = 1, โ€ฆ , ๐ฟ. ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™ adalah matriks berukuran (๐‘/๐‘) ๐‘ฅ (๐ฟ + 1) yang akan digunakan untuk menyimpan solusi EM untuk sistem PDS pada tahap paralel 1 untuk tiap prosesor. Setiap prosesor ๐‘– menghitung ๐‘‹ ๐‘–โˆ’1 โˆ—๐‘/๐‘+1(๐‘ก๐‘—) hingga ๐‘‹๐‘–โˆ—๐‘/๐‘(๐‘ก๐‘—) dan disimpan pada ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™. ๐ด_๐‘™๐‘œ๐‘๐‘Ž๐‘™ adalah matriks yang berisi elemen baris ke-( ๐‘– โˆ’ 1 โˆ— ๐‘/๐‘ + 1) hingga baris ke-(๐‘– โˆ— ๐‘/๐‘) dan kolom ke-( ๐‘– โˆ’ 1 โˆ— ๐‘/๐‘ + 1) hingga kolom ke-(๐‘– โˆ— ๐‘/๐‘) dari matriks ๐ด. Langkah 23 dan 24 merupakan proses penghitungan ๐‘€๐‘˜=1๐ต๐‘˜๐‘ฟ(๐‘ก๐‘— โˆ’1) pada tahap paralel 1.

Hasil dari penghitungan ini disimpan pada ๐ต๐‘ก๐‘’๐‘š๐‘. Langkah 25 merupakan proses penghitungan ๐ด๐‘ฟ(๐‘ก๐‘— โˆ’1) pada tahap paralel 1. Hasil dari penghitungan ini disimpan pada ๐ด๐‘ก๐‘’๐‘š๐‘. Langkah 26 hingga 30 merupakan sinkronisasi dari proses

penghitungan tahap paralel 1 dan paralel 2 sehingga didapat nilai ๐‘ฟ(๐‘ก๐‘—) sesuai yang diharapkan.

Langkah 31 hingga 36 merupakan tahap paralel 2 yang dikerjakan oleh prosesor ๐‘– dimana ๐‘– = 1, โ€ฆ , ๐‘ โˆ’ 1. Pada langkah ini, prosesor ๐‘– mengirimkan ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™๐‘/๐‘,๐‘— +1 yang telah didapat ke prosesor (๐‘– + 1) untuk digunakan dalam meng-update nilai ๐ด2 dan ๐ต2. Pada saat yang sama, prosesor ๐‘– dimana ๐‘– =

1, โ€ฆ , ๐‘ โˆ’ 1 menerima ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™1,๐‘— +1 dari prosesor (๐‘– + 1) dan kemudian meng-update nilai ๐ด1 dan ๐ต1. Sedangkan Langkah 37 hingga 42 merupakan tahap paralel 2 yang dikerjakan oleh prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘. Pada langkah ini, prosesor ๐‘– mengirimkan ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™ yang telah didapat ke prosesor (๐‘– โˆ’ 1)

untuk digunakan dalam meng-update nilai ๐ด1 dan ๐ต1. Pada saat yang sama, prosesor ๐‘– dimana ๐‘– = 2, โ€ฆ , ๐‘ menerima ๐‘‹๐‘ ๐‘ฆ๐‘ _๐‘™๐‘œ๐‘๐‘Ž๐‘™๐‘/๐‘,๐‘— +1 dari prosesor (๐‘– โˆ’ 1) dan kemudian meng-update nilai ๐ด2 dan ๐ต2.

Dengan menerapkan Algoritma 3.4, diharapkan akan mempercepat waktu komputasi dalam mengaproksimasi solusi sistem PDS dengan metode EM.

Implementasi dari algoritma ini akan diberikan pada Bab 4.

Dokumen terkait