Komputasi Paralel Multiple Sequence Alignment menggunakan Message Passing Interface

KOMPUTASI PARALEL MULTIPLE SEQUENCE
ALIGNMENT MENGGUNAKAN MESSAGE PASSING
INTERFACE

RAMDAN SATRA

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa tesis berjudul Komputasi Paralel
Multiple Sequence Alignment menggunakan Message Passing Interface 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 tesis ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut

Pertanian Bogor.
Bogor, September 2014
Ramdan Satra
NIM G651120591

RINGKASAN
RAMDAN SATRA. Komputasi Paralel Multiple Sequence Alignment
menggunakan Message Passing Interface. Dibimbing oleh WISNU ANANTA
KUSUMA dan HERU SUKOCO.
Multiple sequence alignment (MSA) adalah teknik untuk menemukan
kesamaan dalam banyak sekuen. Teknik ini sangat penting untuk mendukung
banyak tugas bioinformatika seperti mengidentifikasi single nucleotide
polymorphism (SNP), membuat phylogenetic tree, dan metagenome fragments
binning. Algoritma sederhana untuk MSA adalah Algoritma Star.
Algoritma ini terdiri atas tiga tahap, yaitu
menjajarkan semua
kemungkinan pasangan sekuen, menentukan sekuen star yang dipilih dari sekuen
yang memiliki nilai penjajaran maksimum, dan menjajarkan semua sekuen
terhadap sekuen star. Setiap pasangan sekuen dijajarkan dengan menggunakan
teknik pemrograman dinamis. Kompleksitas penjajaran sekuen DNA

menggunakan teknik pemrograman dinamis mengikuti fungsi eksponensial.
Waktu komputasi meningkat secara eksponensial seiring dengan meningkatnya
jumlah dan panjang sekuen DNA. Penelitian ini bertujuan untuk mempercepat
perhitungan MSA menggunakan message passing interface (MPI).
Evaluasi kinerja dari metode yang diusulkan dilakukan dengan
menghitung speedup. Percobaan dilakukan dengan menggunakan data Glycine
max-kromosom-9-BBI dengan jumlah 64 sekuen yang memiliki panjang seragam,
yaitu 800 base pair (bp). Sekuens ini dihasilkan dengan cara memotong secara
acak sekuen referensi dari Glycine max-kromosom-9-BBI yang bersumber dari
national center for biotechnology information (NCBI). Hasil penelitian
menunjukkan bahwa teknik yang diusulkan mampu menghasilkan speedup
sebesar tiga kali, dengan menggunakan lima komputer. Selain itu, dapat ditarik
kesimpulan bahwa peningkatan jumlah komputer akan meningkatkan speedup.
Kata kunci : multiple sequence alignment, message passing interfaces, komputasi
paralel, DNA.

SUMMARY
RAMDAN SATRA. Multiple Sequence Alignment Parallel Computing using
Message Passing Interface. Supervised by WISNU ANANTA KUSUMA and
HERU SUKOCO.

Multiple sequence alignment (MSA) is a technique for finding similarity
in many sequences. This technique is very important to support many
Bioinformatics task such as identifying single nucleotide polymorphism (SNP),
generating phylogenetic tree, and metagenome fragments binning. The simplest
algorithm in MSA is star algorithm.
This algorithm consists of aligning all possible pairs of sequences, finding
a sequence Star chosen from sequence that has maximum alignment score, and
aligning all sequences referred to the sequence Star. Each of pairwise alignments
is conducted using dynamic programming technique. The complexity of DNA
multiple sequence alignment using dynamic programming technique is very high.
The computation time is increased exponentially due to the increasing of the
number and the length of DNA sequences. This research aims to accelerate
computation of star multiple sequence alignment using message passing interfaces
(MPI).
The performance of the proposed method was evaluated by calculating
speedup. Experiment was conducted using 64 sequences of 800 base pair Glycinemax-chromosome-9-BBI fragments yielded by randomly cut from reference
sequence of Glycine-max-chromosome-9-BBI taken from national center for
biotechnology information (NCBI). The results showed that the proposed
technique could obtain speed up three times using five computers when aligning
64 sequences of Glycine-max-chromosome-9-BBI fragments. Moreover, the

increasing of the number of computers would significantly increase speed up of
the proposed technique.
Keywords: multiple sequence alignment, message passing interfaces, parallel
computation, DNA.

© Hak Cipta Milik IPB, Tahun 2014
Hak Cipta Dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan
atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan,
penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau
tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan
IPB
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis ini
dalam bentuk apa pun tanpa izin IPB

KOMPUTASI PARALEL MULTIPLE SEQUENCE
ALIGNMENT MENGGUNAKAN MESSAGE PASSING
INTERFACE

RAMDAN SATRA


Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Komputer
pada
Program Studi Ilmu Komputer

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2014

Penguji Luar Komisi pada Ujian Tesis:

Dr Ir Sri Wahjuni, MT

Judul Tesis : Komputasi Paralel Multiple Sequence Alignment menggunakan
Message Passing Interface
Nama
: Ramdan Satra

NIM
: G651120591

Disetujui oleh
Komisi Pembimbing

DrEng Wisnu Ananta Kusuma, ST MT
Ketua

DrEng Heru Sukoco, SSi MT
Anggota

Diketahui oleh

Ketua Program Studi
Ilmu Komputer

Dekan Sekolah Pascasarjana

DrEng Wisnu Ananta Kusuma, ST MT


Dr Ir Dahrul Syah, MScAgr

Tanggal Ujian:

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan Desember 2013 ini ialah
Pemrosesan Paralel Penjajaran Sekuen DNA, dengan judul Komputasi Paralel
Multiple Sequence Alignment menggunakan Message Passing Interface.
Terima kasih penulis ucapkan kepada Bapak Dr Wisnu Ananta Kusuma dan
Bapak Dr Heru Sukoco selaku pembimbing. Di samping itu, penghargaan penulis
sampaikan kepada Bapak Muhammad Adi Puspo Sujiwo yang telah membantu
dalam pembuatan Cluster Komputer dan kepada bapak Dr. Ir. Yandra Arkeman
M.Eng yang membantu memfasilitasi beberapa unit Komputer. Ungkapan terima
kasih juga disampaikan kepada ayah, ibu, serta seluruh keluarga, atas segala doa
dan kasih sayangnya.

Semoga karya ilmiah ini bermanfaat.

Bogor, September 2014
Ramdan Satra

DAFTAR ISI
DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN

vi

1 PENDAHULUAN
Latar Belakang
Perumusan Masalah
Tujuan Penelitian
Manfaat Penelitian
Ruang Lingkup Penelitian


1
1
2
2
2
2

2 TINJAUAN PUSTAKA
Sequence alignment
Dynamic Programming Algorithm
Needleman-Wunsch Algorithm
Multiple Sequence Alignment (MSA)
Star Alignment
Komputasi Paralel
Pemrograman Paralel
Message Passing Interface (MPI)
Penjadwalan Round Robin

3

3
3
4
7
7
9
10
12
12

3 METODE
Tahapan Penelitian
Bahan
Alat

13
13
15
15


4 HASIL DAN PEMBAHASAN
Persiapan Data
Desain Aplikasi Sekuensial
Desain Aplikasi Paralel
Analisis Hasil
a. Waktu eksekusi penjajaran sekuen
b. Analisa Speedup
c. Analisa Efisiensi

16
16
16
21
22
22
23
24

5 SIMPULAN DAN SARAN

25

DAFTAR PUSTAKA

26

RIWAYAT HIDUP

43

