JURNAL TEKNIK POMITS Vol. 1, No. 1, (2013) 1-5 1 Implementasi Portal Komputasi Grid untuk Multi Kluster Benediktus Anindito dan F. X. Arunanto Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 E-mail: [email protected] Abstrak—Komputasi grid adalah salah satu jenis sistem terdistribusi yang terpisah secara geografis di mana sumber daya yang ada bisa dimanfaatkan untuk memecahkan persoalan komputasi dalam skala besar. Dalam penelitian ini, penulis mengembangkan infrastruktur komputasi grid yang telah diriset sebelumnya, terutama pada pengembangan portal. Infrastruktur komputasi grid ini terdiri atas dua kluster yang terhubung ke sebuah portal. Dalam mengembangkan portal, penulis menggunakan perangkat lunak Globus Toolkit, Gridsphere, dan Vine Toolkit. Setelah dibangun, infrastruktur grid ini diuji dengan mengirimkan parallel job ke kedua kluster. Hasilnya, parallel job berjalan dengan baik pada kedua kluster, dan komputasi paralel yang disediakan oleh kedua kluster dapat mempercepat pemrosesan suatu masalah komputasi dengan data yang cukup besar. Kata Kunci—globus toolkit, gridsphere, komputasi grid, vine toolkit I. PENDAHULUAN S AAT ini, dunia industri sudah terlibat sebagai salah satu pengguna sistem terdistribusi. Terminologi grid sudah menjadi suatu slogan marketing. Bermacam-macam filesystem terdistribusi disebut sebagai storage grid. Sistem penjadwal yang dipasang pada sebuah kluster disebut sebagai cluster grid [1]. Umumnya, pengguna penguna infrastruktur grid adalah orang-orang yang berada di luar bidang teknologi informasi, misalnya dari bidang keilmuan astrologi, fisika, bahkan ekonomi. Orang-orang ini tentunya mementingkan kemudahan dalam penggunaan infrastruktur grid. Oleh karena itu diperlukan suatu antar muka pengguna. Di sinilah portal web mengambil peran. Portal web adalah sebuah laman web yang berfungsi untuk menyediakan berbagai macam layanan web. Setiap pengguna yang terdaftar dalam portal tersebut dapat melakukan personalisasi akan fitur-fitur yang disediakan oleh portal tersebut. Unit penyedia layanan terkecil disebut dengan istilah portlet. Pengembangan portlet sendiri mulai populer setelah standar antarmuka pemrogramannya diresmikan dalam Java Specification Request 168. Standar ini memungkinkan pengguna dapat membuat layanan web baru dan menambahkannya ke portal. II. DASAR TEORI A. Gridsphere Portal Gridsphere dikembangkan berdasarkan best practice dari alat dan pustaka pengembangan Grid Portal Development Kit (GPDK) yang saat ini sudah berhenti proses pengembangannya. GPDK menyediakan antarmuka pemrograman yang dapat digunakan kembali, sehingga pengguna baru dapat dengan mudah mengadaptasi dan mengembangkan layanan komputasi grid milik mereka sendiri. Gridsphere juga mengadopsi teknologi portal web Astrophysics Scientific Collaboratory (ASC). Portal ASC pada awalnya dikhususkan untuk riset astrofisika, memungkinkan periset menjalankan aplikasi simulasi pada sumber daya komputasional skala besar. Portal ini juga menyediakan dokumentasi untuk pengguna lain di luar bidang riset astrofisika yang ingin mempermudah eksekusi program pada lingkungan komputasi berkinerja tinggi [2]. B. Vine Toolkit Vine Toolkit adalah aplikasi portlet sekaligus antarmuka pemrograman yang dikembangkan oleh Piotr Dziubecki, dkk. di Poznan Supercomputing and Networking Center. Vine Toolkit ini adalah proyek yang modular, artinya perangkat lunak ini memiliki komponen-komponen yang dapat terintegrasi dengan aplikasi-aplikasi portal web [3]. Portlet ini ditujukan untuk berbagai lingkungan komputasi, baik sebagai aplikasi desktop, command line interface, Java Web Start, dan aplikasi portlet atau servlet lainnya. Tujuan utama dikembangkannya Vine Toolkit adalah untuk mendukung berbagai macam standar web dan layanan komputasi grid. Dalam pengembangannya, Vine Toolkit menggunakan beberapa teknologi, antara lain adalah BlazeDs dan Adobe Flex. BlazeDs adalah teknologi web yang menyediakan antarmuka komunikasi klien (dalam hal ini adalah web browser) ke server berbasis Java, berupa pustaka remote procedure call dan messaging service [4]. Untuk riset ini, penulis menggunakan beberapa komponen Vine Toolkit seperti Resource Management, Account Management, File Management, dan Job Management. C. Globus Toolkit Globus Toolkit adalah suatu middleware komputasi grid JURNAL TEKNIK POMITS Vol. 1, No. 1, (2013) 1-5 yang dibuat oleh The Globus Alliance. Middleware ini terdiri atas beberapa komponen yang saling lepas satu sama lain, namun saling terkait. Komponen-komponen tersebut berupa perangkat lunak pendukung layanan komputasi grid, pustaka dan utilitas pemrograman yang dapat digunakan untuk membuat layanan dan aplikasi komputasi grid. Ada 5 domain dalam pengelompokan komponen Globus Toolkit, yaitu security, data management, execution management, information services, dan common runtime [5]. Kelompok komponen security dalam Globus Toolkit yang juga disebut Grid Security Infrastructure (GSI). Komponen ini memfasilitasi setiap layanan untuk berkomunikasi secara aman. Sesuai dengan namanya, komponen data management mengatur lalu lintas data yang dipakai di dalam suatu infrastruktur grid. Komponen execution management menghubungkan layanan-layanan yang disediakan Globus Toolkit dengan scheduler. Komponen utama dari execution management adalah GRAM (Grid Resource Allocation Management). Kelompok komponen information services berfungsi mengumpulkan berbagai macam informasi penting terkait ketersediaan sumber daya pada infrastruktur grid. Kelompok komponen ini menyediakan antar muka pemrograman untuk membuat layanan khusus pada infrastruktur grid menggunakan Globus Toolkit. D. OpenGrid Scheduler/GridEngine OpenGrid Scheduler/Grid Engine dahulu dikenal sebagai Sun Grid Engine adalah perangkat lunak scheduler yang awalnya dikembangkan oleh Sun Microsystem (merupakan afiliasi dari Oracle sejak tahun 2011) kemudian sekarang dirawat oleh suatu kontributor independen. Grid Engine dibangun dengan arsitektur klien-server yang mencocokkan sumber daya sesuai dengan yang diminta oleh pengguna [1]. Entitas dasar yang diatur oleh Grid Engine adalah job dan queue atau antrian. Setiap worker node memiliki satu buah antrian. Sistem multi antrian Grid Engine memungkinkan eksekusi beberapa parallel job sekaligus. Grid Engine terbagi atas dua bagian, yaitu queue master dan execution daemon. Queue master menerima parallel job yang dikirimkan oleh pengguna, kemudian mengalokasikan sumber daya yang cocok dengan yang dibutuhkan. Execution daemon mengirimkan status worker node di mana dia dipasang, antara lain jumlah prosesor yang sedang terpakai, load rata-rata, dan status queue. E. Message Passing Interface Komputasi paralel adalah suatu model komputasi yang melibatkan beberapa komputer sekaligus dalam menjalankan sebuah program. Dalam model komputasi ini, suatu masalah yang kompleks dibagi-bagi menjadi beberapa bagian yang kecil dan dijalankan secara paralel. Komputasi paralel ada beberapa bentuk, yaitu paralelisme tingkat bit, paralelisme tingkat instruksi, paralelisme tingkat data, dan paralelisme tingkat task [6]. Model komputasi seperti ini biasanya dipakai ketika kompleksitas program sangat tinggi dengan data yang sangat besar. 2 Untuk dapat membuat aplikasi komputasi paralel, diperlukan suatu kerangka kerja pemrograman. Kerangka kerja ini disebut sebagai Message Passing Interface. Kerangka kerja ini terdiri dari pustaka dan aplikasi bantu yang digunakan untuk menjalankan program secara paralel. Menurut Message Passing Interface Forum [7], MPI memiliki karakteristik-karakteristik sebagai berikut: MPI menyediakan komunikasi yang efisien dan antarmuka pemrograman yang menghindari penyalinan memori ke memori. MPI dapat diterapkan pada lingkungan komputasi yang heterogen. MPI menyediakan antarmuka komunikasi yang handal. Pengguna tidak perlu memikirkan apa yang harus dilakukan ketika ada kegagalan komunikasi saat program dikembangkan. Kegagalan komunikasi harus ditangani oleh subsistem komunikasi yang ada. MPI adalah antarmuka yang portabel, dan dapat dikembangkan oleh berbagai macam platform yang berbeda, tanpa perubahan yang signifikan. Antarmuka MPI tidak bergantung terhadap bahasa pemrograman tertentu dan dirancang agar aman dalam lingkungan multi thread. MPI menyediakan banyak fitur yang dapat meningkatkan kinerja pada lingkungan komputasi paralel dengan perangkat keras komunikasi antar-prosesor khusus. F. Komputasi Grid Gambar. 1. Ilustrasi virtual organization [5]. Jika komputasi paralel hanya terbatas pada lingkup organisasi yang kecil (contoh: laboratorium), maka komputasi grid adalah komputasi paralel yang memiliki lingkup yang lebih besar. Foster [1] menggagas suatu konsep yang disebut virtual organization atau disingkat VO. Pada Gambar 1, ada 3 organisasi, yaitu A, B dan C yang masing-masing memiliki sumber daya-sumber daya yang digambarkan sebagai lingkaran. Dari organisasi-organisasi tersebut bisa membentuk virtual organization dengan menggabungkan beberapa sumber daya dari organisasi yang berbeda. Foster juga merumuskan suatu arsitektur umum infrastruktur grid seperti pada Gambar 2. Arsitektur ini terdiri atas beberapa layer, yaitu fabric layer, connectivity layer, JURNAL TEKNIK POMITS Vol. 1, No. 1, (2013) 1-5 Gambar. 2. Arsitektur Grid [5]. resource layer, collective layer. Lapisan fabric menyediakan sumber daya fisik yang akan dibagipakaikan kepada pengguna infrastruktur grid. Lapisan connectivity adalah lapisan yang menyediakan protokol dan sarana komunikasi untuk transaksi berbasis jaringan. Lapisan resource berisi layanan-layanan dan protokol yang mengatur sumber daya yang terpisah. Lapisan collective sama dengan lapisan resource, hanya saja yang diatur adalah sumber daya sekelompok sumber daya. 3 Gambar. 4a. Arsitektur Jaringan Infrastruktur Grid. diilustrasikan pada Gambar 3. Penulis merumuskan arsitektur jaringan infrastruktur grid pada Gambar 4a dan 4b. Gambar 4a adalah arsitektur jaringan untuk kluster laboratorium GCL yang dijadikan kluster utama, sedangkan Gambar 4a adalah kluster laboratorium AJK yang dijadikan kluster percobaan. Kedua kluster terhubung ke portal melalui jaringan intranet jurusan Teknik Informatika ITS. III. PERANCANGAN SISTEM A. Infrastruktur Grid Ada beberapa komponen dalam suatu infrastruktur grid, yaitu head node, storage node, worker node, dan portal. Komputer yang berperan sebagai head node memilih dan menjadwalkan setiap parallel job yang dikirimkan oleh portal. Komputer storage node menyimpan data yang dibutuhkan untuk menjalankan parallel job. Storage node membagipakaikan data tersebut menggunakan Network File System. Worker node berkomunikasi dengan head node menggunakan penjadwal agar dapat menjalankan program paralel. Sedangkan portal berkomunikasi dengan head node untuk mengirimkan parallel job yang diminta oleh pengguna. Skema komunikasi komponen-komponen tersebut Gambar. 4b. Arsitektur Jaringan Infrastruktur Grid. Gambar. 3. Skema Komunikasi Antar Komponen dalam Infrastruktur Grid B. Pengiriman Parallel Job Gambar 5a dan 5b adalah flowchart pengiriman parallel job secara umum. Sebelum dapat menggunakan layanan dalam portal infrastruktur grid, pengguna harus memiliki login portal dan login MyProxy. Setelah login, pengguna dapat mengunggah program paralel miliknya ke portal, tepatnya pada lokasi yang telah disediakan administrator. Setelah itu, pengguna mengisi formulir pada portal mengenai spesifikasi parallel job yang akan dijalankannya. Pengguna bisa memilih untuk tidak menyimpan keluaran standard output dan standard error dari program paralel yang dijalankannya. JURNAL TEKNIK POMITS Vol. 1, No. 1, (2013) 1-5 4 Gambar. 5a. Flowchart Pengiriman Parallel Job. Gambar. 6a. Flowchart Tahapan Instalasi. OpenLDAP untuk single sign-on. Untuk tahap awal, penulis membangun kluster utama yang berada di laboratorium GCL, kemudian membangun portal dan menghubungkan kluster utama ke portal. Penulis melanjutkan implementasi dengan membangun kluster percobaan pada laboratorium AJK dengan bantuan administrator laboratorium tersebut. Gambar. 5b. Flowchart Pengiriman Parallel Job. Setelah job parallel dikirim, sistem akan menjalankannya sesuai dengan urut-urutan yang digambarkan pada flowchart. IV. IMPLEMENTASI Gambar 6a dan 6b adalah flowchart tahapan instalasi perangkat lunak dalam pengembangan infrastruktur grid. Perangkat lunak pendukung adalah perangkat lunak yang dibutuhkan untuk diinstall sebelum perangkat lunak kluster. Perangkat lunak tersebut antara lain adalah: Server DNS dan server DHCP untuk membantu memberi identitas setiap host. Network File System untuk membagi pakai file yang dibutuhkan pada saat menjalankan parallel job. Gambar. 6b. Flowchart Tahapan Instalasi. V. UJI COBA Pada tahap uji coba, penulis menginstal pustaka mpi4py pada setiap worker node. Pustaka ini berfungsi untuk “membungkus” pustaka MPI yang hanya tersedia dalam bahasa C dan Fortran agar dapat digunakan pada program berbahasa Python. Ada dua program paralel yang diujicobakan, yaitu program hello world dan program perkalian matriks. Kedua program JURNAL TEKNIK POMITS Vol. 1, No. 1, (2013) 1-5 tersebut ditulis dalam dua versi, yaitu versi serial yang akan dijalankan dalam 1 komputer, dan versi paralel yang dijalankan oleh 10 komputer. Di dalam versi parallel program tersebut juga dihitung waktu kalkulasi dan waktu komunikasi yang diperlukan untuk menjalankan program paralel tersebut. Berdasarkan keluaran pada program perkalian matriks, waktu eksekusi versi paralelnya jauh lebih cepat daripada versi serialnya. 5 percobaan. Gambar 9 adalah keluaran job parallel program perkalian matriks pada kluster utama. Gambar 10 adalah keluaran array a ukuran 2000 x 500 array b ukuran 500 x 100 waktu kalkulasi = 100.877357006 array c ukuran 2000 x 100 Gambar. 10. Keluaran Program Perkalian Matriks Versi Serial. VI. KESIMPULAN Dengan menggunakan Gridsphere dan Vine Toolkit, kita dapat mengimplementasikan portal yang dapat terhubung ke beberapa kluster sekaligus. Pemrograman paralel yang disediakan infrastruktur grid ini dapat mempercepat waktu eksekusi suatu program dengan data masukan yang cukup besar. process 4 of 8 [kancil] program perkalian matriks versi serial. UCAPAN TERIMA KASIH Penulis B.A. mengucapkan terima kasih kepada Tuhan atas segala kasih karunianya kepada penulis dalam penulisan makalah ini. Tak lupa juga penulis ucapkan kepada seluruh administrator dan pengguna laboratorium GCL yang sudah menemani penulis dalam pengerjaan Tugas Akhir ini. overall running time 7.70092010498e-05 process 3 of 8 [landak] process 5 of 8 [kelinci] process 7 of 8 [duyung] DAFTAR PUSTAKA [1] [2] process 0 of 8 [elang] process 6 of 8 [garuda] [3] process 2 of 8 [badak] process 1 of 8 [capung] Gambar. 7. Keluaran Program Hello World pada Kluster Utama. [4] LAMPIRAN [5] Gambar 7 dan 8 adalah keluaran dari job parallel program hello world pada kluster utama dan kluster [6] process 0 of 2 [Agni] [7] process 1 of 2 [Anubis] overall running time 7.50031953031e-05 Gambar. 8. Keluaran Program Hello World pada Kluster Percobaan. array a = 10 200 500 array b ukuran 500 x 100 calc time at elang = 0.000303030014038 calc time at kanguru = 0.000309944152832 calc time at kelinci = 0.000339984893799 calc time at capung = 0.000378131866455 calc time at kancil = 0.00030779838562 calc time at cicak = 0.000303030014038 calc time at landak = 0.000301122665405 calc time at domba = 0.000306129455566 scatter time = 0.637343168259 calc time at duyung = 0.000311851501465 calc time at garuda = 10.0784790516 gather time = 0.358506202698 array result2 ukuran 2000 x 100 Gambar. 9. Keluaran Program Perkalian Matriks pada Kluster Utama. V. Silva, Grid Computing for Developers (Programming Series). Massachusets: Charles River Media Incorporated (2006) J. Novotny, M. Russel, O. Wehrens, “GridSphere: an advanced portal framework,” Proceedings of the 30th Euromicro Conference. (2004) Tersedia: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1333397 Application Department Poznan Supercomputing and Networking Center. 2008. The Vine Toolkit: A Java Framework for Grid-enabling Applications. <URL: http://gforge.man.poznan.pl/files/vine_docs/VineToolkit_general.pdf> (diakses tanggal 3 Januari 2013) Adobe Systems Incorporated. 2008. BlazeDS Developer Guide. <URL: http://livedocs.adobe.com/blazeds/1/blazeds_devguide/blazeds_devguid e.pdf> (diakses tanggal 3 Januari 2013) B. Sotomayor, L. Childers, Globus Toolkit 4 Programming Java Services. San Francisco: Morgan Kauffman Publishers (2006) Z. Fauzi, Pemanfaatan Infrastruktur Grid ITS untuk Aplikasi Paralel Berbasis MPI. Surabaya: Jurusan Teknik Informatik ITS (2009) Message Passing Interface Forum. MPI: A Message-Passing Interface Standard. <URL: http://www.mpi-forum.org/docs/mpi-11-html/mpireport.html> (diakses tanggal 27 September 2012)