Akselerasi Global Pairwise Alignment Dengan Skema Partisi Blocked Column-Wise Pada Sistem Memori Terdistribusi

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
BOGOR
2015

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.
Bogor, Agustus 2015
Maulana Rizal Ibrahim
NIM G64110101

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.
Keywords: distributed memory, message-passing, pairwise alignment, partition
scheme

AKSELERASI GLOBAL PAIRWISE ALIGNMENT DENGAN
SKEMA PARTISI BLOCKED COLUMN-WISE PADA
SISTEM MEMORI TERDISTRIBUSI

MAULANA RIZAL IBRAHIM

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR

BOGOR
2015

Penguji:
1 Ahmad Ridha, SKom MS
2 Auriza Rahmad Akbar, SKomp MKom

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

Tanggal Lulus:

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 temanteman lain yang tidak dapat penulis sebutkan satu persatu.
Semoga karya ilmiah ini bermanfaat.

Bogor, Agustus 2015
Maulana Rizal Ibrahim

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
Implementasi Global Pairwise Alignment Sekuensial

5
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 PUSTAKA

14

DAFTAR GAMBAR
1
2
3
4
5
6
7
8
9
10
11
12
13

Tahapan penelitian
Bagan alir algoritme GPA
Ilustrasi skema partisi blocked column-wise
Hasil penjajaran ClustalW2 dan algoritme GPA
Inisialisasi matriks Fm,n GPA paralel
Inisialisasi matriks Fm,n GPA sekuensial
Proses pengiriman nilai -5 dari P0 ke P1
Pengisian sel matriks Fm,n
Perbandingan hasil algoritme GPA sekuensial (kiri) dan paralel dua
prosesor (kanan)
Grafik waktu eksekusi program penjajaran sekuens.  1 PC,
 2 PC, ฀ 3 PC,  4 PC.
Grafik speedup komputasi paralel algoritme GPA.  2 PC,
฀ 3 PC,  4 PC.
Grafik efisiensi komputasi paralel algoritme GPA.  2 PC,
฀ 3 PC,  4 PC.
Grafik efisiensi GPA pada sistem memori bersama dan sistem memori
terdistribusi.  distributed memory,  shared memory.

2
3
4
6
8
8
9
9
10
11
11
12
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
bp
19

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
Berdasarkan latar belakang di atas dapat dirumuskan masalah penelitian ini
adalah bagaimana mengakselerasi algoritme GPA dengan skema partisi data
blocked column-wise menggunakan standar komputasi paralel MPI.

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 finegrained paralellism dengan kinerja tinggi sehigga dapat mengakselerasi kinerja
algoritme GPA dan memangkas waktu komputasi penjajaran sekuens.
Ruang Lingkup Penelitian
1

2
3
4
5

Ruang lingkup pada penelitian ini ialah:
Paralelisasi dengan model pemrograman message-passing yang mengasumsikan
setiap komputer sebagai prosesor dengan memori lokalnya masing-masing
(Quinn 2003).
Pengujian kinerja pada proses pengisian matriks kemiripan.
Menggunakan standar MPI dan bahasa pemrograman C.
Pengujian kinerja menggunakan 4 unit komputer dengan spesifikasi hardware
yang sama.
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.

Gambar 1 Tahapan penelitian

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
Tahapan ini membagi komputasi dan data menjadi potongan-potongan kecil
(pieces) atau tugas-tugas (tasks). Pada tahapan ini, sekuens kedua dengan panjang

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
Kebenaran algoritme GPA paralel diverifikasi dengan membandingkan
keluarannya dengan keluaran algoritme GPA sekuensial (Lamport 1979). Keluaran

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
Pada pengisian matriks kemiripan algoritme GPA, skor untuk setiap sel
didapatkan dari skor tertinggi di antara 3 kemungkinan arah penjajaran: diagonal,
atas, dan kiri. Skor diagonal dihitung dengan bantuan prosedur SIMILARITY: jika
kedua residu DNA sama maka skor ditambahkan dengan skor MATCH, jika
berbeda maka skor dikurangi dengan skor MISMATCH. Skor atas dan kiri dihitung
dengan mengurangkannya dengan skor penalti GAP. Setiap gap memiliki skor yang
sama tanpa mempedulikan posisinya. Pemilihan nilai skor MATCH dan penalti
GAP mengikuti nilai standar pada program ClustalW (DDBJ 2015). Berikut adalah
pseudocode algoritme GPA yang dikembangkan.