DAFTAR GAMBAR
1 Ilustrasi penjajaran global dan lokal
2 Sequence alignment
3 Matriks Am,n
4 Pengisian cell matriks Am,n
5 Jalur global sequence alignment yang mungkin
6 Jalur global sequence alignment yang optimal
7 Hasil global sequence alignment
8 Matriks identitas pasangan sekuen
9 Skor kemiripan penjajaran sekuen
10 Pemilihan sekuen star
11 Realignment
12 Arsitektur flynn's taxonomy (Qiunn 2003)
13 Tahapan foster's methodology (Quinn 2003)
14 Ilustrasi distributed memory dengan MPI (Quinn 2003)
15 Ilustrasi algoritma penjadwalan round robin (RR)
16 Ilustrasi distribusi proses jika jumlah pasangan sekuen lebih banyak
dibanding jumlah komputer atau Kn > Pn
17 Ilustrasi pembagian data sekuen dengan MPI
18 Tahapan fungsi pembacaan data sekuen DNA
19 Format file .TXT
20 Tahapan fungsi inisialisasi matriks
21 Tahapan fungsi perhitungan skor kemiripan sekuen
22 Tahapan fungsi pemilihan sekuen star
23 Tahapan fungsi penjajaran sekuen star dengan sekuen lainnya
24 Pengembangan aplikasi sekuensial menjadi aplikasi paralel
25 Grafik waktu eksekusi penjajaran sekuen
26 Speedup komputasi paralel
27 Grafik nilai efisiensi penggunaan prosesor terhadap jumlah data
sekuen

3
3
4
5
5
6
6
7
8
8
9
10
11
12
12
14
14
16
16
17
18
19
20
22
23
23
24

DAFTAR LAMPIRAN
1 Hasil pengujian aplikasi MSA sekuensial
2 Hasil pengujian aplikasi MSA paralel dengan 3 PC
3 Hasil pengujian aplikasi MSA paralel dengan 4 PC
4 Hasil pengujian aplikasi MSA paralel dengan 5 PC

28
31
35
39

1 PENDAHULUAN
Latar Belakang
Pada bioinformatika, terdapat masalah yang sangat mendasar dan penting
yaitu masalah penjajaran sekuen (sequence alignment). Penjajaran sekuen dapat
didefinisikan sebagai teknik untuk menemukan bagian mana dari sekuen yang
sama dan bagian mana yang berbeda (Junior 2003). Penjajaran sekuen dapat
dilakukan terhadap dua sekuen (pairwise sequence) atau banyak sekuen (multiple
sequence). Multiple sequence alignment (MSA) adalah teknik menjajarkan
beberapa sekuen biologi (Liu et al. 2009). MSA digunakan dalam analisis
filogenetik untuk menilai asal-usul spesies. MSA digunakan juga untuk
pencarian single nucleotide polymorphism (SNP) untuk pemuliaan tanaman
genetika berbasis molekuler (Sujiwo dan Kusuma 2013).
Kompleksitas komputasi penjajaran sekuen yaitu O(LN), dengan L
merupakan panjang tiap sekuen dan N adalah jumlah sekuen (Lloyd 2010).
Semakin panjang dan banyak data sekuen yang akan dijajarkan maka semakin
lama waktu komputasinya. Waktu optimal penjajaran sekuen meningkat secara
eksponensial seiring peningkatan jumlah dan panjang sekuen (Edgar dan
Batzoglou 2006).
Penelitian untuk mengoptimalkan komputasi penjajaran sekuen telah
banyak dilakukan, di antaranya menggunakan algoritme dynamic programming
dengan kompleksitas O(mn) oleh Zhou dan Chen (2013). Selanjutnya penelitian
menggunakan algoritme heuristic seperti FASTA dan FASTP oleh Pearson et al.
(1988), BLAST oleh Altschul et al. (1997), Pertsemlidis et al. (2001), Rangwala
et al. (2005), dan Kanchanamala et al. (2012). Myers et al. (1988) dan Sandes et
al. (2011) menggunakan algoritme linear space untuk mengoptimalkan
kompleksitas penjajaran sekuens menjadi O(n).
Selain itu penelitian dengan menggunakan komputasi parael untutk
menyelesaikan permasalahan MSA juga telah dilakukan, antara lain
menggunakan MPI (Sunarto et al. 2013) dan GPU-CUDA (Liu et al. 2009;
Sujiwo dan Kusuma 2013; Ling et al. 2009; Khajeh-Saeed et al. 2010;
Siriwardena et al. 2010; Gudyś et al. 2011; Li J et al. 2012; dan Korpar 2013).
Penelitian ini akan memanfaatkan komputasi paralel pada cluster
komputer yang lebih dikenal dengan Distributed Memory untuk memperbaiki
penelitian yang dilakukan Sunarto (2013) yang menggunakan algoritma Star
untuk MSA pada lingkungan paralel (Sunarto et al. 2013). Penelitian yang
dilakukan oleh Sunarto membatasi pada 4 sekuen dengan 6 komputer.
Penambahan sekuen yang akan dijajarkan mengharuskan penambahan jumlah
komputer (Sunarto et al. 2013). Penambahan jumlah komputer akan
menyebabkan biaya penjajaran sekuen semakin mahal. Penelitian yang kami
lakukan adalah tidak membatasi jumlah komputer dan jumlah sekuen yang akan
digunakan. Penambahan jumlah sekuen tidak akan menambah jumlah komputer,
akan tetapi semua pasangan sekuen akan dialokasikan sesuai komputer yang
digunakan.

2
Perumusan Masalah
Rumusan masalah penelitian ini adalah bagaimana mengoptimalkan proses
komputasi multiple sequence alignment menggunakan komputasi paralel dengan
message passing inteface.

Tujuan Penelitian
Tujuan penelitian ini adalah untuk mendapatkan waktu proses komputasi
multiple sequence alignment yang optimal dengan menggunakan komputasi
paralel.

Manfaat Penelitian
Manfaat penelitian ini adalah untuk mempercepat waktu komputasi
penjajaran sekuen (sequence alignment) DNA, RNA atau protein percepatan
proses penjajaran sekuen maka akan mempercepat dalam menemukan
keanekaragaman sifat pada makhluk hidup dan mengetahui sifat-sifat unggul
pada makhluk hidup.

Ruang Lingkup Penelitian
Ruang lingkup pada penelitian ini adalah sebagai berikut :
1. Penerapannya pada cluster tertutup dengan pengaturan IP address static
khusus untuk jaringan cluster komputer lab. NCC.
2. Data sekuen maksimal panjang 850 base pair (bp) dan jumlah 64 sekuen
dengan format FASTA didapatkan dari NCBI.
3. Menggunakan 5 unit komputer dengan spesifikasi hardware yang sama.

3

2 TINJAUAN PUSTAKA
Sequence alignment
Penjajaran sekuens (sequence alignment) adalah salah satu operasi dasar
dalam biologi komputasi.. Salah satu algoritme yang efisien untuk penjajaran
sekuens adalah dengan menggunakan algoritme dynamic programming (Charter et
al. 2000). Ada dua metode yang digunakan untuk penjajaran dua sekuens dengan
pendekatan dynamic programming yaitu penjajaran global yang menggunakan
algoritme needleman-wunsch dan penjajaran lokal yang menggunakan algoritme
smith waterman (Huang et al. 2002) (Junior 2003) (Charter et al. 2000) (KhajehSaeed et al. 2010) (Siriwardena et al. 2010). Ilustrasi penjajaran global dan lokal
ditunjukan pada Gambar 1. Penjajaran sekuens digunakan untuk menemukan
kesamaan biologis antara manusia, tikus, sapi dan lainnya. Penjajaran digunakan
untuk melihat kesamaan elemen pada sekuens yang ditunjukan dengan garis
vertikal antar nukleotida pada dua sekuens seperti yang ditunjukan Gambar 2.

Gambar 1 Ilustrasi penjajaran global dan lokal

