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
PENGEMBANGAN ANTARMUKA PENGGUNA BERBASIS WEB UNTUK SISTEM KOMPUTER CLUSTER
MELKI HASALI
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Ilmu Komputer pada Departemen Ilmu Komputer
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 N ama : Melki Hasa li NIM : G6408 0041
Disetujui oleh
/
Hendra Rahmawan, SKorn, MT
Pembimbin g
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 SIMPULAN DAN SARAN
11 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 messagepassing 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 Tabel Fungsional Sistem Tabel 1 No. 1
Kode CLTR-01
Fungsi Melakukan login pada sistem
2
CLTR-02
3
CLTR-03
4
CLTR-04
Memasukkan berkas yang akan diproses ke dalam komputer cluster Memilih jumlah komputer pemroses pada user tertentu Melakukan proses eksekusi program
5
CLTR-05
Mengedit tipe pengguna
6
CLTR-06
Mengedit info pengguna
7
Gambar 3 Rancangan database sistem Gambar 4 Contoh arsitektur sistem
Gambar 43 Contoh arsitektur sistem 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.
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 Gambar 65 Alur Alur kerja kerja sistem sistem antarmuka antarmuka komputer komputer cluster cluster free free user user
Gambar Gambar65Alur Alurkerja kerjasistem sistemantarmuka antarmukakomputer komputercluster clusterregistered registereduser user
9
Gambar 7 Alur kerja sistem antarmuka komputer cluster premium user
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 127.0.0.1 192.168.1.1 192.168.1.2 192.168.1.3
localhost node0 node0 node1 node2
10
Gambar Gambar 88 Use Use Case Case komputer komputer cluster cluster 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 melki@node0:~$ sudo mkdir /mirror melki@node0:~$ echo “/mirror &(rw,sync)” | sudo tee –a /etc/hosts melki@node0:~$ sudo service nfs-kernel-server restart Pada tiap komputer pembantu dilakukan mounting direktori mirror pada komputer utama dengan menambahkan perintah pada berkas /etc/fstab berupa node0:/mirror /mirror nfs
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 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 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.
12
Gambar Antarmukaaplikasi aplikasipada padapremium premiumuser user Gambar11 9 Antarmuka
Gambar 10 Antarmuka aplikasi pada registered user
Gambar 10 11 Antarmuka aplikasi pada free user 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
13
Gambar 12 Antarmuka Antarmuka aplikasi aplikasi pada pada admin admin Tabel 2 Tabel pengujian sistem No. 1
Kode CLTR-01
Fungsi Melakukan login pada sistem
Status Berhasil
2
CLTR-02
Berhasil
3
CLTR-03
4
CLTR-04
Memasukkan berkas yang akan diproses ke dalam komputer cluster Memilih jumlah komputer pemroses pada user tertentu Melakukan proses eksekusi program
5
CLTR-05
Mengedit tipe pengguna
Berhasil
6
CLTR-06
Mengedit info pengguna
Berhasil
Berhasil Berhasil
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.
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
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; } Lampiran 2 Program memanggil kata ”hello world”
#include
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.