AKSELERASI
GLOBAL PAIRWISE ALIGNMENT
DENGAN
SKEMA PARTISI
BLOCKED COLUMN-WISE
PADA
SISTEM MEMORI TERDISTRIBUSI
MAULANA RIZAL IBRAHIM
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Akselerasi Global Pairwise Alignment dengan Skema Partisi Blocked Column-wise pada Sistem Memori Terdistribusi adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
ABSTRAK
MAULANA RIZAL IBRAHIM. Akselerasi Global Pairwise Alignment dengan Skema Partisi Blocked Column-wise pada Sistem Memori Terdistribusi. Dibimbing oleh WISNU ANANTA KUSUMA.
Algoritme global pairwise alignment (GPA) yang digunakan untuk menyejajarkan sepasang sekuens DNA perlu diparalelisasi untuk mempersingkat waktu eksekusi. Skema partisi berpengaruh terhadap kinerja algoritme GPA paralel mengingat algoritme ini mengadopsi metode pemrograman dinamis. Penelitian ini mempercepat algoritme GPA menggunakan skema partisi blocked column-wise pada sistem memori terdistribusi. Pararelisasi algoritme GPA dilakukan dengan model pemrograman message-passing menggunakan standar message passing interface (MPI). Parameter panjang sekuens yang digunakan bervariasi dari 1000 bp sampai paling panjang 30 000 bp. Hasil yang diperoleh menunjukkan speedup menggunakan 2, 3, dan 4 buah PC berturut-turut adalah 1.79, 2.58, dan 3.37 untuk panjang sekuens 30 000 bp. Sedangkan efisiensi menggunakan jumlah PC dan panjang sekuens yang sama berturut-turut mencapai 89.32%, 85.97%, dan 84.19%. Algoritme GPA paralel yang dikembangkan menunjukkan skalabilitas.
Kata kunci: message-passing, memori terdistribusi, pairwise alignment, skema partisi
ABSTRACT
MAULANA RIZAL IBRAHIM. Acceleration of Global Pairwise Alignment using Blocked Column-wise Partition Scheme in Distributed Memory System. Supervised by WISNU ANANTA KUSUMA.
The algorithm of global pairwise alignment (GPA) which is used to align a pair of DNA sequences need to be processed in parallel to shorten the execution time. Partitioning scheme affects the performance of GPA in parallel as the algorithm adopts the dynamic programming method. This study accelerates GPA algorithm using blocked column-wise partition scheme on distributed memory systems. The parallelism of GPA algorithm performed by message-passing programming model using the message passing interface (MPI) standard. Sequence’s length parameter varies from 1000 bp to a maximum length of 30 000 bp. The results showed speedup using 2, 3 and 4 PCs respectively, are 1.79, 2.58 and 3.37 with a sequence’s length of 30 000 bp. While the efficiency with the same amount of PCs and sequence’s length respectively, reached 89.32%, 85.97% and 84.19%. The algorithm of GPA in parallel shows scalability.
Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada
Departemen Ilmu Komputer
AKSELERASI
GLOBAL PAIRWISE ALIGNMENT
DENGAN
SKEMA PARTISI
BLOCKED COLUMN-WISE
PADA
SISTEM MEMORI TERDISTRIBUSI
MAULANA RIZAL IBRAHIM
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
Penguji:
1 Ahmad Ridha, SKom MS
Judul Skripsi : Akselerasi Global Pairwise Alignment dengan Skema Partisi Blocked Column-wise pada Sistem Memori Terdistribusi Nama : Maulana Rizal Ibrahim
NIM : G64110101
Disetujui oleh
DrEng Wisnu Ananta Kusuma, ST MT Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Penelitian yang dilaksanakan sejak bulan Maret 2015 ini berjudul Akselerasi Global Pairwise Alignment dengan Skema Partisi Blocked Column-wise pada Sistem Memori Terdistribusi.
Terima kasih penulis ucapkan kepada pihak-pihak yang telah berperan dalam penyelesaian tugas akhir ini, antara lain:
1 Ibu dan ayah penulis, Lina Herlina dan Wihatmoko Waskitoaji, yang selalu memberikan kasih sayang, dukungan, dan doa kepada penulis. Terima kasih juga untuk keluarga penulis atas semua dukungan yang diberikan.
2 Bapak Wisnu Ananta Kusuma selaku dosen pembimbing yang telah memberi arahan dan saran dalam penyelesaian tugas akhir ini.
3 Bapak Ahmad Ridha dan Bapak Auriza Rahmad Akbar selaku dosen penguji yang telah memberi masukan untuk penyelesaian tugas akhir ini.
4 Bapak Imam Cartealy dari BPPT yang telah memberi sebagian ilmunya terkait bioinformatika dan Bapak Djatmiko yang telah mempersilakan penulis menggunakan fasilitas cluster Laboratorium Analisis Data untuk penyelesaian tugas akhir ini.
5 Seluruh dosen Departemen Ilmu Komputer atas ilmu yang telah diberikan kepada penulis.
6 Pak Rizki, Pak Irvan, Pak Ridwan, dan pegawai Departemen Ilmu Komputer lainnya yang telah memberi bantuan kepada penulis, terutama bantuan mengenai urusan administrasi di departemen.
7 Teman-teman S1 Ilmu Komputer, IKMT IPB, Brigade G14, dan BEM FMIPA IPB yang telah mendukung penulis dan memberi banyak pelajaran hidup bagi penulis. Terima kasih kepada Udin, Dwi, Laras, Niken, Whina, Anas, Aries, Rudi, Ihda, Nida, Furqon, Dadi, Dedi, Ahas, Iin, Atikah, Rani, Faza, dan teman-teman lain yang tidak dapat penulis sebutkan satu persatu.
Semoga karya ilmiah ini bermanfaat.
DAFTAR ISI
DAFTAR GAMBAR vi
DAFTAR LAMPIRAN vi
PENDAHULUAN 1
Latar Belakang 1
Perumusan Masalah 1
Tujuan Penelitian 2
Manfaat Penelitian 2
Ruang Lingkup Penelitian 2
METODE 2
Tahapan Penelitian 2
Implementasi Global Pairwise Alignment Sekuensial 3 Implementasi GPA Paralel dengan Skema Partisi Blocked Column-wise 3
Analisis Hasil 5
Perbandingan dengan Penelitian Sebelumnya 5
Bahan 5
Alat 5
HASIL DAN PEMBAHASAN 5
Implementasi Global Pairwise Alignment Sekuensial 5 Implementasi Global Pairwise Alignment Paralel dengan Skema Partisi
Blocked Column-wise 6
Verifikasi Kebenaran Algoritme GPA Paralel 9
Memori Penyimpanan Matriks 10
Analisis Hasil 11
Perbandingan dengan Penelitian Sebelumnya 12
KESIMPULAN DAN SARAN 13
Kesimpulan 13
Saran 14
DAFTAR GAMBAR
1 Tahapan penelitian 2
2 Bagan alir algoritme GPA 3
3 Ilustrasi skema partisi blocked column-wise 4
4 Hasil penjajaran ClustalW2 dan algoritme GPA 6
5 Inisialisasi matriks Fm,n GPA paralel 8
6 Inisialisasi matriks Fm,n GPA sekuensial 8
7 Proses pengiriman nilai -5 dari P0 ke P1 9
8 Pengisian sel matriks Fm,n 9
9 Perbandingan hasil algoritme GPA sekuensial (kiri) dan paralel dua
prosesor (kanan) 10
10 Grafik waktu eksekusi program penjajaran sekuens. 1 PC,
2 PC, 3 PC, 4 PC. 11
11 Grafik speedup komputasi paralel algoritme GPA. 2 PC,
3 PC, 4 PC. 11
12 Grafik efisiensi komputasi paralel algoritme GPA. 2 PC,
3 PC, 4 PC. 12
13 Grafik efisiensi GPA pada sistem memori bersama dan sistemmemori terdistribusi. distributed memory, shared memory. 13
DAFTAR LAMPIRAN
1 Hasil run program GPA sekuensial dan paralel dengan 2 sampai 4 PC
untuk panjang sekuens 1.000 bp sampai 30.000 bp 15 2 Hasil run program GPA paralel pada sistem memori terdistribusi dan
sistem memori bersama dengan panjang sekuens 1.000 bp sampai 16.000
PENDAHULUAN
Latar Belakang
Algoritme global pairwise alignment (GPA) merupakan salah satu algoritme fundamental dalam disiplin ilmu bionformatika. Algoritme GPA digunakan untuk menyejajarkan sepasang sekuens DNA, RNA, maupun protein. Hasil penjajaran digunakan untuk menentukan kemiripan antara kedua sekuens. Nilai kemiripan yang tinggi antarkedua sekuens berimplikasi secara signifikan kepada kemiripan fungsional atau struktural antar-organisme (Mount 2001).
Namun demikian, ukuran sekuens dari data biologis sangat besar sehingga menyejajarkan sekuens hanya oleh satu prosesor akan memakan waktu sangat lama. Algoritme ini juga memiliki kompleksitas O(mn), dengan m adalah panjang sekuens pertama dan n adalah panjang sekuens kedua (Shebab et al. 2012). Oleh karena kompleksitas tersebut, dibutuhkan metode yang dapat memangkas waktu komputasi namun tetap memiliki hasil akurat. Komputasi paralel menjadi solusi metode untuk mempercepat waktu komputasi algoritme GPA. Komputasi paralel adalah sebuah metode untuk melakukan langkah-langkah secara bersamaan dari program komputer menggunakan dua atau lebih prosesor. Paralelisasi algoritme GPA sudah dilakukan, seperti pada FDASA oleh Shebab et al. (2012) dan pada CudaSW oleh Liu et al. (2013) yang menggunakan skema partisi data tertentu.
Skema partisi data menjadi sangat berpengaruh pada kinerja GPA paralel, karena algoritme GPA mengadopsi metode pemrograman dinamis (Hsien-Yu et al. 2004). Penelitian sebelumnya telah membandingkan skema partisi data algoritme GPA pada sistem memori bersama. Skema partisi yang dibandingkan antara lain skema row-wise, blocked column-wise, anti-diagonal, dan blocked column-wise dengan perbaikan. Hasilnya adalah skema partisi blocked column-wise dengan perbaikan menjadi skema partisi dengan nilai efisiensi terbaik (Akbar et al. 2015). Sistem memori bersama memungkinkan prosesor untuk saling berbagi-pakai memori yang sama. Namun, program paralel pada sistem memori ini hanya bisa dijalankan oleh batas jumlah core yang ada pada sistem. Sistem memori terdistribusi dapat menjadi salah satu solusi alternatif untuk permasalahan tersebut. Penelitian ini akan mengakselerasi algoritme GPA dengan skema partisi data blocked column-wise pada sistem memori terdistribusi. Berbeda dengan sistem memori bersama, sistem memori terdistribusi membagi interkoneksi untuk beberapa prosesor yang terhubung, masing-masing prosesor memiliki memori privat. Arsitektur memori seperti ini memungkinkan penambahan jumlah prosesor untuk menjalankan program paralel sewaktu-waktu. Paralelisasi algoritme GPA pada sistem memori terdistribusi menggunakan standar message passing interface (MPI).
Perumusan Masalah
2
Tujuan Penelitian
Tujuan dari penelitian ini adalah mengembangkan algoritme GPA paralel dengan skema partisi data blocked column-wise pada sistem memori terdistribusi dan menganalisis hasil kinerjanya. Penelitian ini juga membandingkan kinerja algoritme GPA paralel pada sistem memori terdistribusi dengan sistem memori bersama yang sudah dilakukan pada penelitian sebelumnya.
Manfaat Penelitian
Penelitian ini diharapkan dapat menghasilkan algoritme GPA paralel fine-grained paralellism dengan kinerja tinggi sehigga dapat mengakselerasi kinerja algoritme GPA dan memangkas waktu komputasi penjajaran sekuens.
Ruang Lingkup Penelitian
Ruang lingkup pada penelitian ini ialah:
1 Paralelisasi dengan model pemrograman message-passing yang mengasumsikan setiap komputer sebagai prosesor dengan memori lokalnya masing-masing (Quinn 2003).
2 Pengujian kinerja pada proses pengisian matriks kemiripan. 3 Menggunakan standar MPI dan bahasa pemrograman C.
4 Pengujian kinerja menggunakan 4 unit komputer dengan spesifikasi hardware yang sama.
5 Menggunakan data sekuens maksimal panjang 30 000 base pair (bp) yang dibangkitkan secara acak.
METODE
Tahapan Penelitian
Tahapan-tahapan yang dilakukan pada penelitian ini dapat dilihat pada Gambar 1.
3 Implementasi Global Pairwise Alignment Sekuensial
Impelementasi algoritme GPA menggunakan modifikasi algoritme penjajaran Needleman-Wunsch. Langkah pertama dalam algoritme ini adalah membuat matriks yang disebut matriks kemiripan. Satu sekuens (dengan panjang m) ditulis secara vertikal pada bagian kiri dari matriks dan setiap residu pada sekuens ini melabeli satu baris. Sekuens lainnya (dengan panjang n) ditulis pada bagian atas matriks dan setiap residu pada sekuens ini melabeli satu kolom (Gautham 2006) sehingga terbentuk matriks kemiripan Fm,n dengan m × n elemen.
Skor penjajaran diatur sebagai berikut, jika residu pada kedua sekuens sama maka diberikan skor satu, jika berbeda maka skor dikurangi satu. Gap penalty bergantung pada besarnya masing-masing jarak yang diinisialisasi sebagai skor pada baris dan kolom ke-0 secara menurun, yaitu nilai gap penalty dikalikan jaraknya dari titik awal F(0,0).
Gambar 2 Bagan alir algoritme GPA
Gambar 2 menunjukkan prosedur aktivitas dari algoritme GPA sekuensial. Untuk mempercepat waktu komputasi algoritme GPA diparalelisasi pada bagian kode untuk pengisian matriks kemiripan. Hanya bagian inisialisasi yang tidak diparalelisasi.
Kebenaran algoritme GPA diverifikasi dengan menyejajarkan 2 sekuens DNA SYG_YEAST dan SYG_SCHPO. Kemudian kedua sekuens juga disejajarkan dengan program ClustalW 2.1 pada pengaturan standar dan hasilnya dibandingkan dengan algoritme GPA sekuensial.
Implementasi GPA Paralel dengan Skema Partisi Blocked Column-wise
GPA paralel diimplementasi dengan standar MPI pada sistem memori terdistribusi. Implementasi MPI menggunakan pustaka MPICH. Implementasi GPA paralel didesain mengikuti foster’s methodology yang memiliki empat tahap, yaitu: partitioning, communication, agglomeration, dan mapping (Quinn 2003). 1 Partitioning
4
n, yang setiap residunya melabeli satu kolom, dibagi oleh banyaknya jumlah prosesor yang digunakan. Hasil pembagian akan menurunkan jumlah kolom yang harus dikomputasi oleh satu prosesor.
2 Communication
Tahapan ini menentukan pola komunikasi antar-tugas yang sudah dibagi menjadi bagian-bagian yang lebih kecil. Komunikasi pada pengembangan algoritme GPA paralel menggunakan MPI_Send dan MPI_Recv yang merupakan blocking communication. Hal ini membuat setiap pola pengiriman dan penerimaan data akan diblok sampai proses selesai atau sampai buffer data yang sudah diinisialisasi selesai diterima. Komunikasi melibatkan prosesor i dengan prosesor sebelumnya (i-1) dan prosesor setelahnya (i+1). Ketika prosesor selesai melakukan komputasi sampai bagian kolom terakhir, prosesor akan mengirimkan nilai tersebut ke prosesor setelahnya. Nilai tersebut diterima sebagai nilai bagian kolom pertama oleh prosesor setelahnya.
3 Agglomeration
Tahap ini menggabungkan tugas-tugas untuk mengatur pemberian beban kerja kepada prosesor. Pada skema partisi data blocked column-wise setiap prosesor mendapatkan bagian data untuk dikomputasi sebanyak n/p dikali m, dengan m dan n adalah panjang sekuens pertama dan kedua, sedangkan p adalah banyaknya prosesor yang digunakan.
4 Mapping
Tahap ini menentukan pembagian tugas yang sudah digabungkan pada tahap agglomeration untuk diproses oleh prosesornya. Mapping pada pengembangan algoritme GPA paralel dengan skema partisi blocked column-wise menentukan prosesor ke-i mendapat bagian blok kolom Ε(i.n/t)+1Ζ hingga kolom Ε(i+1)n/tΖ.
Dengan n adalah panjang kolom atau panjang sekuens kedua dan t adalah jumlah prosesor yang digunakan. Gambar 3 menunjukkan skema partisi data blocked column-wise menggunakan tiga prosesor.
Gambar 3 Ilustrasi skema partisi blocked column-wise
5 yang dibandingkan adalah keluaran skor akhir penjajaran dan pengisian matriks kemiripan.
Analisis Hasil
Waktu eksekusi diambil sebanyak sepuluh kali ulangan untuk setiap panjang sekuens. Setelah itu, nilai rataannya diambil sebagai waktu eksekusi akhir. Hasil komputasi GPA sekuensial akan dibandingkan dengan hasil komputasi paralel dengan menganalisis waktu eksekusi, speedup, dan efisiensi.
Perbandingan dengan Penelitian Sebelumnya
Perbandingan dilakukan dengan menjalankan program GPA paralel pada sistem memori bersama dan memori terdistrbusi. Program GPA paralel dijalankan pada hardware dengan spesifikasi yang sama. Sistem memori bersama menggunakan 4 core prosesor, sedangkan sistem memori terdistribusi menggunakan 4 PC. Panjang data sekuens yang digunakan dimulai dari 1000 bp sampai 16000 bp. Perbandingan dilakukan dengan melihat efisiensi kedua sistem memori.
Bahan
Bahan penelitian menggunakan dua sekuens DNA untuk verifikasi kebenaran algoritme GPA. Dua sekuens DNA tersebut adalah GlyRS1 Saccharomyces cereviseae (SYG_YEAST) dan GlyRS Schizosaccharomyces pombe (SYG_SCHPO).
Alat
Penelitian ini dilakukan dengan menggunakan empat buah komputer dengan spesifikasi CPU Intel Core i3-3220 @ 3.30 GHz dengan 4 core CPU dan RAM 8 GB.
HASIL DAN PEMBAHASAN
Implementasi Global Pairwise Alignment Sekuensial
6
Verifikasi algoritme GPA dilakukan dengan menggunakan tool ClustalW2 pada pengaturan standar. Gambar 4 menunjukkan hasil penjajaran ClustalW2 dan algoritme GPA. Secara umum, algoritme GPA telah berhasil menyejajarkan 2 sekuens. ClustalW2 menghasilkan penjajaran dengan gap yang lebih rapat.
Gambar 4 Hasil penjajaran ClustalW2 dan algoritme GPA
Hasil tersebut memverifikasi bahwa algoritme GPA sekuensial adalah benar. Selanjutnya algoritme GPA tersebut akan diparalelisasi.
Implementasi Global Pairwise Alignment Paralel dengan Skema Partisi
Blocked Column-wise
7
1 int jfirst, jlast 2 rank = MPI_Comm_rank 3 size = MPI_Comm_size
4 jfirst = rank * n/size + 1
Setiap prosesor akan menghitung berdasarkan baris dari kolom pertamanya (jfirst) sampai kolom terakhirnya (jlast). Ketika perhitungan tiap prosesor sudah mencapai batas kolom terakhirnya (jlast), maka prosesor akan mengirimkan nilai
Ci,jlast kepada prosesor berikutnya menggunakan prosedur MPI_Send. Semua
prosesor melakukan proses pengiriman kecuali prosesor terakhir. Kemudian setiap prosesor menerima nilai yang dikirimkan prosesor sebelumnya dan menyimpannya sebagai Ci,jfirst-1. Setiap prosesor melakukan proses penerimaan kecuali prosesor
pertama. Berikut adalah pseudocode untuk skema pengiriman dan penerimaan nilai di dalam matriks yang dilakukan secara blocked column-wise.
5 for i = 1 to m
Langkah demi langkah pengisian matriks dan komunikasi yang dilakukan oleh prosesor pada GPA paralel adalah sebagai berikut.
1 Inisialisasi matriks
Sebagai contoh, sekuens ATGAGT ingin disejajarkan dengan sekuens ATGAC menggunakan 2 prosesor (P0 dan P1). Pertama, matriks kemiripan Fm,n dari kedua
sekuens tersebut diinisialisasi. Pada tahap ini inisialisasi dilakukan oleh setiap prosesor yang digunakan dengan pseudocode berikut.
1 for j = 0 to n/size
2 C[0][j+1] = (j + jfirst) * GAP 3 if(rank == 0) //first processor 4 for i = 1 to m
5 C[i][0] = i * GAP
8
Gambar 5 Inisialisasi matriks Fm,n GPA paralel
Inisialisasi matriks GPA sekuensial tidak membagi matriks menjadi beberapa bagian, berbeda dengan inisialisasi matriks GPA paralel yang ditunjukkan Gambar 5. Setelah diinisialisasi, pengisian matriks GPA sekuensial dimulai dari sel 1 kolom 1 sampai sel terakhir kolom terakhir oleh hanya 1 prosesor seperti pada Gambar 6.
Gambar 6 Inisialisasi matriks Fm,n GPA sekuensial
2 Pengisian tiap nilai sel matriks
Nilai sel matriks diisi menggunakan Persamaan (1) di bawah ini: diag = Ci-1,j-1 + SIMILARITY(Xi,Yj)
Ci,j = MAX up = Ci-1,j + GAP (1)
left = Ci,j-1 + GAP
Seperti yang sudah dijelaskan sebelumnya pada prosedur SIMILARITY, jika residu DNA kedua sekuens sama, maka nilai SIMILARITY sama dengan MATCH (+1). Sebaliknya, jika berbeda, maka nilai SIMILARITY sama dengan MISMATCH (-1). Nilai GAP diatur di awal sama dengan -3. Hasil pengisian sel kolom 1 baris 1 matriks Fm,n adalah sebagai berikut:
C1,1 = MAX [C1-1,1-1 + S(A,A), C1-1,1 + GAP, C1,1-1 + GAP]
= MAX [C0,0 + MATCH, C0,1 + (-3), C1,0 + (-3)]
= MAX [0 + 1, (-3) - 3, (-3) - 3] = MAX [1, -6, -6]
C1,1 = 1
Apabila proses pengisian dilanjutkan dari baris pertama, maka ketika P0 mencapai bagian kolom terakhirnya (dicatat pada variabel jlast), nilai pada Ci,jlast
9 MPI_Recv yang bersifat blocking communication, yang artinya P1 tidak akan memulai prosesnya sebelum buffer pada prosedur MPI_Recv terisi. Dalam hal ini, P1 baru akan memulai prosesnya apabila sudah menerima nilai dari P0.
Gambar 7 Proses pengiriman nilai -5 dari P0 ke P1
Gambar 7 menunjukkan P1 dapat memulai proses pengisian matriks setelah menerima nilai -5 sebagai Ci,jlast-1. Apabila proses diteruskan, P0 akan mengirimkan
nilai Ci,jlast dan diterima oleh P1 sebagai Ci,jlast-1 untuk setiap iterasi i sampai m.
Gambar 8 Pengisian sel matriks Fm,n
Gambar 8 menunjukkan proses pengisian sel matriks GPA paralel menggunakan 2 prosesor. Sesuai dengan pseudocode, P0 sebagai prosesor pertama hanya melakukan prosedur MPI_Send, sedangkan P1 sebagai prosesor terakhir (karena hanya menggunakan 2 prosesor) hanya melakukan prosedur MPI_Recv.
Verifikasi Kebenaran Algoritme GPA Paralel
10
pengisian matriks dari prosesor ke-0 dan ke-1 digabungkan, hasilnya akan sama persis dengan matriks GPA sekuensial. Hal ini menunjukkan verifikasi kebenaran algoritme GPA paralel yang sudah 100% sesuai dengan algoritme GPA sekuensial.
Gambar 9 Perbandingan hasil algoritme GPA sekuensial (kiri) dan paralel dua prosesor (kanan)
Memori Penyimpanan Matriks
Pada sistem memori bersama, GPA paralel yang dijalankan memungkinkan untuk melakukan pengisian pada satu matriks yang sama. Sedangkan GPA paralel pada sistem memori terdistribusi mengharuskan setiap komputer yang terhubung membuat matriks pada memorinya sendiri. Untuk itu perlu diperhatikan ukuran matriks pada masing-masing komputer.
11 Analisis Hasil
Analisis waktu eksekusi
Waktu eksekusi terbagi menjadi waktu eksekusi sekuensial dan waktu eksekusi paralel. Waktu eksekusi sekuensial adalah lamanya waktu berlangsung antara awal dan akhir dari proses eksekusi program sekuensial. Waktu eksekusi paralel adalah lamanya waktu berlangsung dari komputasi paralel dimulai sampai momen ketika elemen terakhir yang diproses selesai dieksekusi (Grama et al. 2003).
Gambar 10 Grafik waktu eksekusi program penjajaran sekuens. 1 PC, 2 PC, 3 PC, 4 PC.
Gambar 10 menunjukkan perbedaan waktu eksekusi terlihat untuk panjang sekuens 10 000 bp sampai 30 000 bp. Waktu eksekusi paralel lebih cepat dari waktu eksekusi sekuensial dan penambahan jumlah PC meningkatkan kecepatannya. Hal ini menunjukkan skalabilitas program GPA paralel yang dikembangkan.
Analisis speedup
Speedup mencatat keuntungan relatif dari menyelesaikan masalah secara paralel. Nilai speedup (S) didapatkan dari hasil bagi antara waktu eksekusi sekuensial (Ts) dengan waktu eksekusi paralel (Tp) (Grama et al. 2003).
Gambar 11 Grafik speedup komputasi paralel algoritme GPA. 2 PC, 3 PC, 4 PC.
1000 2000 5000 10000 20000 25000 30000
W
1000 2000 5000 10000 20000 25000 30000
12
Gambar 11 menunjukkan peningkatan speedup pada panjang sekuens 1000 bp sampai 10 000 bp. Speedup untuk masing-masing skenario penggunaan PC cenderung konstan pada panjang sekuens 20 000 bp sampai 30 000 bp. Speedup dengan 2 PC mencapai rasio 1.78, sementara speedup dengan 3 PC dan 4 PC masing-masing mencapai rasio 2.57 dan 3.37. Hal ini menunjukkan bahwa penambahan jumlah PC untuk menjalankan program paralel akan meningkatkan speedup pada algoritme GPA.
Analisis efisiensi
Efisiensi adalah nilai hitungan perbandingan speedup dengan penggunaan sumber daya yang ada, dalam hal ini banyaknya PC. Nilai efisiensi (E) didapatkan dari hasil bagi antara speedup (S) dengan jumlah PC (p) yang digunakan. Dalam sistem paralel ideal, nilai S sama dengan p sehingga nilai efisiensi sama dengan satu. Namun pada prakteknya, nilai S selalu kurang dari p sehingga nilai efisiensi berkisar antara 0 dan 1 (Grama et al. 2003). Hasil perhitungan nilai efisiensi dapat dilihat pada Gambar 12.
Gambar 12 Grafik efisiensi komputasi paralel algoritme GPA. 2 PC, 3 PC, 4 PC.
Gambar 12 menunjukkan efisiensi komputasi paralel algoritme GPA menggunakan 2 PC sampai 4 PC. Efiensi terus meningkat sampai pada panjang sekuens 10 000 bp. Masing-masing skenario penggunaan PC mencapai efisiensi konstan pada panjang sekuens 20 000 bp sampai 30 000 bp. Efisiensi konstan menunjukkan bahwa kinerja program paralel scalable dengan ukuran data. Efiensi dengan 2 PC mencapai 95.62% pada panjang sekuens 30 000 bp. Untuk panjang sekuens yang sama, efisiensi 3 PC dan 4 PC masing-masing mencapai 92.38% dan 89.81%. Hasil lengkap dari run program GPA sekuensial dan paralel tertera pada Lampiran 1.
Perbandingan dengan Penelitian Sebelumnya
Perbandingan dilakukan dengan menjalankan program GPA paralel pada sistem memori bersama dan pada sistem memori terdistribusi menggunakan spesifikasi hardware yang sama. Pada sistem memori bersama program GPA
0%
1000 2000 5000 10000 20000 25000 30000
E
fis
ien
si
13 paralel dijalankan oleh 4 core prosesor, sementara pada sistem memori terdistribusi program GPA paralel dijalankan oleh 4 PC. Jumlah panjang sekuens yang digunakan juga sama, yaitu dari 1000 bp sampai 16 000 bp. Hasil perbandingan ditunjukkan pada Gambar 13.
Gambar 13 Grafik efisiensi GPA pada sistem memori bersama dan sistem memori terdistribusi. distributed memory, shared memory. Berdasarkan Gambar 13, efisiensi kedua sistem memori terus meningkat mulai dari panjang sekuens 1000 bp sampai 16 000 bp. Efisiensi sistem memori terdistribusi sedikit di bawah efisiensi sistem memori bersama, yaitu 83.66% dibanding 89.73%. Namun, penerapan GPA paralel pada sistem memori terdistribusi terbukti scalable. Hal ini berarti speedup yang lebih tinggi dapat dicapai dengan menambah jumlah PC yang menjalankan program GPA paralel. Hasil lengkap perbandingan GPA paralel pada sistem memori bersama dan sistem memori terdistribusi tertera pada Lampiran 2.
KESIMPULAN DAN SARAN
Kesimpulan
14
Saran
Saran untuk penelitian selanjutnya adalah untuk menambahkan fitur gap extension sehingga hasil penjajaran lebih optimal dan menambah jumlah PC untuk menjalankan program paralel. Selain itu, penelitian selanjutnya dapat pula membandingan kinerja antara komputer dengan spesifikasi kinerja tinggi dan cluster komputer dengan spesifikasi kinerja rumahan. Saran lainnya adalah untuk mengembangkan algoritme GPA paralel pada sistem hibrida shared-distributed memory.
DAFTAR PUSTAKA
Akbar AR, Sukoco H, Kusuma WA. 2015. Comparison of data partitioning schema of parallel pairwise alignment on shared memory system. Telkomnika. 13(2): 694-702. doi: 10.12928/telkomnika.v13i2.1415.
[DDBJ] DNA Data Bank of Japan. 2015. ClustalW help [internet]. [diperbaharui 2015 Apr 6]. Tersedia pada: http://www.ddbj.nig.ac.jp/search/help/ clustalwhelp-e.html
Grama A, Gupta A, Karypis G, Kumar V. 2003. Introduction to Parallel Computing: Second Edition. Edinburgh (GB): Benjamin/Cumming. hlm 233-275.
Gautham N. 2006. Bionformatics Databases and Algorithms. Oxford (GB): Alpha Science International. hlm 69-80.
Hsien-Yu L, Meng-Lai Y, Yi C. 2004. A parallel implementation of the Smith-Waterman algorithm for massive sequences searching. Engineering in Medicine and Biology Society. 2(9):2817-2820.
Lamport L. 1979. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers. 100(9):690-691. Liu Y, Wirawan A, Schmidt B. 2013. CUDASW++ 3.0: accelerating
SmithWaterman protein database search by coupling CPU and GPU SIMD instructions. BMC Bioinformatics. 14(117): 1-10.
Mount DW. 2001. Bioinformatics: Sequences and Genome Analysis. New York (US): Cold Spring Harbor Laboratory. hlm 11.
Quinn MJ. 2003. Parallel Programming in C with MPI and OpenMP. New York (US): McGraw-Hill. hlm 94-95.
15 Lampiran 1 Hasil run program GPA sekuensial dan paralel dengan 2
sampai 4 PC untuk panjang sekuens 1000 bp sampai 30 000 bp Panjang sekuens: 1000 bp
Pengulangan Sekuensial Paralel (procs)
2 3 4
Pengulangan Sekuensial Paralel (procs)
16
Lampiran 1 Lanjutan
Panjang sekuens: 5000 bp
Pengulangan Sekuensial Paralel (procs)
2 3 4
Pengulangan Sekuensial Paralel (procs)
17 Lampiran 1 Lanjutan
Panjang sekuens: 20000 bp
Pengulangan Sekuensial Paralel (procs)
2 3 4
Pengulangan Sekuensial Paralel (procs)
18
Lampiran 1 Lanjutan
Panjang sekuens: 30000 bp
Pengulangan Sekuensial Paralel (procs)
2 3 4
1 9.1124 5.1005 3.5392 2.7006
2 9.1122 5.1000 3.5375 2.7011
3 9.1111 5.1009 3.4991 2.7001
4 9.1117 5.1041 3.5375 2.7001
5 9.1113 5.0990 3.5412 2.7486
6 9.1129 5.1019 3.5384 2.6998
7 9.1118 5.0991 3.5378 2.7018
8 9.1133 5.1037 3.5619 2.7020
9 9.1125 5.1003 3.5390 2.7019
10 9.1123 5.1009 3.4985 2.7016
Rataan 9.1122 5.1010 3.5330 2.7058
Speedup 1.7863 2.5792 3.3677
19 Lampiran 2 Hasil run program GPA paralel pada sistem memori
terdistribusi dan sistem memori bersama dengan panjang sekuens 1000 bp sampai 16 000 bp
Panjang sekuens: 1000 bp
Pengulangan Sekuensial Paralel 4 PC/Core
Distributed memory Shared Memory
1 0.0159 0.0145 0.0139
Efisiensi (%) 22.7956 24.1003
Panjang sekuens: 2000 bp
Pengulangan Sekuensial Paralel 4 PC/Core
Distributed memory Shared Memory
1 0.0469 0.0284 0.0239
20
Lampiran 2 Lanjutan
Panjang sekuens: 4000 bp
Pengulangan Sekuensial Paralel 4 PC/Core
Distributed memory Shared Memory
1 0.1349 0.0489 0.0496
Efisiensi (%) 67.1474 68.7408
Panjang sekuens: 8000 bp
Pengulangan Sekuensial Paralel 4 PC/Core
Distributed memory Shared Memory
1 0.5385 0.1717 0.1674
21 Lampiran 2 Lanjutan
Panjang sekuens: 16000 bp
Pengulangan Sekuensial Paralel 4 PC/Core
Distributed memory Shared Memory
1 2.1598 0.6537 0.6038
2 2.1600 0.6444 0.6035
3 2.1601 0.6445 0.6029
4 2.1601 0.6458 0.6024
5 2.1600 0.6453 0.6027
6 2.1601 0.6442 0.6006
7 2.1598 0.6437 0.5996
8 2.1602 0.6447 0.6005
9 2.1602 0.6437 0.6018
10 2.1604 0.6448 0.6002
Rataan 2.1601 0.6455 0.6018
Speedup 3.3466 3.5894
22
RIWAYAT HIDUP
Penulis dilahirkan di Yokohama pada tanggal 20 Mei 1993. Penulis merupakan anak pertama dari empat bersaudara pasangan Wihatmoko Waskioaji dan Lina Herlina. Penulis mengenyam pendidikan dasar di SD Negeri Puspiptek Kota Tangerang Selatan (1999-2005). Penulis melanjutkan pendidikan menengah pertama di SMP Islam Nurul Fikri Boarding School Kabupaten Serang (2005- 2008). Kemudian, penulis melanjutkan pendidikan menengah atas di SMA Negeri 2 Kota Tangerang Selatan (2008-2011). Penulis berkesempatan melanjutkan studi di Institut Pertanian Bogor melalui jalur Ujian Talenta Masuk IPB (UTM) di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.