Gambar 2 Sequence alignment
Dynamic Programming Algorithm
Pemrograman dinamis (dynamic programming) adalah pendekatan
optimasi yang memecahkan masalah yang kompleks dengan membaginya dalam
urutan sub masalah sederhana. Sub masalah ini diselesaikan dalam beberapa
tahap, dan setiap tahap terdiri atas beberapa solusi yang saling terkait (Steeman
2012). Penerapan pemrograman dinamis pada algoritme smith waterman dan
needleman-wunsch untuk menemukan jalur yang optimal dimulai dengan
inisialisasi matriks, pengisian setiap cell matriks dengan skor penjajaran yang

4
paling maksimal dan setelah semua matriks terisi dilakukan pelacakan kembali
(trace back) yang dimulai dari skor tertinggi pada bagian ujung kanan bawah
matriks.
Needleman-Wunsch Algorithm
Algoritma needleman-wunsch ini pertama kali diusulkan oleh Saul B.
Needleman dan Christian D. Wunsch pada tahun 1970. Algoritma needlemanwunsch melakukan penjajaran sekuens global, yaitu melihat tingkat kemiripan
yang paling tinggi dari penjajaran sekuen global yang ditunjukkan oleh nilai skor
penjajarannya (Global … 2013)(Siriwardena et al. 2010).
Tahapan algoritma needleman-wunsch adalah sebagai berikut :
1. Inisialisasi matriks
Pada tahap ini pairwise sequence dibuat menjadi matriks M x N, di
mana M adalah sekuens pertama dan N adalah sekuens kedua, sebagai contoh,
ada sepasang sekuens, di mana ATGCGC adalah sequence 1 dengan panjang
M dan AGACT adalah sequence 2 dengan panjang N, maka kedua sekuens
akan menjadi matriks [m,n] atau kita namakan matrik Am,n, seperti yang
ditunjukan Gambar 3.
A T G C G C
0 0 0 0 0 0 0
A 0
G 0
A 0
C 0
T 0
Gambar 3 Matriks Am,n





Variabel yang digunakan :
m menjelaskan baris dan n menjelaskan kolom.
A nilai matriks untuk setiap cell dinyatakan sebagai (Am,n)
S adalah skor setiap cell dinyatakan sebagai (Sm,n)
W sebagai gap alignment

2. Pengisian nilai tiap cell matriks (matrix filling)
Pengisian cell matriks untuk matriks Am,n, didapatkan dengan
menggunakan persamaan (1) di bawah ini :

(1)

Tahapan pengisian cell matrik ini dimulai dengan penentuan skor
matching (cocok), mismatch (tidak cocok) dan gap antara karakter sekuen 1
dengan sekuen 2. Pemberian gap bertujuan untuk mendapatkan hasil
penjajaran sekuen yang memiliki banyak kesamaan karakter antara sekuen 1
dengan sekuen 2. Aturan pemberian skor adalah dengan memberikan selisih

5
yang berbeda jauh antara nilai matching, mismatch dan gap. Tujuan
pemberian nilai ini adalah untuk mendapatkan nilai cell yang jauh berbeda
dengan cell lainnya. Perbedaan nilai pada setiap cell akan memudahkan
dalam menentukan hasil penjajaran sekuen. Semakin besar perbedaan skor
nilai matching dibanding mismatch maka akan semakin baik untuk
mengetahui hasil penjajaran. Dalam contoh kasus ini, untuk elemen sekuen
yang sesuai (matching) diberikan nilai +5 , tidak sesuai (mismatch) diberikan
nilai -3 dan gap dikenakan penalti -4. Pengisian cell kolom 1 dan baris 1
matriks A dengan menggunakan persamaan (1) maka didapatkan hasil
sebagai berikut:
A1,1

A1,1

= Maksimum[A1-1,1-1+S1,1,A1,1+W,A1-1,1+W+0]
= Maksimun[A0,0+S1,1,A1,1+W,A0,1+W+0]
= Maksimum[0+(5),0+(-3),0+(-3)+0]
= Maksimum[5,-3,-3,0]
=5

Nilai untuk semua cell matriks Am,n apabila semua telah dihitung dapat
dilihat pada Gambar 4.
A T G C G C
0 0 0 0 0 0 0
A 0 5 2 -1 -3 -3 -3
G 0 2 2 7 4 2 -1
A 0 5 2 4 4 1 -1
C 0 2 2 1 9 6 6
T 0 -1 7 4 6 6 3
Gambar 4 Pengisian cell matriks Am,n
3. Pelacakan kembali (trace back)
Pelacakan kembali (trace back) merupakan tahap terakhir dari
algoritme Needleman-Wunsch, pada tahap ini mencari semua kemungkinan
jalur dalam penjajaran sekuen global. Pelacakan jalur dimulai dari cell baris
dan kolom terakhir, kemudian memilih cell yang tertinggi nilainya secara
vertikal, horizontal atau diagonal. Pada contoh kasus ini jalur yang
memungkinkan untuk hasil penjajaran dapat dilihat pada Gambar 5.

Gambar 5 Jalur global sequence alignment yang mungkin

6
Setelah mendapatkan beberapa jalur global maka dipilih jalur global
yang paling maksimal nilainya. Penentuan jalur yang memiliki nilai maksimal
adalah dengan menjumlahkan setiap langkah berdasarkan skor matching,
mismatch dan gap yang telah ditentukan sebelumnya. Pada tahap untuk kasus
ini didapatkan dua jalur global yang memiliki nilai maksimal seperti
ditunjukan pada Gambar 6.

Gambar 6 Jalur global sequence alignment yang optimal
Penentuan sekuen hasil penjajaran memiliki aturan penulisan sebagai
berikut :
i. apabila arah jalurnya diagonal maka karakter sekuen 1 dan sekuen 2 tetap,
ii. apabila arah jalurnya horizontal maka karakter sekuen 1 tetap dan sekuen 2
ditulis gap (-),
iii. apabila arah jalurnya vertical maka sekuen 1 ditulis gap (-) dan karakter
sekuen 2 tetap.
Sesuai aturan di atas didapatkan hasil global sequence alignment pada kasus
ini dapat dilihat pada Gambar 7.

Gambar 7 Hasil global sequence alignment

7
Multiple Sequence Alignment (MSA)
MSA merupakan masalah yang sangat mendasar dalam biologi molekuler
(Gupta et al. 1995). Metode penjajaran banyak sekuens (multiple sequence
alignment) merupakan pengembangan dari penjajaran dua sekuens. Adapun
pengertian penjajaran dua sekuen (pairwise sequence alignment) adalah
pencarian kemiripan yang terbaik dalam penjajaran global dan lokal pada dua
sekuens protein (amino acid) atau DNA (nucleicacid) (Oladele et al. 2009).

Star Alignment
Metode star alignment untuk penjajaran banyak sekuens (multiple sekuens
alignment) dapat dilakukan dalam tiga tahap (Sujiwo dan Kusuma 2013).
1. Perhitungan pairwise similarity score untuk penjajaran sekuens menggunakan
algoritme Needleman-Wunsch.
2. Pemilihan sekuens yang akan menjadi Star, dilanjutkan dengan
memutakhirkan sekuens Star dengan menjajarkan ulang terhadap sekuen
lainnya.
3. Realignment adalah penjajaran ulang untuk semua sekuens terhadap sekuen
Star.
Ilustrasi penjajaran multi sekuen adalah sebagai berikut :
Misalnya data sekuen DNA yang digunakan adalah :
Seq 1 = ATGG
Seq 2 = ATGC

Seq 3 = ATCC
Seq 4 = AGCG