6
MATCH = +1
MISMATCH = -1
GAP = -3
SIMILARITY(a, b)
1 if a == b
2
return MATCH
3 else
4
return MISMATCH
PAIRWISE-ALIGN(X, Y)
5 m = X.length
6 n = Y.length
7 let C[0.. m, 0.. n] be a new table
8
9 //inisialisasi matriks
10 for i = 0 to m
11
Ci,0 = i * GAP
12 for j = 0 to n
13
C0,j = j * GAP
14
15 for i = 1 to m
16
for j = 1 to n
17
diag = Ci-1,j-1 + SIMILARITY(Xi,Yj)
18
Ci,j = MAX up
= Ci-1,j + GAP
19
left = Ci,j-1 + GAP
20 return C

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
Pembagian blok kolom untuk masing-masing prosesor dilakukan secara
manual. Berikut adalah potongan awal pseudocode untuk pembagian kolom matriks
kemiripan kepada masing-masing prosesor.

7
1
2
3
4

int jfirst, jlast
rank = MPI_Comm_rank
size = MPI_Comm_size
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
6
7
8
9
10
11
12
13
14

for i = 1 to m
if (rank != 0) //not first processor
MPI_Recv(C[i][jfirst-1], rank-1)
for j = jfirst to jlast
diag = Ci-1,j-1 + SIMILARITY(Xi,Yj)
Ci,j = MAX up
= Ci-1,j + GAP
left = Ci,j-1 + GAP
if (rank != size-1) //not last processor
MPI_Send(C[i][jlast], rank+1)
return C

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
2
3
4
5

for j = 0 to n/size
C[0][j+1] = (j + jfirst) * GAP
if(rank == 0) //first processor
for i = 1 to m
C[i][0] = i * GAP

Dengan menggunakan pseudocode tersebut didapatkan inisialisasi matriks
seperti pada Gambar 5.

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:
Ci,j = MAX

diag = Ci-1,j-1 + SIMILARITY(Xi,Yj)
up = Ci-1,j + GAP
left = Ci,j-1 + GAP

(1)

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

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]
=1

Apabila proses pengisian dilanjutkan dari baris pertama, maka ketika P0
mencapai bagian kolom terakhirnya (dicatat pada variabel jlast), nilai pada Ci,jlast
akan dikirimkan kepada prosesor setelahnya, yaitu P1. Proses komunikasi
pengiriman dan penerimaan kedua prosesor menggunakan MPI_Send dan

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
Verifikasi kebenaran algoritme paralel penting karena implementasi program
paralel dengan MPI yang kurang cermat akan menyebabkan keluaran yang tidak
konsisten. Keluaran yang dibandingkan adalah skor akhir penjajaran dan pengisian
matriks kemiripan. Gambar 9 menunjukkan perbandingan hasil pengisian matriks
kemiripan pada GPA sekuensial dan GPA paralel menggunakan 2 prosesor. Skor
akhir penjajaran GPA paralel sudah sama dengan GPA sekuensial. Baris dan kolom
ke-0 adalah inisialisasi gap penalty yang dilakukan oleh setiap prosesor. Pada GPA
sekuensial matriks kemiripan diisi hanya oleh satu prosesor, sedangkan pada GPA
paralel pengisian matriks dibagi ke 2 prosesor (bisa lebih) dengan baik. Dapat
dilihat bahwa nilai jlast prosesor 0 (kolom yang diarsir sebelah atas) dikirimkan
menggunakan prosedur MPI_Send sebagai nilai jlast-1 prosesor selanjutnya
(kolom yang diarsir sebelah bawah), dalam kasus ini prosesor 1. Apabila hasil

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.
Pada kondisi idealnya, ukuran matriks GPA paralel seharusnya sama dengan
ukuran matriks yang digunakan pada GPA sekuensial. Apabila ukuran matriks GPA
sekuensial sebesar m × n , maka setiap komputer yang terhubung pada cluster
membuat matriks dengan ukuran n(m/size), dengan size adalah jumlah komputer
yang digunakan untuk menjalankan GPA paralel. Namun, pada prakteknya hal ini
tidak dicapai karena dibutuhkan memori untuk menyimpan nilai yang dikirimkan
oleh prosesor sebelumnya sebagai nilai jlast-1 untuk memulai proses pengisian
matriks seperti yang terlihat pada Gambar 7. Oleh karena itu, matriks yang dibuat
oleh masing-masing komputer berukuran n(m/size + 1) sehingga total ukuran
matriks yang dibuat adalah n(m + size). Ukuran ini merupakan yang paling efisien
dalam penggunaan memori penyimpanan matriks GPA paralel pada sistem memori
terdistribusi.

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).
10

