PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS … · sebagai jembatan penghubung antara pengguna dan...
Transcript of PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS … · sebagai jembatan penghubung antara pengguna dan...
PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS WEB
UNTUK SISTEM KOMPUTER CLUSTER
MELKI HASALI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa skripsi berjudul Pengembangan
Antarmuka Pengguna Berbasis Web Untuk Sistem Komputer Cluster 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, April 2013
Melki Hasali
NIM G64080041
ABSTRAK
MELKI HASALI. PENGEMBANGAN ANTARMUKA PENGGUNA
BERBASIS WEB UNTUK SISTEM KOMPUTER CLUSTER. Dibimbing oleh
HENDRA RAHMAWAN.
Proses penyelesaian algoritme dapat diselesaikan dengan berbagai cara,
salah satunya menggunakan komputer cluster. Dalam proses pengeksekusian
program, digunakan shell command sebagai jembatan penghubung antara
pengguna dan sistem serta MPI (Message Passing Interface) sebagai standar
library pemrograman paralel. Penelitian ini mengembangkan suatu sistem untuk
mempermudah pengguna dalam proses eksekusi program paralel pada komputer
cluster dengan menggunakan aplikasi berbasis web yang diimplementasikan
menggunakan library PHPseclib (PHP secure communication library) yang
berfungsi menghubungkan komunikasi antar komputer sehingga dapat melakukan
eksekusi pada banyak komputer secara paralel. Pengujian sistem menunjukkan
bahwa sistem ini dapat diakses secara multiuser pada registered user dan premium
user. Akan tetapi pada free user proses eksekusinya dilakukan secara bergiliran
dengan urutan first in first out (FIFO).
Kata kunci: PHPseclib, komputer cluster, pemrograman paralel.
ABSTRACT
MELKI HASALI. THE DEVELOPMENT OF WEB BASED USER INTERFACE
FOR CLUSTER COMPUTER SYSTEM. Supervised by HENDRA RAHMAWAN.
The process of solving algorithms can be resolved in many ways, one of
them is using a computer cluster. In the process of program execution, the shell
command is used as the bridge connector between user and system as well as the
MPI (Message Passing Interface) as the standard library for parallel
programming. This research developed a system to facilitate users in the process
of parallel program execution on a computer cluster using a web-based
application that was implemented using PHPseclib (the PHP secure
communications library). It served to connect the communication between
computers so it could conduct an execution on many computers in parallel way.
The testing of system showed that the system was accessible for multiuser in
registered user and premium. But the execution process was done in turns by the
order of first in first out (FIFO) for free user.
Keyword : MPI, computer cluster, paralel programing
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Ilmu Komputer
pada
Departemen Ilmu Komputer
PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS WEB
UNTUK SISTEM KOMPUTER CLUSTER
MELKI HASALI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
Judul Skripsi : Pengembangan Antarmuka Pengguna Berbasis Web untuk Sistem
Komputer Cluster
Nama : Melki Hasali
NIM : G64080041
Disetujui oleh
Hendra Rahmawan, SKom, MT
Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi., MKom
Ketua Departemen
Tanggal Lulus:
Judul Skrips i: Pengcmbangan An tarmu ka Pengguna Berbas is Web untuk Sistcm Kornputer Cluster
Nama : Melki Hasa li NIM : G64080041
Disetujui oleh
/ Hendra Rahmawan, SKorn, MT
Pembimbing
Diketahui oleh
Tanggal Lulus: 0 6 FEB 2014
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 Juni 2011 ini ialah dengan
judul Pengembangan Antarmuka Pengguna Berbasis Web Untuk Sistem
Komputer Cluster. Penyelesaian penelitian ini tidak luput dari dukungan dan
bantuan berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih
sebesar-besarnya kepada:
1. Kedua orang tua tercinta Ayahanda Y. Hasali dan Ibunda Ermi Rahayu,
kakak penulis Fredi Hasali, dan adik penulis Eunike Hasali dan segenap
keluarga besar penulis atas do’a, dukungan dan semangat yang tidak
pernah berhenti diberikan selama ini sehingga penulis dapat
menyelesaikan studi di Departemen Ilmu Komputer IPB.
2. Bapak Hendra Rahmawan S.Kom, M.T selaku dosen pembimbing. Bapak
Dr. Eng. Heru Sukoco, S.Si, M.T dan Ibu Ir. Sri Wahjuni, M.T selaku
dosen penguji, atas waktu, ilmu, saran, nasihat, dan masukan yang
diberikan.
3. Catur Purbo Yuwono dan Asrori Hudri Hariri atas segala bantuan dan ilmu
yang diberikan kepada penulis.
4. Irvan Ahadi, Bambang Wijonarko, dan Hanif Amal Robbani sebagai
teman satu bimbingan yang selalu memberikan motivasi kepada penulis.
5. Teman-teman Kementrian Pendidikan Halim, Muti, Wiggo, Eva, Fatkur,
Dewi, Laras, Ari, Sigit, Lala, Amal, Panji, Mbak Ratih, Kak Rico, serta
teman-teman penulis di BEM KM IPB.
6. Teman-teman seperjuangan Catur, Nanda, Dipo, Halim, Irvan, Asrori,
Putra, Fulsi, Ryan, Jaka, Elbie, Yansen, Panji, Dani, Dayat, Firman, dan
teman-teman penulis di Departemen Ilmu Komputer khususnya angkatan
45, serta teman-teman lain yang tidak dapat penulis sebutkan satu per satu
atas bantuan, motivasi, serta semangat kepada penulis.
7. Departemen Ilmu Komputer, Bapak/Ibu Dosen dan Tenaga Kependidikan
yang telah begitu banyak membantu baik selama pelaksanaan penelitian
ini maupun sebelumnya.
Kepada semua pihak lainnya yang telah memberikan kontribusi yang besar selama
pengerjaan penelitian ini yang tidak dapat disebutkan satu-persatu, penulis
ucapkan terima kasih banyak. Segala kesempurnaan hanya milik Allah Subhanahu
wata’ala. Semoga hasil penelitian ini dapat bermanfaat, Amin.
Bogor, Desember 2013
Melki Hasali
DAFTAR ISI
DAFTAR TABEL vi
DAFTAR GAMBAR vi
PENDAHULUAN 1
Latar Belakang 1
Tujuan Penelitian 1
Manfaat Penelitian 1
Ruang Lingkup Penelitian 2
TINJAUAN PUSTAKA 2
MPI (Message Passing Interface) 2
Network File System (NFS) – Server & Client 3
Komputer Paralel dan Komputer Cluster 3
METODE 5
Analisis 5
Perancangan 5
Implementasi 5
Pengujian Sistem 6
HASIL DAN PEMBAHASAN 6
Analisis 6
Perancangan 6
Implementasi 9
Pengujian Sistem 11
SIMPULAN DAN SARAN 14
Simpulan 14
Saran 14
DAFTAR PUSTAKA 15
LAMPIRAN 16
RIWAYAT HIDUP 18
DAFTAR TABEL
1 Tabel fungsional sistem ................................................................................... 6 2 Tabel pengujian sistem .................................................................................. 13
DAFTAR GAMBAR
Gambar 1 Contoh arsitektur komputer cluster (Kaminsky 2007) ...................... 4 Gambar 2 Metode penelitian ............................................................................... 5 Gambar 3 Contoh arsitektur sistem .................................................................... 7 Gambar 4 Contoh arsitektur sistem .................................................................... 7 Gambar 5 Alur kerja sistem antarmuka komputer cluster registered user ......... 8
Gambar 6 Alur kerja sistem antarmuka komputer cluster free user ................... 8 Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user ........... 9 Gambar 8 Use Case komputer cluster .............................................................. 10 Gambar 9 Use Case komputer cluster ............................................................... 10 Gambar 10 Antarmuka aplikasi pada free user ................................................ 12 Gambar 11 Antarmuka aplikasi pada premium user ........................................ 12 Gambar 12 Antarmuka aplikasi pada admin ..................................................... 13
DAFTAR LAMPIRAN
1 Program menghitung pendekatan nilai (pi) ................................................ 16 2 Program memanggil kata ”hello world” ........................................................ 17
PENDAHULUAN
Latar Belakang
Pada era ini, semakin banyak algoritme yang membutuhkan sumberdaya
ekstra dalam proses eksekusinya. Proses penyelesaian algoritme seperti ini dapat
diselesaikan dengan menggunakan sebuah komputer super, yaitu sebuah komputer
yang memiliki kemampuan berkali lipat dari komputer biasa tetapi memiliki
harga yang mahal. Sebagai alternatif dari super komputer, dapat dibangun
komputer berkinerja tinggi dengan biaya rendah yang disebut komputer cluster.
Komputer cluster adalah teknik mengelompokkan beberapa komputer (yang
banyak ditemui di pasaran) dalam sebuah jaringan, sehingga diperoleh sebuah
kesatuan sistem komputer yang memiliki kinerja yang lebih baik (Gropp 2003).
Salah satu standar pemrograman yang biasanya digunakan pada sistem
cluster adalah MPI. Sayangnya, penggunaan implementasi MPI dalam
pengoperasian komputer cluster kebanyakan masih menggunakan command line
interface. Dengan antarmuka tersebut, pengguna umum biasanya kesulitan dalam
menjalankan program paralel karena biasanya terdapat beberapa parameter yang
harus ditentukan. Parameter-parameter seperti jumlah proses, daftar nama
komputer dan nama program yang akan dijalankan harus dituliskan pada
command line. Untuk memudahkan pengguna, maka dalam penelitian ini akan
dikembangkan sebuah antarmuka pengguna berbasis web yang dapat membantu
pengguna dalam mengatur pengoperasian sistem paralel pada sebuah komputer
cluster. Sistem yang berbasiskan web akan lebih mudah diakses dari manapun dan
dari platform apapun. Hasil dari penelitian ini diharapkan dapat
diimplementasikan dengan baik di berbagai lingkungan cluster komputer. Selain
itu, dengan adanya sistem ini diharapkan penggunaan sistem cluster oleh umum
dapat lebih efisien.
Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun aplikasi antarmuka pengguna
komputer paralel cluster yang dapat mengatur kebutuhan sistem berbasis web dan
meningkatkan kapasistas pengguna dalam menjalankan program.
Manfaat Penelitian
Manfaat dari penelitian ini diharapkan dapat mempermudah pengguna
dalam mengatur proses eksekusi algoritme paralel. Selain itu, dengan adanya
sistem antarmuka ini diharapkan dapat meningkatkan kapasistas pengguna dalam
melakukan pengeksekusian algoritme paralel.
2
Ruang Lingkup Penelitian
Ruang lingkup dari penelitian ini adalah :
1. Komputer yang digunakan sebagai host adalah komputer pribadi dengan
spesifikasi:
a. Processor AMD A6-3400M APU (4CPUs), ~1.4GHz
b. RAM 4 GB
c. Sistem Operasi Linux Ubuntu 12.04 i386
d. Hard drive 750GB
2. Komputer yang digunakan sebagai client sebanyak dua buah
menggunakan mesin virtual dengan aplikasi berupa Virtual Box dengan
memory sebesar 512 MB dan hard drive 8 GB dengan menggunakan
sistem operasi Linux Ubuntu 12.04.
3. Tiap komputer (node) terinstallasi dengan MPICH2-1.4.1 sebagai standar
library pengenalan dasar pemrograman sistem paralel dan menggunakan
NFS-Server sebagai layanan berbagi file antar node.
4. Proses kompilasi berkas menggunakan MPI dan GCC, dan sistem tidak
dapat menerima perintah std.in.
TINJAUAN PUSTAKA
MPI (Message Passing Interface)
MPI adalah sebuah standar library pengenalan dasar pemrograman sistem
paralel (Gropp 2003). MPI dapat digunakan dengan berbagai bahasa
pemrograman seperti bahasa C dan Fortran. Operasi utama yang dilakukan oleh
standar MPI adalah:
1. Point-to-point communication
MPI Point-to-point Communication adalah komunikasi antar dua proses, yaitu
proses yang bertugas mengirim data atau operasi, dan proses lainnya yang
bertugas menerima data atau operasi tersebut.
2. Collective Communication
MPI Collective Communication melakukan komunikasi yang dipanggil oleh
semua proses dalam communicator dan melibatkan seluruh proses tersebut
(Quinn 2004)
MPI memiliki beberapa implementasi yang sering digunakan. Salah satunya
adalah MPICH (Message Passing Interface Chameleon). MPICH merupakan salah
satu library yang mengimplementasi MPI, yang merupakan standar message-
passing untuk aplikasi yang membutuhkan distributed-memory pada komputasi
paralel. MPICH berguna untuk manajemen sistem komunikasi pada komputer
paralel. MPICH dapat digunakan pada beberapa platform sistem operasi, seperti
Linux, Mac OS X, dan Microsoft Windows. Selain MPICH, juga terdapat
beberapa implementasi MPI seperti OpenMPI, LAM-MPI, MPI-MS, dan
sebagainya.
3
Network File System (NFS) – Server & Client
Network File System (NFS) adalah salah satu layanan (service) yang dapat
memungkinkan suatu komputer untuk melakukan proses mount suatu direktori
pada komputer lain. Dengan menggunakan NFS, suatu komputer dapat berbagi
file, bahkan program antar sesama client yang terhubung dalam server utama. NFS
juga memungkinkan suatu komputer untuk melakukan pengaktifan/penggunaan
(mounting) peralatan pada komputer lain yang terhubung ke jaringan.
Terdapat dua versi NFS yaitu NFS versi 2 (NFSv2) dan NFS versi 3
(NFSv3). Pada NFSv2 menggunakan protokol UDP untuk melakukan koneksi
antar server dan client, sedangkan NFSv3 menggunakan protokol UDP dan TCP
sekaligus. NFS menggunakan Remote Procedure Call (RPC) untuk mengarahkan
koneksi antara client dengan server. Pada sistem operasi Linux, RPC adalah
layanan yang dikendalikan oleh suatu program yang disebut portmap. Untuk
melakukan proses sharing dan mount pada NFS (Steven 2007).
Komputer Paralel dan Komputer Cluster
Komputer paralel adalah kumpulan dari elemen pemroses yang
berkomunikasi dan bekerjasama untuk menyelesaikan masalah secara efisien
(Flynn 1972). Arsitektur paralel dibagi berdasarkan taksonomi Flynn. Taksonomi
Flynn adalah sebuah klasifikasi arsitektur komputer yang dibuat berdasarkan
jumlah instruksi yang berjalan simultan dan konkruen, serta aliran data yang
diprosesnya. Dalam taksonomi Flynn, arsitektur komputer dibagi menjadi empat
kelas diantaranya:
1. Single Instruction Single Data Stream (SISD)
Pada arsitektur ini, komputer tidak melakukan paralelisasi terhadap
instruksi atau data. Contoh dari kelas ini adalah uniprocessor
2. Multiple Instruction Single Data Stream (MISD)
Pada arsitektur ini, sebuah komputer dapat melakukan banyak instruksi
pada satu aliran data. Kelas ini tidak memiliki contoh karena hanya
berupa purwarupa (prototype) dan tidak pernah dirilis secara massal.
3. Single Instruction Multiple Data Stream (SIMD)
Komputer pada arsitektur ini memproses banyak aliran data dalam satu
instruksi, sehingga operasi yang dilakukan adalah operasi paralel.
Contoh dari kelas ini adalah array processor dan vector processor.
4. Multiple Instruction Multiple Data Stream (MIMD)
Komputer yang memiliki beberapa prosesor yang bersifat autonomous
yang mampui melakukan instruksi yang berbeda pada data yang berbeda.
Contoh dari kelas ini adalah shared memory dan distributed memory.
Pada taksonomi arsitektur komputer di atas, pendekatan hardware yang
digunakan untuk komputer paralel terdapat pada arsitektur keempat yaitu MIMD.
Arsitektur ini dibagi menjadi dua jenis yaitu shared memory dan distributed
memory. Pada arsitektur shared memory, beberapa CPU menggunakan satu
resource memori secara bersama-sama. Sedangkan pada arsitektur distributed
memory, masing-masing CPU memiliki memori yang tersebar dan terintegrasi
dalam satu jaringan komputer.
4
Komputer cluster adalah kumpulan beberapa komputer yang berada dalam
sebuah jaringan, sehingga diperoleh sebuah kesatuan sistem komputer yang
memiliki kinerja lebih baik dalam memberikan suatu fungsi layanan tertentu atau
menjalankan algoritme paralel (Gropp 2003). Sesuai dengan definisinya,
komputer cluster berguna untuk memberikan layanan seperti manajemen server,
layanan web, email, serta untuk menjalankan algoritme paralel seperti melakukan
perhitungan ilmiah, simulasi, dan lainnya. Kaminsky, 2007 menggambarkan
contoh arsitektur komputer cluster yang dapat dilihat pada Gambar 1.
Clustering dirancang untuk meningkatkan kemampuan kinerja dari
komputer-komputer yang berada dalam satu jaringan untuk dapat meningkatkan
hal-hal berikut:
1. Toleransi Kesalahan (Fault Tolerance)
Hal ini dapat menyebabkan node lain akan mengambil alih kerja node
utama ketika node tersebut mengalami kegagalan. Client tidak akan
melihat pergantian peran ini sehingga downtime dapat dikurangi secara
drastis.
2. Penyerataan Beban (Load Balancing)
Mendistribusikan beban satu node ke semua node anggota cluster.
Sehingga kinerja dan skalabilitas node utama menjadi lebih baik.
Jenis-jenis Cluster
Karakteristik utama dari clustering adalah bagaimana suatu task ditangani
secara bersama-sama. Inilah yang membedakan cluster dengan mekanisme
jaringan komputer biasa yang menjalankan program client-server. Komputer
cluster difokuskan pada mekanisme sistem operasi dan hardware untuk
menyatukan sumber daya setiap node (Armbrust 2010). Komputer cluster dibagi
menjadi dua jenis yaitu:
1. High Performance Computing (HPC)
Secara umum, jenis cluster HPC ditujukan pada bagaimana suatu proses
komputasi dapat diakselerasi. Dengan demikian proses penyelesaian task
dapat diselesaikan lebih cepat.
2. High Availability (HA)
Secara umum jenis cluster ini ditujukan agar program yang dijalankan di
atasnya bisa terus menjalankan, sekalipun salah satu node hang atau down.
Contohnya adalah web server Apache yang diset dengan suatu redirector,
sehingga jika salah satu server down, server lain bisa mengambil alih.
Gambar 1 Contoh arsitektur komputer cluster (Kaminsky 2007)
5
METODE
Penelitian ini dilakukan dengan beberapa tahapan proses, yaitu analisis,
perancangan, implementasi, dan pengujian. Proses tersebut dapat dilihat pada
Gambar 2.
Analisis
Tahap analisis merupakan tahap awal dilakukannya penelitian yaitu tahapan
untuk mengetahui kebutuhan dari sistem yang akan dibuat. Tahap ini dilakukan
untuk merumuskan spesifikasi kebutuhan perangkat lunak, di antaranya adalah
spesifikasi pengguna, kebutuhan data dan kebutuhan fungsional sistem. Aktivitas
yang dilakukan pada tahap ini adalah menganalisis kebutuhan-kebutuhan yang
akan diimplementasikan pada sistem sehingga menghasilkan tabel fungsional
sistem.
Perancangan
Pada tahap perancangan, terdiri atas perancangan perancangan database dan
perancangan alur kerja sistem sistem, yang bertujuan mengidentifikasi dan
mendeskripsikan data yang dibutuhkan oleh pengguna dalam sistem. Selain itu,
juga dibuat use case diagram pengguna serta model data konseptual yang akan
mendukung perbedaan kebutuhan informasi dari beberapa jenis pengguna dalam
sistem. Pada tahapan ini, sistem dibagi menjadi beberapa jenis pengguna, yang
bertujuan untuk mengatur pengalokasian komputer yang dapat digunakan oleh
aplikasi tersebut.
Implementasi
Secara umum, tahapan ini merupakan pembuatan sistem yang telah
dirancang dalam tahapan perancangan alur kerja sistem menjadi sebuah sistem.
Selain itu, beberapa hal penting dalam mengembangkan sistem seperti lingkungan
pengembangan sistem, bahasa pemrograman, dan beberapa hal terkait library
yang akan digunakan pada tahapan ini.
Gambar 2 Metode penelitian
6
Pengujian Sistem
Tahapan pengujian sistem bertujuan untuk melihat apakah sistem dapat
berjalan sesuai fungsinya melalui berbagai parameter dan skenario pengujian.
Tahap ini merupakan tahap akhir setelah sistem selesai diimplementasikan. Tahap
pengujian sistem bertujuan untuk menguji sistem dapat berjalan sesuai dengan
fungsi yang telah dirancang diawal tahap pengembangan. Skenario pengujian
sistem ini diambil dari tabel fungsional sistem.
HASIL DAN PEMBAHASAN
Analisis
Sistem aplikasi web komputer cluster ini akan diterapkan pada head node
komputer cluster yang terhubung dalam sebuah jaringan dengan dua buah node
pembantu. Sistem memiliki tiga tipe pengguna diantaranya free user, registered
user, dan premium user. Setiap pengguna memiliki jumlah akses komputer dan
fungsionalitas pengguna yang berbeda-beda. Pada free user, pengguna hanya
dapat mengakses satu buah komputer, registered user dapat mengakses dua buah
komputer, sedangkan premium user dapat mengakses seluruh komputer. Selain itu,
terdapat administrator yang bertugas untuk mengatur manajemen sistem. Pada
tahap ini dibuat sebuah tabel fungsional sistem yang dapat dilihat pada Tabel 1.
Perancangan
Tahapan ini meliputi perancangan database, alur kerja, dan use case
diagram sistem yang berguna untuk menyimpan data pengguna yang dibutuhkan
oleh sistem dan perancangan alur kerja sistem. Perancangan database pada
tahapan ini bertujuan untuk mengidentifikasi dan mendeskripsikan data yang
dibutuhkan berupa jenis dan informasi dari pengguna sistem. Ilustrasi rancangan
database dapat dilihat pada Gambar 3.
Tabel 1
No. Kode Fungsi
1 CLTR-01 Melakukan login pada sistem
2 CLTR-02 Memasukkan berkas yang akan diproses ke dalam
komputer cluster
3 CLTR-03 Memilih jumlah komputer pemroses pada user
tertentu
4 CLTR-04 Melakukan proses eksekusi program
5 CLTR-05 Mengedit tipe pengguna
6 CLTR-06 Mengedit info pengguna
Tabel 1 Tabel Fungsional Sistem
7
Secara umum, alur kerja sistem antarmuka ini, terdiri dari beberapa langkah
sebagai berikut.
1. Pengguna mengakses halaman web lalu mengunggah berkas program ke
dalam sistem.
2. Komputer utama menerima berkas program yang dimasukkan lalu
menyalurkannya ke setiap komputer pembantu (client).
3. Pengguna memilih jumlah komputer yang akan digunakan dalam
pengeksekusian program.
4. Komputer cluster mengeksekusi program sesuai dengan input yang
dimasukkan oleh user.
5. Komputer cluster selesai mengeksekusi program dan mengirim hasil
eksekusi program ke web.
6. User memperoleh hasil eksekusi program.
Gambar 4 Contoh arsitektur sistem
Gambar 4 Contoh arsitektur sistem
Gambar 3 Rancangan database sistem
Gambar 3 Contoh arsitektur sistem
8
Sistem ini dibangun dengan arsitektur menggunakan tiga buah komputer
dengan nama node 1, node 2, dan node 3 yang saling terhubung satu sama lain
menggunakan nfs-server yang dapat dilihat pada Gambar 4. Sistem ini terbagi
menjadi tiga jenis pengguna yaitu free user, registered user dan premium user.
Free user dapat langsung melakukan proses eksekusi tanpa harus melakukan login.
Sedangkan registered user dan premium user harus melakukan login terlebih
dahulu sebelum menggunakan sistem. Langkah kerja dari sistem antarmuka
komputer cluster free user, registered, dan premium user diilustrasikan pada
Gambar 5, Gambar 6, dan Gambar 7.
Registered user adalah anggota yang terdaftar ke dalam sistem secara gratis
(free), sedangkan premium user adalah anggota yang memberikan donasi pada
pemilik sistem agar sistem ini dapat dikembangkan dikemudian hari. Pembeda
antar jenis pengguna dan jenis member adalah pengaturan jumlah penggunaan
komputer dalam pengeksekusian program. Pada free user, pengguna hanya dapat
menggunakan satu unit komputer dengan jumlah proses maksimal sebanyak
jumlah core pada CPU. Registered member dapat melakukan proses eksekusi
Gambar 5 Alur kerja sistem antarmuka komputer cluster free user
Gambar 6 Alur kerja sistem antarmuka komputer cluster registered user
Gambar 6 Alur kerja sistem antarmuka komputer cluster free user
Gambar 5 Alur kerja sistem antarmuka komputer cluster registered user
9
dengan menggunakan dua buah komputer dengan jumlah core keseluruhan proses
pada tiap komputer. Sedangkan premium member diperbolehkan menggunakan
seluruh komputer dengan jumlah maksimal proses pada sistem. Selain pengguna
di atas, juga terdapat administrator pada sistem ini yang berguna untuk mengatur
manajemen sistem ini agar dapat berjalan dengan baik. Administrator dapat
melakukan hak penuh terhadap masing-masing pengguna dan jenis pengguna. Di
samping itu, admin juga dapat melakukan proses eksekusi program dengan
menggunakan keseluruhan node. Use case diagram sistem ini dapat dilihat pada
Gambar 8.
Implementasi
Perangkat lunak ini dikembangkan menggunakan PHP sebagai bahasa
pemrograman. Selain itu sistem ini menggunakan MPICH2 versi 1.4.1 sebagai
standar library pengenalan pemrograman paralel pada komputer cluster yang
berfungsi untuk mengeksekusi program dengan menggunakan bahasa C, C++, dan
fortran. Sistem melakukan compile program melalui PHP dengan menggunakan
shell command berupa perintah exec.
Pada implementasi komputer cluster, didefinisikan seluruh hostnames dan
IP address dalam direktori /etc/hosts yaitu
127.0.0.1 localhost
127.0.0.1 node0
192.168.1.1 node0
192.168.1.2 node1
192.168.1.3 node2
Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user
10
Pendefinisian hostnames berguna untuk mempermudah sistem dalam proses
pemanggilan komputer yang akan digunakan untuk melakukan eksekusi program
sehingga tidak perlu dimasukkan lagi IP address nya. Pada komputer cluster
dibutuhkan nfs-server dan nfs-client yang bertujuan untuk mempermudah dalam
proses berbagi berkas yang tersimpan pada komputer utama sehingga dapat
diakses oleh komputer pemroses lainnya tanpa harus melakukan penyalinan
berkas ke seluruh node dengan cara memasukkan perintah dalam terminal seperti
Pada tiap komputer pembantu dilakukan mounting direktori mirror pada komputer
utama dengan menambahkan perintah pada berkas /etc/fstab berupa
Gambar 8 Use Case komputer cluster
melki@node0:~$ sudo mkdir /mirror
melki@node0:~$ echo “/mirror &(rw,sync)” |
sudo tee –a /etc/hosts
melki@node0:~$ sudo service nfs-kernel-server restart
node0:/mirror /mirror nfs
Gambar 8 Use Case komputer cluster
11
Selain penggunaan nfs-server, digunakan juga SSH Server berupa OpenSSH
yang bertujuan agar keseluruhan node dapat melakukan kerja sama dengan cara
memasukkan kunci public sehingga tidak perlu melakukan melakukan login antar
komputer. Sistem ini bekerja dengan menggunakan MPICH sebagai standard
library pemrosesan parallel. MPICH ini memiliki binding standar berupa C++ dan
fortran 77 serta fortran 90, sehingga mendukung banyak jenis environment
termasuk klaster-klaster Symmetric Multi Processing (SMP) dan komputer
parallel.
Pada sistem antarmuka komputer cluster digunakan PHP: Hypertext
Preprocessor sebagai bahasa pemrogramannya. Selain itu dipilih sebuah library
untuk dapat memperoleh akses kunci publik tanpa harus melakukan login antar
node melalui PHP yaitu phpseclib (PHP Secure Communication Library).
Phpseclib sendiri merupakan salah satu library yang memiliki kemampuan untuk
melakukan berbagai komunikasi melalui SSH, SFTP, aritmatika presisi dan
berbagai macam kriptografi.
Phpseclib berfungsi untuk mengecek ketersediaan komputer pemroses serta
menghubungkan koneksi antar komputer melalui apache server, sehingga proses
kerja komputer paralel dapat bekerja sama. Pada sistem ini juga dibuat sebuah
machinefile secara otomatis, sesuai dengan parameter yang dimasukkan oleh
pengguna sistem. Machinefile berfungsi untuk mengatur jumlah proses yang
diterima atau pembagian beban yang diterima oleh setiap komputer. Pada
umumnya machinefile berisikan perintah berupa nama komputer dan jumlah
proses yang diterima oleh komputer tersebut. Nama komputer diambil dari
direktori /etc/hosts yang berisikan IP address dan nama dari tiap komputer.
Contoh isi dari machinefile dapat dilihat sebagai berikut
Pada sistem ini dibuat informasi tiap pengguna secara terpisah dan
machinefile yang dipetakan ke masing-masing pengguna. Hal ini dilakukan agar
sistem dapat melakukan proses eksekusi secara multi tasking.
Pengujian Sistem
Pengujian Fungsional
Pengujian fungsional sistem dilakukan dengan menjalankan sistem sesuai
dengan alur kerja yang ditentukan. Fungsi-fungsi yang diujikan diambil dari
rancangan arsitektur sistem komputer cluster. Tampilan keseluruhan antarmuka
sistem yang telah dijalankan pada premium user dapat dilihat pada Gambar 9.
Pada registered user tampilan antarmuka sistem dapat dilihat pada Gambar 10.
Sedangkan pada free user tampilan antarmuka sistem dapat dilihat pada Gambar
11.
node0:4 #jumlah proses pada node 0 sebanyak 4 proses
node1:3 #jumlah proses pada node 1 sebanyak 3 proses
node2 #jumlah proses pada node 2 sebanyak 1 proses
12
Selain berbagai user, juga terdapat admin dalam sistem antarmuka komputer
cluster. Admin berfungsi sebagai pengatur user dan dapat mengakses sistem ini
dengan akses penuh pada keseluruhan node komputer. Tampilan antarmuka dari
admin dapat dilihat pada Gambar 12. Hasil pengujian sistem dapat dilihat pada
Tabel 2.
Pengujian Kinerja Sistem
Pada pengujian kinerja sistem dilakukan beraneka kombinasi pengujian
untuk mengecek kestabilan dan validitas sistem yang digunakan agar tidak terjadi
crash system ketika digunakan oleh banyak pengguna. Pengujian sistem dilakukan
dengan menggunakan dua buah laptop yang mengakses sistem secara bersamaan
untuk mengetahui hasil urutan proses yang dilakukan agar hasil dari proses sistem
tidak tertukar dan terputus antar pengguna. Pada komputer pertama dimasukkan
Gambar 9 Antarmuka aplikasi pada premium user
Gambar 10 Antarmuka aplikasi pada registered user
Gambar 11 Antarmuka aplikasi pada free user
Gambar 11 Antarmuka aplikasi pada premium user
Gambar 10 Antarmuka aplikasi pada free user
13
sebuah program C yang berisikan syntax menghitung pendekatan nilai (pi) yang
terlampir pada Lampiran 1.
Pada komputer kedua, dimasukkan sebuah program C++ berisikan syntax
memanggil kata “Hello World” sebanyak jumlah proses yang dimasukkan yang
terlampir pada Lampiran 2.
Data yang dimasukkan ke dalam sistem secara bersamaan oleh dua user
kemudian diolah oleh sistem. Hasil output dari sistem dapat berjalan secara
simultan pada user yang terdaftar pada sistem. Hal ini dapat dilakukan karena
setiap user memiliki user log masing-masing yang berisikan berkas history
pemrosesan dan machinefile tiap pengguna. Pada free user, proses dijalankan
berdasarkan alur first in first out (FIFO) yang disebabkan karena pengguna tidak
memiliki informasi yang terdaftar dalam sistem. Dalam sistem ini semua jumlah
proses eksekusi paralel tiap node diatur oleh machinefile dengan proses maksimal
sejumlah banyaknya core pada CPU komputer. Pada sistem ini terdapat tiga buah
node dengan masing-masing node memiliki empat buah, satu buah, dan satu buah
core CPU, sehingga menghasilkan jumlah proses keseluruhan node sebesar 6
proses. Akan tetapi apabila user memasukkan jumlah proses eksekusi melebihi
batas proses maksimal, maka machinefile akan mengalihkan sisa prosesnya
kembali ke komputer utama sesuai dari isi machinefile tersebut.
Gambar 12 Antarmuka aplikasi pada admin
Tabel 2 Tabel pengujian sistem
No. Kode Fungsi Status
1 CLTR-01 Melakukan login pada sistem Berhasil
2 CLTR-02 Memasukkan berkas yang akan diproses ke dalam
komputer cluster
Berhasil
3 CLTR-03 Memilih jumlah komputer pemroses pada user
tertentu
Berhasil
4 CLTR-04 Melakukan proses eksekusi program Berhasil
5 CLTR-05 Mengedit tipe pengguna Berhasil
6 CLTR-06 Mengedit info pengguna Berhasil
Gambar 12 Antarmuka aplikasi pada admin
14
SIMPULAN DAN SARAN
Simpulan
Sistem ini dapat membantu pengguna dalam memudahkan proses eksekusi
program sistem paralel menggunakan komputer cluster, tanpa harus melakukan
pengaturan pada command line sehingga lebih mempercepat proses eksekusi.
Sistem ini dapat melakukan eksekusi program dengan bahasa C (.c), C++ (.cpp)
dan fortran (.f) , serta memiliki tiga tingkatan pengguna yaitu free user, registered
user, dan premium user. Pada registered dan premium user, pengguna memiliki
akun dalam sistem yang menyimpan informasi dan log aktivitas pengguna,
sehingga sistem dapat menyimpan hasil eksekusi program ke dalam log aktivitas
ketika pengguna sedang offline, serta sistem juga mengirimkan hasil eksekusi ke
email pengguna. Sistem ini melakukan proses eksekusi secara bersamaan (multi
user) antar pengguna pada registered user dan premium user, namun pada free
user sistem melakukan eksekusi secara first in first out (FIFO) .
Saran
Saran untuk penelitian selanjutnya adalah:
1. Dilakukan pengembangan sistem yang bisa melakukan penambahan
client secara otomatis, sehingga tidak perlu mengubah/menambahkan
source code pada sistem.
2. Dilakukan pengembangan sistem agar dapat mendukung beberapa
platform seperti OpenMP, CUDA,dan lainnya.
3. Dilakukan pengembangan sistem agar bisa melakukan checkpointing
sehingga sistem dapat melanjutkan eksekusi program apabila terjadi
server-down.
15
DAFTAR PUSTAKA
Armbrust, Michael. 2010. A View of Cloud Computing. Communication of the
ACM 53(4), 50-58
Beekhof, Andrew. 2010. Pacemaker 1.1 Cluster from Scratch. Melbourne:
University of Melbourne
Dunnweber, Jan & Bennoit Anne. 2005. Integrating MPI-Skeleton with Web
Services for Grid Programming. Munster: University of Munster
Flynn, Michael J. 1972. Some Computer Organizations and Their Effectivenes.
Computers, IEEE transactions on, 100(9), 948-960
French, Steven M. 2007. A Network File System is Born: Comparison of SMB2,
CIFS, and NFS. In Linux Symposium.
Gropp, William. 2003. Beowulf Cluster Computing with Linux. Cambridge: The
MIT Press
Kaminsky, Alan. 2007. Parallel Java Library. New York: Rochester Institute of
Technology
Sloan, Joseph. 2004. High Performance Linux Cluster with OSCAR, Rocks,
OpenMosix, and MPI. California: O’Reilly Media Inc
Quinn, Michael. 2004. Parallel Programming in C With MPI and Openmp. New
York: McGraw-Hill Inc
16
LAMPIRAN
Lampiran 1 Program menghitung pendekatan nilai (pi)
#include "mpi.h"
#include <stdio.h>
#include <math.h>
double f( double );
double f( double a)
{
return (4.0 / (1.0 + a*a));
}
int main( int argc, char *argv[] )
{
int done = 0, n, myid, numprocs, i;
double PI25DT = 3.141592653589793238462643;
double mypi, pi, h, sum, x;
double startwtime=0.0, endwtime;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Get_processor_name(processor_name,&namelen);
fprintf(stderr,"Process %d on %s\n",
myid, processor_name);
n = 0;
while (!done)
{
if (myid == 0)
{
if (n==0) n=100; else n=0;
startwtime = MPI_Wtime();
}
MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);
if (n == 0)
done = 1;
else
{
h = 1.0 / (double) n;
sum = 0.0;
for (i = myid + 1; i <= n; i += numprocs)
{
x = h * ((double)i - 0.5);
sum += f(x);
}
mypi = h * sum;
17
Lampiran 2 Program memanggil kata ”hello world”
MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE,
MPI_SUM, 0, MPI_COMM_WORLD);
if (myid == 0)
{
printf("pi is approximately %.16f,
Error is %.16f\n",
pi, fabs(pi - PI25DT));
endwtime = MPI_Wtime();
printf("wall clock time = %f\n",
endwtime-startwtime);
}
}
}
MPI_Finalize();
return 0;
}
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
18
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggan 20 Juni 1991, anak kedua dari
tiga bersaudara dari pasangan Y. Hasali dan Ermi Rahayu. Penulis lulus dari
Sekolah Menengah Atas Negeri 1 Tanjungpandan Belitung pada tahun 2008 dan
diterima di Departemen Ilmu Komputer Institut Pertanian Bogor melalui jalur
Undangan Seleksi Masuk IPB.
Selama menjadi mahasiswa, penulis aktif mengikuti organisasi Badan
Eksekutif Mahasiswa dalam Kementrian Pendidikan. Penulis juga aktif dalam
beberapa kegiatan kepanitiaan dalam kampus maupun luar kampus seperti Masa
Pengenalan Departemen Ilmu Komputer 2010, IT Today 2010, IPB Deducation
for Education 2010, 2011 dan 2012, International Scholarship Education Expo
2010, 2011, dan 2012, dan Anggota pameran inovatif Pekan Ilmiah Mahasiswa
Nasional (PIMNAS) XXV di Universitas Muhammadiyah Yogyakarta pada tahun
2012 dan Pekan Ilmiah Mahasiswa Nasional (PIMNAS) XXVI di Universitas
Mataram tahun 2013. Penulis melaksanakan kegiatan praktik kerja lapang di PT.
Pertamina Persero dengan judul Sistem Administrasi Pelayanan Oil Clinic.