Tahap pertama adalah dengan melakukan perhitungan nilai kemiripan
semua pasangan sekuen DNA. Algoritme perhitungan ini memiliki kompleksitas
O( ), di mana n adalah banyak sekuen. Pada tahap ini dimulai dengan
menghitung banyak pasangan sekuen menggunakan persamaan (2) di bawah ini:
(2)
Dengan n adalah banyak sekuen.
Hasil penentuan pasangan sekuen ditampilkan dalam matriks identitas,
kemudian setiap pasangan sekuen disimbolkan dengan Kn. Menggunakan data di
atas maka matriks identitasnya sebagai berikut (Gambar 8):
Seq 1 Seq 2 Seq 3 Seq 4
Seq 1
K1
K2
K3
Seq 2
K1
K4
K5
Seq 3
K2
K4
K6
Seq 4
K3
K5
K6
Gambar 8 Matriks identitas pasangan sekuen

8
Hasil penentuan pasangan sekuen DNA adalah :
K1 = Seq 1 (ATGG) dan Seq 2 (ATGC)
K4 = Seq 2 (ATGC) dan Seq 3 (ATCC)
K2 = Seq 1 (ATGG) dan Seq 3 (ATCC)
K5 = Seq 2 (ATGC) dan Seq 4 (AGCG)
K3 = Seq 1 (ATGG) dan Seq 4 (AGCG)
K6 = Seq 3 (ATCC) dan Seq 4 (AGCG)
Setiap pasangan sekuen di atas dijajarkan menggunakan algoritme
Needleman Wunsch. Algoritme ini menggunakan pendekatan Dynamic
Programing untuk mencari kemiripan global dari dua sekuen.
Hasil perhitungan skor kemiripan untuk semua pasangan sekuen
diperlihatkan pada Gambar 9.
0
Seq 1 Seq 2 Seq 3 Seq 4
Seq 1
0
12
4
7
Seq 2
12
0
12
7
Seq 3
4
12
0
4
Seq 4
7
7
4
0
Gambar 9 Skor kemiripan penjajaran sekuen
Tahap kedua dari algoritme star adalah pemilihan sekuen star. Penentuan
sekuen Star dengan memilih akumulasi skor kemiripan penjajaran sekuen yang
tertinggi dibanding dengan sekuen lainnya. Sekuen star akan dimutakhirkan
dengan menjajarkannya terhadap sekuen lainnya. Tujuan pemutakhiran sekuen
Star adalah untuk mendapatkan hasil penjajaran yang optimal. Sekuen star akan
dijajarkan dengan sekuen lainnya dan memungkinkan adanya perubahan karakter
dengan adanya gap pada sekuen star. Pada contoh kasus ini sekuen 2 sebagai
sekuen star akan dijajarkan dengan sekuen 1, kemudian sekuen Star baru dari hasil
penjajaran sebelumnya akan dijajarkan dengan sekuen 3, proses ini dilakukan
untuk semua sekuen. Kompleksitas tahap ini adalah O(n), dengan n adalah jumlah
sekuen. Ilustrasi pemilihan sekuen star diperlihatkan pada Gambar 10.

Gambar 10 Pemilihan sekuen star

9
Tahap ketiga dari algoritme star adalah realignment. Pada tahapan ini
dilakukan penjajaran ulang semua sekuen terhadap sekuen star. Sekuen star yang
akan dijajarkan merupakan sekuen star yang telah dimuktakhirkan. Pada contoh
kasus ini adalah sekuen 2 sebagai sekuen Star yang telah dimuktakhirkan akan
dijajarkan dengan sekuen 1, sekuen 3 dan sekuen 4. Kompleksitas pada tahapan
ini adalah O(n), dengan n adalah jumlah sekuens. Ilustrasi realignment
diperlihatkan pada Gambar 11.

Gambar 11 Realignment
Komputasi Paralel
Komputasi paralel adalah penggunaan beberapa komputer yang saling
terhubung jaringan komputer untuk mengurangi waktu yang dibutuhkan dalam
memecahkan masalah komputasi tunggal. Skema klasifikasi komputasi paralel
yang paling terkenal adalah flynn's taxonomy lihat Gambar 12. Ada empat
kategori untuk mengklasifikasikan komputer menurut Hence Flynn's (Quinn
2003), yaitu :
1. SISD (single instruction single data)
Komputer dengan arsitektur single instruction single data hanya memiliki
satu intruksi untuk satu data. Sebuah CPU hanya menjalankan satu intruksi saja
dan tidak dapat diterapkan untuk komputasi paralel.
2. SIMD (single instruction multiple data)
Single instruction multiple data memungkinkan komputer untuk mengolah
banyak data dengan satu intruksi. Processor array dan processor pipeline vector
merupakan kategori SIMD. Prosesor larik (processor array) memungkinkan satu
prosesor memroses satu intruksi, bahkan beberapa prosesor mampu melakukan
proses secara bersamaan dengan elemen data yang berbeda. Sebuah pipelined
vector processor bergantung pada kecepatan clock untuk mengeksekusi operasi
yang sama pada elemen data.
3. MISD (multiple instruction single data)
Multiple instruction single data memungkinkan komputer untuk
mengeksekusi banyak intruksi untuk satu aliran data. Komputer ini belum pernah
diciptakan hanya sekedar prototype.
4. MIMD (multiple instruction multiple data)
Multiple instruction multiple data memungkinkan komputer untuk
menjalankan beberapa intruksi dengan aliran data yang berbeda-beda. Sistem
terdistribusi (shared memory / distributed memory) termasuk kategori MIMD.

10

Instruction stream

Data stream

SISD
Uniprocessors

MISD
Systolic arrays

SIMD
Processors arrays
Pipelined vector processors

MIMD
Multiprocessors
Multicomputers

Gambar 12 Arsitektur flynn's taxonomy (Qiunn 2003)

Pemrograman Paralel

1.
2.
3.
4.

Pemrograman paralel adalah bahasa pemrograman yang membolehkan
pembuat program untuk membagi komputasi dengan tugas berbeda yang
dijalankan secara bersama-sama oleh prosesor yang berbeda. Peengembangan
perangkat lunak untuk komputasi paralel ada 4 cara yaitu : (Quinn 2003).
Mengembangkan compiler yang sudah ada dengan mengubah program sekuensial
menjadi program paralel.
Menambahkan fungsi baru pada bahasa pemrograman yang sudah ada yang
memungkinkan pengguna untuk mengekspresikan paralelisme.
Menambahkan layer paralel di bahasa pemrograman sekuensial.
Membuat bahasa dan compiler paralel yang baru.
Metode untuk algoritme pemrograman paralel yang banyak digunakan
adalah foster's methodology. Ada empat tahapan dalam foster's methodology
yaitu partitioning, communication, agglomeration dan mapping (Quinn 2003).
Ilustrasi tahapan foster's methodology dapat dilihat pada Gambar 13.

11

Gambar 13 Tahapan foster's methodology (Quinn 2003)

1.

2.

3.

4.

Penjelasan empat tahapan foster's methodology di atas adalah sebagai
berikut :
Partitioning
Partitioning merupakan proses membagi komputasi dan data menjadi
potongan-potongan (pieces) atau tugas-tugas (task-task).
Communication
Bentuk komunikasi pada paralel ada dua macam yaitu komunikasi lokal
dan komunikasi global. Secara umum komunikasi pada komputasi paralel adalah
melakukan komunikasi antara tugas-tugas (task-task) untuk melakukan
komputasi pengolahan data.
Agglomeration
Agglomeration merupakan proses mengabungkan task-task. Penggabungan
task dibutuhkan untuk mengatur pemberian beban kerja untuk prosesor. Ketika
data yang diproses besar maka dibutuhkan pengelompokan task untuk mengolah
data yang nantinya akan dibagi ke semua prosesor.
Mapping
Mapping merupakan tahap akhir dari foster's methodology, Pada tahap ini
task-task yang telah digabungkan akan ditentukan diproses oleh prosesor yang
mana. Tujuan dari mapping adalah memaksimalkan penggunaan prosesor dan
meminimalkan komunikasi antar prosesor.