Waktu (s)

8
6
4
2
0
1000

2000

5000

10000

20000

25000

30000

Panjang sekuens

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).
4

Speedup

3

2
1
0
1000

2000

5000

10000

20000

25000

30000

Panjang sekuens

Gambar 11 Grafik speedup komputasi paralel algoritme GPA.  2 PC, ฀
3 PC,  4 PC.

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.
100%

Efisiensi

80%
60%
40%
20%
0%
1000

2000

5000

10000

20000

25000

30000

Panjang sekuens

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

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.
100%

Efisiensi

80%
60%
40%
20%
0%
1000

2000

4000

8000

16000

Panjang sekuens

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
Berdasarkan hasil penelitian, dapat disimpulkan bahwa tujuan penelitian ini
telah tercapai. Komputasi GPA paralel dengan skema partisi blocked column-wise
pada sistem memori terdistrisbui berhasil memangkas waktu eksekusi algoritme
GPA sekuensial dengan baik. Speedup yang diperoleh dengan menggunakan 2, 3,
dan 4 PC berturut-turut adalah 1.78, 2.57, dan 3.36 untuk panjang sekuens 30 000
bp. Efisiensi menggunakan jumlah PC dan panjang sekuens yang sama berturutturut adalah 89.32%, 85.97%, dan 84.19%. Kinerja GPA paralel juga scalable
dengan ukuran data dan jumlah PC yang digunakan. Komputasi GPA paralel pada
sistem memori terdistribusi memiliki efisiensi yang sedikit kurang dari efisiensi
sistem memori bersama. Efisiensi menggunakan 4 PC mencapai 83.66%%,
sedangkan pada sistem memori bersama dengan 4 core prosesor mencapai 89.73%
untuk panjang sekuens 16 000 bp. Namun, speedup yang lebih tinggi dapat dicapai
pada sistem memori terdistribusi dengan menambah jumlah PC yang menjalankan
program GPA paralel.

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 233275.
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 SmithWaterman 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.
Shebab SA, Keshk A, Mahgoub H. 2012. Fast dynamic algorithm for sequence
alignment based on bionformatics. International Journal of Computer
Applications. 37(7): 54-61.

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

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.0159
0.0117
0.0139
0.0169
0.0137
0.0125
0.0118
0.0120
0.0118
0.0118
0.0132

Paralel (procs)
2
3
4
0.0144
0.0144
0.0145
0.0130
0.0153
0.0150
0.0161
0.0137
0.0141
0.0116
0.0143
0.0146
0.0164
0.0144
0.0150
0.0153
0.0135
0.0143
0.0155
0.0129
0.0147
0.0162
0.0134
0.0143
0.0161
0.0140
0.0139
0.0161
0.0141
0.0143
0.0153
0.0138
0.0145
0.8629
0.9575
0.9118
43.1436
31.9173 22.7956

Panjang sekuens: 2000 bp
Pengulangan

Sekuensial

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.0469
0.0469
0.0471
0.0470
0.0469
0.0470
0.0469
0.0469
0.0469
0.0470
0.0469

