Implementasi Portal Komputasi Grid untuk Multi Kluster

advertisement
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)
Download
Study collections