12
Message Passing Interface (MPI)
MPI adalah bahasa pemrograman paralel dan merupakan bahasa tingkat
tinggi, yang berfungsi sebagai protokol komunikasi antara komputer pada
program paralel (Kurniawan 2010). MPI merupakan spesifikasi standar untuk
message-passing library (Quinn 2003). MPI dapat mempermudah dalam
pengelolaan paralelisasi, dan MPI library tersedia gratis untuk berbagai bahasa
pemrograman. MPI memungkinkan koordinasi beberapa proses pada lingkungan
distributed memory (Pineda et al. 1998). Ilustrasi MPI yang digunakan untuk
distributed memory dalam suatu jaringan komputer dapat dilihat pada Gambar
14.
Processor
Processor

Memory

Memory

Processor
Memory

Memory

Interconnection
network

Processor
Memory

Processor

Processor
Memory

Processor

Processor

Memory

Memory

Gambar 14 Ilustrasi distributed memory dengan MPI (Quinn 2003)
Penjadwalan Round Robin
Round robin (RR) merupakan algoritma penjadwalan yang sederhana dengan
pembagian proses yang sama, dirancang khusus untuk pembagian waktu (timesharing) (Behera et al. 2012). Setiap proses pada penjadwalan round robin
diberikan porsi yang sama dan proses dikerjakan sesuai urutan membentuk
lingkaran. Ilustrasi algoritma penjadwalan round robin (RR) dapat dilihat pada
Gambar 15.

Gambar 15 Ilustrasi algoritma penjadwalan round robin (RR)

13

3 METODE
Tahapan Penelitian
Secara umum penelitian ini dimulai dengan mengumpulkan data
penelitian, kemudian mendesain aplikasi sekuensial untuk multiple sequence
alignment menggunakan algoritme star alignment. Kemudian penerapan
komputasi paralel (cluster Komputer) dan analisa hasil komputasi pada cluster
Komputer. Penjelasan setiap tahapan penelitian adalah sebagai berikut :
1. Persiapan data penelitian
Data penelitian diperoleh dari national center for biotechnology
information (NCBI). NCBI merupakan tempat penyimpanan informasi
genetic. Data genetik bisa didapatkan dengan mengunjungi situs NCBI
dengan alamat url adalah sebagai berikut www.ncbi.nlm.nih.gov/genbank/.
2. Desain aplikasi sekuensial MSA dengan algoritma star
Pada tahap ini peneliti membuat aplikasi sekuensial MSA menggunakan
bahasa pemograman C.
3. Desain aplikasi paralel pada cluster komputer dengan MPI
Pada tahapan ini dikembangkan aplikasi sekuensial menjadi aplikasi
paralel. Paralisasi hanya dilakukan pada proses pairwise similarity score, karena
tahap ini merupakan tahapan yang memiliki kompleksitas tertinggi dibandingkan
tahapan lainnya dalam algoritma Star. Kompleksitas pairwise similarity score
adalah O(n2), di mana n adalah jumlah sekuen. Pemrograman paralel didesain
mengunkan foster's methodology.
Paralelisasi perhitungan pairwise similarity score dimulai dengan
partitioning yaitu membagi kombinasi pasangan sekuen K1, K2 .. Kn menjadi
beberapa proses (thread). Setiap proses akan di mapping atau dialokasikan ke
setiap komputer ilustrasinya adalah P1 = K1, P2 = K2 ….. Pn = Kn, di mana P
adalah komputer. Permasalahan apabila pasangan sekuen lebih banyak dibanding
jumlah komputer, maka dilakukan agglomeration yaitu penggabungan proses.
Setiap pasangan sekuen dialokasikan ke setiap unit komputer yang ada,
kemudian pasangan sekuen yang belum dialokasikaan akan menunggu sampai
semua proses pasangan ssekuen sebelumnyaselesai berproses. Distribusi data
sekuen dengan perbandingan jumlah pasangan sekuen lebih banyak
dibandingkan jumlah komputer akan menggunakan pejadwalan round robin.
Penjadwalan round robin pada penelitian ini adalah dengan memberikan beban
kerja yang sama untuk setiap komputer. Tahapan selanjutnya untuk setiap
komputer adalah menyelesaikan proses perhitungan skor kemiripan kemudian
akan beralih ke proses selanjutnya apabila semua komputer dalam keadaan idle
(siap menerima pekerjaan). Ilustrasi distribusi proses (thread) jika jumlah
pasangan sekuen lebih banyak dibanding jumlah komputer atau Kn > Pn dapat
dilihat pada Gambar 16.

14
Penggabungan Proses (T1)

K1

K2

Penggabungan Proses (T2)

K3

Menunggu ..

(Tn)

K4

K5

K6

Kn

P1

P2

P3

Pn

T1 Selesai T2 Mulai
P1

P2

P3

Gambar 16 Ilustrasi distribusi proses jika jumlah pasangan sekuen lebih banyak
dibanding jumlah komputer atau Kn > Pn
Paralelisasi MSA dilakukan dengan MPI menggunakan komunikasi point
to point dengan operasi blocking send and receive. Skema paralelisasi untuk MSA
adalah dengan menjadikan satu komputer sebagai pembagi data dan komputer
lainnya yang akan memproses data. Komputer pembagi yang dinamakan rank 0
akan mengirimkan data pasangan sekuen menggunakan MPI_Send(). Komputer
pemroses data yang disimbolkan dengan rank 1..n akan menerima data pasangan
sekuen dengan perintah MPI_Recv(). Komputer pemroses data akan mengirimkan
data hasil perhitungan skor kemiripan pasangan sekuen ke rank 0 menggunakan
MPI_Send(). Komputer rank 0 akan menerima data hasil perhitungan skor
kemiripan dengan perintah MPI_Recv(). Ilustrasi pembagian data sekuen DNA
dengan MPI dapat dilihat pada Gambar 17.
MPI_Send(K1) / MPI_Recv(K1)
MPI_Recv(Skor Kemiripan K1) / MPI_Send(Skor Kemiripan K1)
Rank 1

Pembagi
data

Pemroses
data

MPI_Send(K2) / MPI_Recv(K2)
MPI_Recv(Skor Kemiripan K2) / MPI_Send(Skor Kemiripan K2)
Rank 0

Rank 2

MPI_Send(Kn) / MPI_Recv(Kn)
MPI_Recv(Skor Kemiripan Kn) / MPI_Send(Skor Kemiripan Kn)
Rank n

Gambar 17 Ilustrasi pembagian data sekuen dengan MPI
4. Analisa hasil.
Pada tahap ini membandingkan hasil komputasi multiple sequence
alignment pada satu komputer dibandingkan dengan beberapa komputer dengan
melihat waktu eksekusi, speedup dan efficiency.
Untuk mendapatkan speedup komputasi pada pemrograman paralel adalah
dengan membandingakan waktu eksekusi secara sekuensial dengan waktu
eksekusi paralel (Quinn 2003). Adapun efficiency komputasi pemrograman
paralel didapatkan dengan membandingkan waktu eksekusi secara sekuensial
dengan waktu eksekusi paralel dikalikan penggunaan prosesor (Quinn 2003).
Untuk mempermudah memahami speedup dan efficiency dapat dilihat pada
rumus (2) dan (3).

15

Keterangan :
S = Speedup
E = Efficiency
Ts = Waktu eksekusi sekuensial
Tp = Waktu eksekusi paralel
P = Banyak Prosesor.