Paralel (procs)
2
3
4
0.0279
0.0272
0.0284
0.0313
0.0233
0.0243
0.0318
0.0229
0.0240
0.0335
0.0236
0.0224
0.0325
0.0299
0.0239
0.0319
0.0263
0.0285
0.0287
0.0241
0.0222
0.0333
0.0230
0.0264
0.0328
0.0231
0.0215
0.0312
0.0223
0.0216
0.0315
0.0246
0.0243
1.4909
1.9105
1.9306
74.5430
63.6823 48.2640

16
Lampiran 1 Lanjutan
Panjang sekuens: 5000 bp
Pengulangan

Sekuensial

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.2802
0.2802
0.2802
0.2803
0.2803
0.2801
0.2802
0.2802
0.2802
0.2801
0.2802

Paralel (procs)
2
3
4
0.1672
0.1213
0.0973
0.1672
0.1211
0.1015
0.1670
0.1229
0.0955
0.1670
0.1215
0.0973
0.1669
0.1231
0.0962
0.1662
0.1259
0.0997
0.1668
0.1230
0.0956
0.1669
0.1216
0.0962
0.1674
0.1210
0.0959
0.1669
0.1216
0.0968
0.1670
0.1223
0.0972
1.6783
2.2912
2.8829
83.9130
76.3731 72.0716

Panjang sekuens: 10000 bp
Pengulangan

Sekuensial

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

1.0683
1.0682
1.0684
1.0681
1.0680
1.0684
1.0681
1.0680
1.0682
1.0680
1.0682

Paralel (procs)
2
3
4
0.6198
0.4436
0.3599
0.6201
0.4437
0.3475
0.6200
0.4438
0.3475
0.6202
0.4494
0.3469
0.6202
0.4434
0.3477
0.6188
0.4438
0.3471
0.6207
0.4436
0.3513
0.6198
0.4439
0.3474
0.6190
0.4441
0.3480
0.6192
0.4440
0.3474
0.6198
0.4443
0.3491
1.7235
2.4039
3.0600
86.1738
80.1304 76.5010

17
Lampiran 1 Lanjutan
Panjang sekuens: 20000 bp
Pengulangan

Sekuensial

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

4.1459
4.1458
4.1462
4.1457
4.1456
4.1460
4.1460
4.1461
4.1459
4.1459
4.1459

Paralel (procs)
2
3
4
2.3318
1.6521
1.2348
2.3299
1.6083
1.2468
2.3307
1.6541
1.2402
2.3310
1.6083
1.2346
2.3297
1.6105
1.2636
2.3320
1.6075
1.2348
2.3310
1.6111
1.2338
2.3303
1.6076
1.2711
2.3316
1.6073
1.2364
2.3307
1.6075
1.2343
2.3309
1.6174
1.2430
1.7787
2.5633
3.3353
88.9352
85.4425 83.3823

Panjang sekuens: 25000 bp
Pengulangan

Sekuensial

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

6.4052
6.4046
6.4049
6.4049
6.4050
6.4046
6.4045
6.4047
6.4047
6.4045
6.4048

Paralel (procs)
2
3
4
3.5789
2.4700
1.9063
3.5744
2.4703
1.9455
3.5747
2.4689
1.9469
3.5749
2.4701
1.9478
3.5758
2.4691
1.9468
3.5746
2.4703
1.9496
3.5749
2.4698
1.9472
3.5775
2.4697
1.9057
3.5740
2.4702
1.9050
3.5743
2.4705
1.9056
3.5754
2.4699
1.9306
1.7913
2.5931
3.3174
89.5668
86.4383 82.9357

18
Lampiran 1 Lanjutan
Panjang sekuens: 30000 bp
Pengulangan

Sekuensial

1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

9.1124
9.1122
9.1111
9.1117
9.1113
9.1129
9.1118
9.1133
9.1125
9.1123
9.1122

Paralel (procs)
2
3
4
5.1005
3.5392
2.7006
5.1000
3.5375
2.7011
5.1009
3.4991
2.7001
5.1041
3.5375
2.7001
5.0990
3.5412
2.7486
5.1019
3.5384
2.6998
5.0991
3.5378
2.7018
5.1037
3.5619
2.7020
5.1003
3.5390
2.7019
5.1009
3.4985
2.7016
5.1010
3.5330
2.7058
1.7863
2.5792
3.3677
89.3168
85.9719 84.1923

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
1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.0159
0.0117
0.0139
0.0169
0.0137
0.0125
0.0118
0.0120
0.0118
0.0118
0.0132

