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.