Bahan
Pada penelitian ini menggunakan data FASTA Glycine-max-chromosome-9BBI (Kedelai). Sumber data adalah diperoleh dari NCBI (National Center for
Biotechnology Information). Data dibagi menjadi 18 bagian berdasarkan dari
sekuen referensi Glycine-max-chromosome-9-BBI,
Alat
Pada penelitian ini menggunakan 5 buah komputer dengan spesifikasi CPU
Intel Core i3-3220 @ 3.30GHz dengan 4 core CPU dan RAM 8 GB.

16

4 HASIL DAN PEMBAHASAN
Persiapan Data
Data FASTA Glycine-max-chromosome-9-BBI dibagi menjadi 3, 4, 8, 12,
14, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 dan 64 berdasarkan sekuen
referensi Glycine-max-chromosome-9-BBI.
Desain Aplikasi Sekuensial
Desain aplikasi sekuensial untuk MSA dengan algoritma
menggunakan bahasa C yang terdiri dari beberapa tahapan yaitu :
a. Pembuatan fungsi pembacaan data sekuen
b. Pembuatan fungsi inisialisasi matriks
c. Pembuatan fungsi perhitungan skor kemiripan sekuen
d. Pembuatan fungsi pemilihan sekuen star
e. Pembuatan fungsi penjajaran sekuen star dengan sekuen lainnya

star

Penjelasan tiap tahapan adalah sebagai berikut :
1. Pembuatan fungsi pembacaan data sekuen DNA dengan format pembacaan
file .TXT yang berisikan karakter ATGC. Tahapan perancangan dapat dilihat
pada Gambar 18.
Deklarasi variable
untuk menampung
inputan keyboard

Pembacaan data inputan

Tampilkan data dan siap
untuk diproses

Gambar 18 Tahapan fungsi pembacaan data sekuen DNA
Adapun format file.TXT dapat dilihat pada Gambar 19.

Gambar 19 Format file .TXT
Keterangan :
Angka 3 merupakan jumlah sekuen.
Angka 1000 merupakan panjang sekuen.
Karakter ATGC merupakan data sekuen.

17
Pseudocode fungsi pembacaan data sekuen
{Deklarasi Variable}
Jumlah_Sekuen
Panjang_Sekuen
Temp_Data_Sekuen
{Pembacaan inputan Keyboard}
Perulangan Mulai dari = 0  Jumlah_Sekuen
Mulai
Temp_Data_Sekuen  Alokasi Memory = (Panjang_Sekuen +
1)
Baca Inputan Keyboard  Temp_Data_Sekuen
Berhenti
{Pencetakan data}
Perulangan Mulai dari = 0  Jumlah_Sekuen
Mulai
Cetak  Temp_Data_Sekuen
Berhenti

2. Pembuatan fungsi inisialisasi matriks.
Fungsi inisialisasi matriks merupakan tahapan awal perhitungan skor
kemiripan sekuen. Pada tahapan ini akan mengalokasikan memory sebanyak
panjang sekuen. Adapun tahapan fungsi insialisasi matriks dapat dilihat pada
Gambar 20.
Identifikasi Jumlah Sekuen

Alokasi memory untuk
menampung skor kemiripan
sekuen

Insialisasi baris dan kolom
matriks

Gambar 20 Tahapan fungsi inisialisasi matriks
Pseudocode fungsi inisialisasi matriks
{Deklarasi Variabel}
Matriks_Skor
{Pembuatan matriks untuk menampung skor}
Perulangan mulai dari = 0  Jumlah_Sekuen
Mulai
Matriks_Skor  Alokasi Memory = (Jumlah_Sekuen + 1)
Berhenti
{Inisialisasi baris dan kolom matriks skor}
Perulangan mulai dari index = 0  Jumlah_Sekuen
Mulai
Matriks_Skor [0][index] = 0
Matriks_Skor[index][0] = skor[0][index]
Berhenti

18
3. Pembuatan fungsi perhitungan skor kemiripan sekuen.
Fungsi perhitungan skor kemiripan 2 pasang sekuen akan melakukan
perhitungan untuk tiap cell matriks. Setiap cell melakukan perhitungan nilai
integer dengan alokasi memory untuk tiap cell adalah 2 byte. Adapun tahapan
dari fungsi perhitungan skor kemiripan 2 pasang sekuen dapat dilihat pada
Gambar 21.
Deklarasi
variabel

Penentuan nilai cocok, tidak cocok dan
gap finalti

Penentuan urutan sekuen yang akan
diproses

Pengisian cell matrik secara rekurif
menggunakan perulangan FOR

Perhitungan akumulasi skor kemiripan
sekuen