Paralel 4 PC/Core
Distributed memory Shared Memory
0.0139
0.0145
0.0130
0.0150
0.0131
0.0141
0.0130
0.0146
0.0133
0.0150
0.0145
0.0143
0.0149
0.0147
0.0132
0.0143
0.0133
0.0139
0.0147
0.0143
0.0145
0.0137
0.9118
0.9640
22.7956
24.1003

Panjang sekuens: 2000 bp
Pengulangan Sekuensial
1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.0469
0.0469
0.0471
0.0470
0.0469
0.0470
0.0469
0.0469
0.0469
0.0470
0.0469

Paralel 4 PC/Core
Distributed memory Shared Memory
0.0239
0.0284
0.0237
0.0243
0.0244
0.0240
0.0237
0.0224
0.0238
0.0239
0.0238
0.0285
0.0203
0.0222
0.0239
0.0264
0.0240
0.0215
0.0243
0.0216
0.0243
0.0236
1.9306
1.9909
48.2640
49.7727

20
Lampiran 2 Lanjutan
Panjang sekuens: 4000 bp
Pengulangan Sekuensial
1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.1349
0.1349
0.1349
0.1349
0.1349
0.1350
0.1349
0.1348
0.1349
0.1349
0.1349

Paralel 4 PC/Core
Distributed memory Shared Memory
0.0496
0.0489
0.0499
0.0478
0.0495
0.0482
0.0501
0.0479
0.0501
0.0479
0.0450
0.0498
0.0497
0.0518
0.0474
0.0483
0.0499
0.0600
0.0494
0.0516
0.0502
0.0491
2.6859
2.7496
67.1474
68.7408

Panjang sekuens: 8000 bp
Pengulangan Sekuensial
1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

0.5385
0.5385
0.5384
0.5384
0.5384
0.5384
0.5384
0.5385
0.5385
0.5385
0.5385

Paralel 4 PC/Core
Distributed memory Shared Memory
0.1674
0.1717
0.1675
0.1727
0.1682
0.1736
0.1676
0.1740
0.1682
0.1726
0.1686
0.1724
0.1665
0.1724
0.1644
0.1713
0.1675
0.1717
0.1672
0.1706
0.1723
0.1673
3.1248
3.2184
78.1203
80.4608

21
Lampiran 2 Lanjutan
Panjang sekuens: 16000 bp
Pengulangan Sekuensial
1
2
3
4
5
6
7
8
9
10
Rataan
Speedup
Efisiensi (%)

2.1598
2.1600
2.1601
2.1601
2.1600
2.1601
2.1598
2.1602
2.1602
2.1604
2.1601

Paralel 4 PC/Core
Distributed memory Shared Memory
0.6038
0.6537
0.6035
0.6444
0.6029
0.6445
0.6024
0.6458
0.6027
0.6453
0.6006
0.6442
0.5996
0.6437
0.6005
0.6447
0.6018
0.6437
0.6002
0.6448
0.6455
0.6018
3.3466
3.5894
83.6638
89.7350

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 (20052008). 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.
Selama masa kuliah, penulis pernah menjadi asisten praktikum pada mata
kuliah Penerapan Komputer (2012) dan Pengembangan Sistem Berorientasi Objek
(2015). Penulis juga aktif di organisasi kemahasiswaan, yaitu Badan Eksekutif
Mahasiswa Fakultas Matematika dan Ilmu Pengetahuan Alam (BEM FMIPA)
Institut Pertanian Bogor pada tahun 2012 hingga 2014. Penulis sempat menjabat
sebagai Ketua Umum BEM FMIPA pada masa bakti 2013-2014. Selain itu, penulis
melaksanakan kegiatan Praktik Kerja Lapangan di Pusat Sosial Ekonomi dan
Kebijakan Pertanian.