Gambar 21 Tahapan fungsi perhitungan skor kemiripan sekuen
Pseudocode fungsi perhitungan skor kemiripan 2 pasangan sekuen
{Deklarasi variabel}
Vektor_Akumulasi_Skor, Kolom, Baris
Urutan_Sekuen1, Urutan_Sekuen2
{Penentuan nilai cocok, tidak cocok dan gap finalti}
Match = 5
Mismatch = -3
Gap = -4
{Penentuan urutan sekuen yang akan diproses}
Perulangan mulai dari Kolom = 0  Jumlah_Sekuen
Mulai
Perulangan mulai dari Baris = Baris+1  Jumlah_Sekuen
Mulai
{Inisialisasi urutan pembacaan sekuen}
Urutan_Sekuen1 = Kolom-1;
Urutan_Sekuen2 = Baris-1;
{Perhitungan skor kemiripan secara rekursif}
Perulangan mulai dari Baris = 1  Total_Baris
Mulai
Perulangan mulai dari Kolom =1  Total_Kolom
Jika (Urutan_Sekuen1[Baris-1] = Urutan_Sekuen2[Kolom-1]
Maka
Skor_Diagonal = Matriks_Skor[Baris-1][Kolom-1] + Match
Selainnya
Skor_Diagonal
=
Matriks_Skor[Baris-1][Kolom-1]
+
Mismatch

19
Skor_Vertikal = Matriks_Skor[Baris-1][Kolom] + Gap
Skor_Horizontal = Matriks_Skor[Baris][Kolom-1] + Gap
Jika Skor_Vertikal = Skor_Horizontal
Maka
Matriks_Skor = Skor_Diagonal
Selainnya Jika Skor_Vertikal >= Skor_Horizontal
Maka
Matriks_Skor = Skor_Vertikal
Selainnya
Matriks_Skor = Skor_Horizontal
Berhenti
Berhenti
{Perhitungan akumulasi skor kemiripan sekuen}
Perulangan mulai dari Baris = 1  Jumlah_Sekuen
Mulai
Vektor_Akumulasi_Skor[Baris] = 0;
Perulangan mulai dari Kolom = 1  Jumlah_Sekuen
Vektor_Akumulasi_Skor[Baris] = Matriks_Skor [Baris][Kolom]
+
Vektor_Akumulasi_Skor[Baris]
Berhenti

4. Pembuatan fungsi pemilihan sekuen star.
Fungsi pemilihan sekuen star terdiri dari 2 tahapan utama yaitu penyeleksian
sekuen star yang memiliki akumulasi skor kemiripan tertinggi terhadap
sekuen lainnya dan pemutakhiran sekuen star. Adapun tahapan pemilihan
sekuen star dapat dilihat pada Gambar 22.
Pencarian sekuen yang memiliki skor
kemiripan tertinggi sebagai star

Pembuatan jalur untuk traceback

Penentuan jalur optimal dan penulisan
sekuen star terbaru

Gambar 22 Tahapan fungsi pemilihan sekuen star
Pseudocode fungsi pemilihan sekuen star
{Deklarasi Variabel}
Skor_Maksimal
Urutan_Sekuen_Tertinggi
Matriks_Traceback
{Insialisasi awal Skor Maksimal}
Skor_Maksimal = 0
Perulangan mulai dari index = 0  Jumlah_Sekuen
Mulai
Jika Vektor_Akumulasi_Skor[index] = Skor_Maksimal
Maka
Skor_Maksimal = Vektor_Akumulasi_Skor[index]
Urutan_Sekuen_Tertinggi = Skor_Maksimal
Berhenti

20
Berhenti
{Pemutakhiran sekuen star}
Perulangan mulai dari index = 0  Jumlah_Sekuen
Mulai
Jika Ururan_Sekuen[index] != Urutan_Sekuen_Tertinggi
Maka
Panggil (Fungsi perhitungan skor kemiripan pasangan
sekuen)
{Pengisian jalur pada Matriks_Traceback}
Jika Skor_Vertikal = Skor_Horizontal
Maka
Matriks_ Traceback = Diagonal ( \\ )
Selainnya Jika Skor_Vertikal >= Skor_Horizontal
Maka
Matriks_ Traceback = Vertikal ( | )
Selainnya
Matriks_Skor = Horizontal ( - )
Berhenti
Berhenti
{Penentuan jalur optimal dan penulisan karakter sekuen star}
Apabila Kondisi Matriks_Traceback != NULL
Maka
Jika Matriks_Traceback = Diagonal ( \\ )
Maka
Karakter_Sekuen_Star_Baru = Karakter_Sekuen_Star_Lama
Jika Matriks_ Traceback = Vertikal ( | )
Maka
Karakter_Sekuen_Star_Baru = Karakter_Sekuen_Star_Lama
Jika
Matriks_Skor = Horizontal ( - )
Maka
Karakter_Sekuen_Star_Baru = Gap ( _ )
Berhenti

5. Pembuatan fungsi penjajaran sekuen star dengan sekuen lainnya.
Fungsi penjajaran sekuen terhadap sekuen star merupkan tahapan teakhir dari
desain aplikasi MSA sekuensial. Tahap ini memiliki langkah yang sama
dengan proses pemutakhiran sekuen star dengan penambahan penulisan
karakter sekuen hasil penjajaran. Adapun tahapan fungsi penjajaran sekuen
star dengan sekuen lainnya dapat dilihat pada Gambar 23.
Pembacaan urutan sekuen star

Penentuan urutan sekuen yang akan
dijajarkan dengan sekuen star

Penjajaran sekuen star dengan sekuen
lainnya

Hasil penjajaran

Gambar 23 Tahapan fungsi penjajaran sekuen star dengan sekuen lainnya

21
Pseudocode fungsi penjajaran sekuen star dengan sekuen lainnya
Perulangan mulai dari index = 0  Jumlh_Sekuen
Mulai
Panggil (Fungsi perhitungan skor kemiripan pasangan sekuen)
Jika Matriks_Traceback = Diagonal ( \\ )
Maka
Karakter_Sekuen_Lainnya = Karakter_Sekuen[index]
Jika Matriks_ Traceback = Vertikal ( | )
Maka
Karakter_Sekuen_Lainnya = Karakter_Sekuen[index]
Jika
Matriks_Skor = Horizontal ( - )
Maka
Karakter_Sekuen_Lainnya = Gap ( _ )
Berhenti
{Cetak hasil penjajaran sekuen}
Perulanga mulai dari index = 0  Jumlah_Sekuen
Mulai
Jika Sekuen[index] = Sekuen_Star
Maka
Cetak Sekuen_Star
Cetak Sekuen [index]
Berhenti

Desain Aplikasi Paralel
Desain aplikasi paralel MSA merupakan pengembangan aplikasi
sekuensial dengan menambahkan pembagian data pasangan sekuen terhadap 4
komputer. Data pasangan sekuen akan dibagi menggunakan perintah MPI_Send()
kemudian akan diterima menggunakan MPI_Recv(). Distribusi data menggunakan
penjadwalan round robin dengan membagi alokasi pekerjaan yang sama. Jaringan
komputer yang digunakan adalah jaringan tertutup sehingga mengurangi
komunikasi yang terjadi antar komputer. Paralelisasi dilakukan hanya pada tahap
perhitungan skor kemiripan sekuen karena memiliki kompleksitas yang tinggi
dibanding tahapan lainnya pada algoritma star. Pembuatan aplikasi paralel
menggunakan bahasa C dengan putaka paralel MPI. Pengembangan aplikasi
sekuensial menjadi aplikasi paralel dapat dilihat pada Gambar 24.

22
Aplikasi Sekuensial

Aplikasi Paralel

Mulai

Data
Sekuen

Pembacaan data sekeun

MPI_Init
MPI_Comm_rank
MPI_Comm_size

Hitung banyak pasangan
sekuen
Data pasangan
sekuen

Pengurutan pembacaan
pasangan sekuen

Proses perhitungan skor
kemiripan pasangan sekuen

Rrank = 0

Ya

Data masih ada

Kirim data pasangan sekuen dengan
perintah MPI_Send()

Cek Ketersediaan
Pasangan Sekuen

Perhitungan skor kemiripan
pasangan sekuen

Perhitungan akumulasi skor
kemiripan sekuen

Pencarian akumulasi skor
kemiripan tertinggi

Rank > 0

Menerima hasil perhitungan skor
kemiripan sekun dengan perintah
MPI_Recv()

Kirim data hasil perhitungan
skor kemiripan dengan
perintah MPI_Send()

MPI_Finalize

MPI_Finalize

Belum ditemukan
Cek akumulasi skor
kemiripan tertinggi

Ditemukan

Hasil pemilihan sekuen star

Pemutakhiran sekuen star

Penjajaran sekuen star terbaru
dengan sekuen lainnya

Hasil penjajaran sekuen

Selesai

Gambar 24 Pengembangan aplikasi sekuensial menjadi aplikasi paralel
Analisis Hasil
a. Waktu eksekusi penjajaran sekuen
Waktu eksekusi merupakan waktu komputasi perhitungan skor kemiripan
sekuen. Pengujian waktu komputasi perhitungan skor kemiripan sekuen dilakukan
dengan 3 skenario. Skenario pertama adalah 1 komputer sebagai pembagi data
dan 2 komputer sebagai pemroses data. Skenario kedua adalah 1 komputer

23
sebagai pembagi data dan 3 komputer sebagai pemroses data. Skenario ke tiga
adalah 1 komputer sebagai pembagi data dan 4 komputer sebagai pemroses data.
Hasil pengujian waktu eksekusi dapat dilihat pada Gambar 25.

Gambar 25 Grafik waktu eksekusi penjajaran sekuen
Hasil eksekusi penjajaran sekuen di atas menunjukan bahwa waktu
eksekusi paralel lebih baik dibandingkan waktu eksekusi sekuensial. Penambahan
jumlah komputer akan meningkatkan kecepatan waktu eksekusi paralel. Gambar
25 memperlihatkan perbedaan waktu eksekusi perhitungan skor kemiripan sekuen
Glycine-max-chromosome-9-BBI dengan panjang 811-850 bp. Jumlah sekuen 3, 4,
8 dan 12 waktu eksekusinya tidak berbeda jauh antara sekuensial dan paralel.
Akan tetapi jumlah sekuen 16, 20, 24 sampai dengan 64 terlihat perbedaan waktu
eksekusi yang sangat tinggi. Gambar 25 memperlihatkan waktu eksekusi
sekuensial semakin lama seiring dengan peningkatan jumlah sekuen, dan waktu
eksekusi paralel semakin cepat untuk jumlah sekuen yang banyak.
b. Analisa Speedup
Speedup merupakan percepatan komputasi secara paralel dibandingkan
dengan komputasi secara sekuensial. Pada penelitian ini membandingkan
komputasi penjajaran sekuen secara paralel menggunakan 2, 3 dan 4 PC. Hasil
komputasi paralel dengan 2, 3 dan 4 PC (Personal Computer) membuktikan
bahwa penambahan jumlah komputer (PC) mempengaruhi waktu eksekusi paralel.
Speedup komputasi paralel meningkat seiring dengan penambahan jumlah
komputer. Grafik speedup komputasi paralel untuk 2, 3 dan 4 PC diperlihatkan
pada Gambar 26.

Gambar 26 Speedup komputasi paralel

24
Gambar 26 memperlihatkan penigkatan speedup komputasi paralel pada
jumlah data antara 16 sampai 64 sekuen.dengan panjang
811-850 bp.
Perbandingan kecepatan komputasi sekuensial dibanding komputasi paralel
dengan 3 PC mencapai rasio 1,89. Speedup meningkat mecapai rasio 2,84 dengan
4 PC dan terjadi peningkatkan speedup mencapai rasio 3,84 pada 5 PC. Hasil ini
menunjukan bahwa penambahan jumlah komputer akan meningkatkan speedup
komputasi paralel dibanding sekuensial.
c. Analisa Efisiensi
Analisa efisiensi adalah melihat efisiensi penambahan prosesor atau PC
terhadap ukuran data sekuen yang digunakan. Pengukuran efisiensi bertujuan
untuk mengetahui pengaruh penambahan prosesor dalam memproses data sekuen.
Peningkatan jumlah prosesor akan menurunkan nilai efisiensi, dan sebaliknya
peningkatan ukuran data akan meningkatkan nilai efisiensi (Maria 2008). Nilai
efisiensi akan konstan apabila penambahan data sekuen seiring dengan
penambahan jumlah prosesor. Nilai efisiensi konstan menunjukan bahwa kinerja
sistem paralel scalable dengan ukuran data. Scalable adalah kemampuan sistem
paralel yang dapat mempertahankan kinerja seiring dengan penambahan jumlah
prosesor berdasarkan metrik tertentu (Maria 2008) dalam memproses data dengan
ukuran tertentu. Hasil perhitungan nilai efisiensi dapat dilihat pada Gambar 27.

Gambar 27 Grafik nilai efisiensi penggunaan prosesor terhadap jumlah data
sekuen
Gambar 27 menunjukan bahwa penambahan data sekuen menyebabkan nilai
efisiensi menjadi konstan pada kisaran angka antara 0.63 sampai 0.76 untuk
jumlah 2, 3 dan 4 PC. Nilai efisiensi konstan ini ditunjukan pada jumlah 16-64
sekuen. Hal ini menunjukan bahwa penggunaan 2, 3 dan 4 PC adalah scalable
dalam mengolah data sekuen dengan panjang 811-850 bp dan jumlah 16-64
sekuen. Nilai efisiensi ini akan naik apabila ukuran dan panjang sekuen
ditingkatkan seiring dengan peningkatan jumlah PC.

25

5 SIMPULAN DAN SARAN
Komputasi paralel menggunakan MPI sangat baik dan disarankan untuk
MSA. Pada penelitian ini memperlihatkan peningkatan speedup komputasi paralel
dibanding sekuensial dan efisiensi kinerja komputasi paralel yang scalable
terhadap ukuran data sekuen yang digunakan. Penelitian selanjutnya dapat
menggunakan ukuran data sekuen yang besar dan meningkatkan jumlah PC untuk
meningkatan speedup dan efisiensi komputasi paralel pada MSA. Pada penelitian
ini penjajaran dua pasang sekuen dilakukan secara sekuensial. Peningkatan waktu
eksekusi penjajaran dua pasang sekuen dapat menggunakan komputasi paralel
dengan GPU menggunakan pustaka CUDA.

26

DAFTAR PUSTAKA
Altschul SF, Madden TL, Schäffer AA, Zhang J, Zhang Z, Miller W, Lipman DJ.
1997. Gapped BLAST and PSI-BLAST: a new generation of protein database
search programs. Oxford University Press. 25(17).
Behera HS, Swain KB, Parida AK, Sahu G. 2012. A New Proposed Round Robin
with Highest Response Ratio Next (RRHRRN) Scheduling Algorithm for Soft
Real Time Systems. International Journal of Engineering and Advanced
Technology (IJEAT). 1(3). 200-206.
Charter K, Schaeer J, Szafron D. 2000. Sequence Alignment using FastLSA. The
Department of Computing Science at the University of Alberta Canada.
Edgar RC, Batzoglou S. 2006. Multiple sequence alignment. Current opinion in
structural biology, 16(3):368-373. doi : 10.1016/j.sbi.2006.04.004
Global alignment of two sequences-Needleman-Wunsch Algorithm 2013, [internet].

[diunduh 2013 Oktober 12]. Tersedia pada
http://amrita.vlab.co.in/?sub=3&brch=274 &sim= 1431& cnt=1.

Gudyś A, Deorowicz S. 2011. A parallel GPU-designed algorithm for the
constrained pairwise sequence alignment problem. Di dalam: Man-Machine
Interactions 2, AISC 103. Berlin (DE): Springer. hlm 361-368.
Gupta SK, Kececioglu JD dan Schäffer AA. 1995. Improving the Practical Space
and Time Efficiency of the Shortest-Paths Approach to Sum-of-Pairs Multiple
Sequence Alignment. Journal Of Computational Biology. 2(3): hlm. 459.
Huang KF, Yang CB, Tseng KT. 2002. An Efficient Algorithm For Multiple
Sequence Alignment. Proc. of the 19th Workshop on Combinatorial
Mathematics and Computation Theory.
Junior SAC. 2003. Sequence Alignment Algorithms. Department of Computer
Science School of Physical Sciences & Engineering Kingís College London.
Kanchanamala P, Rao AA, Rao PS, Sridhar GR. 2012. Influence of Blast, Fasta
and Wu-Blast algorithms on sequence alignments and 3-D structure prediction
of DPP-IV. Journal of Bioinformatics & Research. 1(1).
Khajeh-Saeed A, Poole S, Perot JB. 2010. Acceleration of the Smith–Waterman
algorithm using single and multiple graphics processors. Journal of
Computational
Physics.
229
(2010)
4247–4258.
doi:10.1016/j.jcp.2010.02.009.
Korpar, Matija, Šikić, Mile. 2013. SW# - GPU enabled exact alignments on
genome scale. Bioinformatic Oxford Journal.
Kurniawan A. 2010. Pemograman Paralel dengan MPI dan C. Penerbit Andi
Yogyakarta 2010. ISBN : 9789792917109.
Li J, Ranka S, Sahni S. 2012. Pairwise Sequence Alignment for Very Long
Sequences on GPUs. Department of Computer and Information Science and
Engineering University of Florida Gainesville.
Liu Y, Schmidt B, Maskell DL. MSA-CUDA. 2009. Multiple Sequence
Alignment on Graphics Processing Units with CUDA. IEEE International
Conference on Application-specific Systems, Architectures and Processors.

27
Ling C, Benkrid K, Hamada T. 2009. A Parameterisable and Scalable SmithWaterman Algorithm Implementation on CUDA-compatible GPUs. IEEE 7th
Symposium on Application Specific Processors (SASP).
Lloyd GS. 2010. Parallel Multiple Sequence Alignment: An Overview.
Maria A. Kartawidjaja. 2008. Analisis Kinerja Perkalian Matriks Paralel
Menggunakan Metrik Isoefisiensi. TESLA.10(2). 51-52.
Myers EW, Miller W. 1988. Optimal alignments in linear space. Oxford Univ
Pres.
Oladele TO, Bamigbola OM, Bewaji CO. 2009. On efficiency of sequence
alignment