Makalah ini bukanlah versi final. Versi final makalah ini telah diterima dan diterbitkan pada Jurnal Teknik Informatika Universitas Pelita Harapan. Perbedaan isi dapat terjadi antara versi ini dengan versi final. Semua referensi harus merujuk pada versi final.
PENGGUNAAN VOLUNTEER COMPUTING DI PERGURUAN TINGGI
Yustinus Eko Soelistio1), Pujianto Yugopuspito2) Fakultas ICT, Universitas Multimedia Nusantara Scientia Garden, Jl. Boulevard Gading Serpong, Tangerang, Banten (021) 54220808 (ext. 2503) 2) Research and Development Computer Lab. Universitas Pelita Harapan Jl. M.H. Thamrin Boulevard, Tangerang, Banten (021) 5460901 e-mail: 1)
[email protected], 2)
[email protected] 1)
Abstract An extremely complex set of problems, such as finding better way to cure diseases, refining astronomical model, discovering new atom, exploring space object, and many more, needs more computation power than ever before. There are two ways as work around this problem, first by combining their computation power resources, and second by asking the public to join their effort by lending their computer to be used. This two methods are what we call volunteer computing. Volunteer computing gives the public opportunity to get involved in researches where initially exclusive. This paperdiscusses on how volunteer computing can enhance research project in a university in a flexible, budget wise, and secure way. Two examples are discussed: travel sales problem and a soil deformation simulation, by means implementing BOINC. As a result, volunteer computing can also help nurture creativity and productivity for both lectures and students. Keywords:distributed computing, grid computing, volunteer computing.
1. PENDAHULUAN Teknologi informasi sudah sangat berkembang. Teknologi komputer sudah bukan merupakan hal baru di jaman ini. Di Indonesia sendiri terutama di kota besar, komputer sudah hampir dimiliki oleh semua orang baik dalam bentuk high-powered komputer seperti PC dan laptop, maupun dalam bentuk compact seperti smart-phone dan tablet. Terlebih di lingkungan akademia, dimana komputer digunakan secara intensif. Walaupun demikian, tidak seluruh kemampuan komputer tersebut digunakan secara
merata untuk tujuan sebuah perguruan tinggi yaitu pembelajaran dan penelitian. Penelitian yang kompleks umumnya melibatkan banyak data dan perhitungan yang rumit. Semakin banyak data dan/atau semakin rumit perhitungan yang dibutuhkan maka semakin lama waktu yang diperlukan untuk memproses. Komputer umum dalam kategori PC secara ratarata dapat memproses sekitar 1,6 Giga Flops. Sebagai perbandingan, penelitian yang dilakukan oleh SETI@Home dapat mengumpulkan sekitar 535.169 Giga Flops[1]. Bila dibandingkan maka, seorang peneliti perguruan tinggi yang hanya diberikan sebuah PC untuk bekerja, membutuhkan waktu sekitar 334.000 kali lipat lebih lama bila melakukan penelitian seperti yang dilakukan proyek SETI@Home. Keterbatasan ini dapat menghambat kemajuan penelitan di sebuah perguruan tinggi. Untuk dapat melakukan penelitian yang membutuhkan sumber daya lebih dari 1 Giga Flops, peneliti harus memiliki komputer dengan kemampuan yang lebih besar atau mendapat tambahan komputer. Kedua cara tersebut tentu saja akan membutuhkan dana tambahan. Hal ini juga sering menjadi hambatan bagi peneliti, terutama peneliti yang bekerja secara independent atau peneliti yang bekerja di perguruan tinggi dengan dana terbatas. Untuk itu dibutuhkan sebuah metode untuk mengatasi kedua hal itu. Metode tersebut harus dapat membantu peneliti untuk mendapatkan tambahan computation power dengan biaya yang tidak terlalu tinggi. Salah satu cara untuk meningkatkan computation power adalah dengan menerapkan parallel computing. Yang dimaksud dengan parallel computing adalah sebuah cara untuk melakukan komputasi menggunakan komputer dimana komputasi dilakukan secara bersamaan[1]. Dengan menggunakan cara ini, tugas kalkulasi
Penggunaan Volunteer Computing… (Y. E. Soelistio, P. Yugopuspito)
1
yang biasanya dilakukan secara berurutan (serial) dapat diselesaikan secara bersamaan. Cara ini akan mengurangi waktu yang dibutuhkan dan dapat mengurangi beban pekerjaan yang biasanya dilakukan oleh sebuah komputer. Parallel computing secara umum dibagi menjadi empat jenis yaitu multicore computing, symmetric multiprocessing, dan distributed computing. Multicore computing dan symmetric multiprocessing adalah cara untuk melakukan parallel computing dengan membagi tugas komputasi di beberapa processor dalam sebuah central processing unit (CPU). Sedangkan distributed computing adalah cara untuk melakukan parallel computing dengan membagi tugas komputasi ke beberapa CPU. Secara umum, parallel computing mempunyai skalabilitas lebih tinggi daripada multicore computing dan symmetric multiprocessing. Distributed computing dan volunteer computingImplementasi distributed computing dapat dilakukan dengan tiga cara yaitu cluster computing, massive parallel computing, dan grid computing. Distributed computing bekerja dengan menggabungkan CPU dari beberapa komputer. Perbedaan utama antara grid computing dengan cluster computing dan massive parallel computing adalah grid computing menggunakan koneksi internet sebagai sarana komunikasi antar CPU. Volunteer computing merupakan salah satu bentuk grid computing. Dasar utama dari volunteer computing adalah klien secara
sukarela ikut serta dalam menyelesaikan persoalan scientific[2,3]. Setiap klien pada volunteer computing dapat memilih apakah komputer yang terhubung ke scheduler server merupakan dedicatedclient atau tidak. Registrasi klien menggunakan sistim terbuka dimana klien dapat dengan bebas mendaftarkan diri, dan demikian juga bebas untuk memisahkan diri. Klien dapat dengan bebas menentukan kapan dan seberapa besar CPU resource yang dapat digunakan untuk menyelesaikan task. Dilain pihak, schedulerserver menentukan jenis task dan validitas dari hasil task yang diselesaikan klien. Klien dapat dengan bebas menolak atau menerima task yang dikirim, tetapi klien tidak dapat melihat secara detil task yang diterima (black box). Ada dua perbedaan sifat klien antaravolunteer computing dengan gridcomputing[4]: 1) Resource komputasi pada grid computing bisa dipercaya sehingga tidak membutuhkan replikasi task. Sedangkan pada volunteer
2
computing replikasi task dibutuhkan untuk menghindari hasil yang salah. 2) Implementasi klien pada grid computing biasanya terjadi secara otomatis, sedangkan pada volunteer computing implementasi klien dilakukan sepenuhnya oleh user.
2. METODE Pendekatan yang digunakan dalam tulisan ini adalah kajian pustaka dan memberikan pemikiran cara penerapannya di perguruan tinggi dengan memberikan dua contoh yaitu dengan mengimplemantasi BOINC, suatu aplikasi opensource[a].
3. DISKUSI Skema volunteer computing terdiri dari tiga bagian yaitu aplikasi, server, dan klien. Tidak semua aplikasi bisa diimplementasikan kedalam skema volunteer computing. Terdapat tiga syarat sebuah aplikasi bisa diimplemtasikan: 1) Aplikasi tersebut harus bisa dibagi menjadi sub-aplikasi yang lebih kecil dan dapat dijalankan secara mandiri. 2) Aplikasi yang dijalankan harus mendukung proyek yang mempunyai nilai positif di masyarakat. 3) Aplikasi tersebut tidak menggunakan resource jaringan dan computation power yang terlalu besar. Server pada volunteer computing disebut dengan middleware. Server inimempunyai empat komponen utama yaitu scheduler, validator, assimilator, dan storage. Scheduler berfungsi sebagai pembagi task ke klien. Aplikasi yang telah dibuat akan dibagi menjadi beberapa task dan akan didistribusikan ke klien. Scheduler juga berfungsi sebagai filtertask mana saja yang akan diberikan ke klien dengan spesifikasi tertentu. Sedangkan validator berfungsi sebagai pemeriksa hasil dari klien. Sebuah task hanya akan dikategorikan sukses bila hasil dari task tersebut masih berada di dalam parameter yang ditentukan oleh validator. Pada umumnya sebuah task akan dikirim ke dua atau lebih klien untuk proses validasi, terutama bila task tersebut sensitif terhadap perbedaan sistim operasi. Bila dua atau lebih hasil sebuah task dikategorikan valid maka hasil tersebut akan melalui assimilator yang kemudian disimpan ke dalam storage. Gambar 1 menunjukkan diagram skema komponen volunteer computing:
Jurnal Ilmiah Ilmu Komputer, Vol. 9 No. 2Maret 2013: XX-XX
Makalah ini bukanlah versi final. Versi final makalah ini telah diterima dan diterbitkan pada Jurnal Teknik Informatika Universitas Pelita Harapan. Perbedaan isi dapat terjadi antara versi ini dengan versi final. Semua referensi harus merujuk pada versi final.
Start
Scheduler membuat task
End
Yes
Task habis diproses ? No
No
Klien 1 memproses task
Klien 1 memproses task
Klien N memproses task
Validasi
Valid ?
Yes
Asimilator
Simpan data
Gambar 1. Skema alur volunteer computing Disain implementasi Implementasi skema volunteer computing terbagi menjadi tiga bagian yaitu aplikasi, middleware, dan klien. Fokus implementasi aplikasi terjadi pada pembagian struktur aplikasi sehingga bisa dibagi menjadi task yang mandiri dan dapat berjalan secara paralel, serta platform dimana task akan dijalankan di klien. Sebuah aplikasi dapat mempunyai beberapa sub-aplikasi yang kemudian dibagi menjadi beberapa task. Sebuah aplikasi juga dapat mempunyai beberapa versi platform sistim operasi, misalnya aplikasi untuk sistim operasi windows i386, windows x64, linux i386, linux AMD64, apple i386, apple x64, dan ARM. Idealnya sebuah aplikasi mempunyai beberapa versi platform agar dapat menjangkau lebih banyak klien. Disain aplikasi juga harus memperhatikan struktur sistim operasi terutama aplikasi yang membutuhkan akurasi floating point yang tinggi. Middleware dapat diimplementasikan dengan membuat modul scheduler, validator, assimilator, dan storage. Modul validator dan assimilator
dapat merupakan bagian dari aplikasi atau cukup berupa script yang berjalan di server. Sedangkan storage dapat menggunakan aplikasi database yang sudah ada seperti MySQL, PosgreSQL, MSSQL, dan lain sebagainya. Scheduler dapat menggunakan aplikasi yang sudah banyak dikembangkan seperti BOINC dan QADPZ. Implementasi volunteer computing pada klien melibatkan instalasi aplikasi agent. Agent ini berfungsi sebagai taskmanager dan sarana komunikasi antara klien dengan aplikasi. Aplikasi agent didisain agar mudah digunakan dan dapat berjalan di berbagai platform agar dapat digunakan di banyak klien. Aplikasi agent juga harus manageable oleh klien dan memberikan akses penuh ke klien untuk mengatur jalannya task. Untuk melihat bagaimana volunteer computing dapat digunakan sebagai sarana penelitian di perguruan tinggi, maka akan diambil tiga contoh implementasi. Paper ini akan membahas pseudo disain aplikasi, middleware, dan agent klien. Struktur aplikasi, middleware, dan agent klien akan menggunakan generalisasi dariplatform BOINC. Contoh implementasi penelitian 1: mencari rute perjalanan terbaik di Jakarta dengan implementasi travelling salesman problem(TSP) Contoh ini mengambil situasi dimana penelitian akan berusaha mencari rute shortest pathuntuk berpergian ke beberapa titik lokasi di Jakarta dengan mengimplementasikan TSP. Penelitian akan menggunakan peta Jakarta sebagai sumber informasi rute. Peta tersebut akan dibagi menjadi beberapa bagian yang setiap bagiannya mewakili 500 m2 wilayah Jakarta. Sehingga luar Jakarta yang mencapai 661,52 km2 akan dibagi menjadi 1,324 bagian. Pada setiap bagian dipilih 20-50 titik lokasi, termasuk titik lokasi yang akan digunakan untuk menghubungkan antar bagian wilayah. Maka titik lokasi di seluruh Jakarta dapat menjadi 66.200 titik [b]. Disain aplikasi untuk contoh ini adalah aplikasi TSP, lihat gambar 2 skema aplikasi. Aplikasi akan mengambil input berupa bagian peta wilayah beserta dengan titik lokasi.Output aplikasi adalah list titik awal dan tujuan, beserta titik-titik diantaranya yang merupakan rute perjalanan.Aplikasi ini akan dijalankan berulang kali untuk semua bagian peta secara parallel.Aplikasi dibuat dengan bahasa pemprograman untuk sistim operasi Microsoft Windows x86. Untuk memperbesar jangkauan klien, aplikasi juga akan disebarkan untuk sistim
Penggunaan Volunteer Computing… (Y. E. Soelistio, P. Yugopuspito)
3
operasi Microsoft Windows x86_64, Linux x86, Linux x86_64, Apple x86, dan Apple x86_64
dengan menggunakan wrapper yang disediakan BOINC. Start
End
Yes
Data habis diproses ?
No
Data 40-50 lokasi
Data 30-40 lokasi
Data 20-30 lokasi
Scheduler
Aplikasi GPU
Aplikasi x64
Aplikasi Platform lain
No Klien GPU
Klien x64
Klien lain
Selesai sebelum due? Selesai sebelum due? Selesai sebelum due?
No Yes
Yes
Yes
Hasil 4050 lokasi
Hasil 3040 lokasi
Hasil 2030 lokasi
Validator
Valid?
Yes
Assimilator Assimilator
Storage
Gambar 2. Skema alur aplikasi mencari rute perjalanan terbaik di Jakarta
4
Jurnal Ilmiah Ilmu Komputer, Vol. 9 No. 2Maret 2013: XX-XX
Makalah ini bukanlah versi final. Versi final makalah ini telah diterima dan diterbitkan pada Jurnal Teknik Informatika Universitas Pelita Harapan. Perbedaan isi dapat terjadi antara versi ini dengan versi final. Semua referensi harus merujuk pada versi final.
Aplikasi akan dimasukan ke dalam middleware. Scheduler pada middleware akan mendistribusikan aplikasi beserta data input dalam bentuk task. Distribusi task akan dikategorikan menjadi tiga kelompok: (1) Task dengan 40-50 titik lokasi hanya akan diberikan kepada klien yang memiliki Graphics Processing Unit (GPU), (2) Task dengan 30-40 titik lokasi akan diberikan kepada klien dengan spesifikasi minimum x86_64, dan (3) Task dengan 20-30 titik lokasi dapat diberikan kepada semua klien. Setiap task akan didistribusikan sebanyak tiga kali ke klien yang berbeda. Hasil dari task akan diterima dan diperiksa oleh validator. Sebuah hasil hanya dianggap valid bila setidaknya dua task yang sama memberikan hasil yang masih berada dalam parameter validator. Hasil yang valid akan disimpan oleh assimilator kedalam storage. Bila sebuah task belum menghasilkan setidaknya dua buah hasil yang valid dan task tersebut sedang hanya dikerjakan oleh kurang dari tiga klien, maka scheduler akan memberikan salinan task tersebut ke klien yang lain untuk dikerjakan. Setiap task memiliki tenggang waktu pengerjaan. Bila task belum selesai dikerjakan oleh klien pada jangka waktu tersebut maka task di klien itu akan dinyatakan tidak valid dan salinan task yang sama akan didistribusikan scheduler ke klien lain. Kapasitas aplikasi dan data input akan dibatasi menjadi maksimal 20M, dan dataoutput dibatasi menjadi maksimal 1M agar tidak memberatkan klien. File aplikasi dan data input yang diunduh klien akan dihapus oleh agent klien ketika task telah selesai (atau dibatalkan). Agent klien menggunakan agent yang telah disediakan oleh BOINC. Klien hanya perlu menginstall agent tersebut dan mengarahkan ke situs proyek tempat aplikasi dijalankan. Contoh implementasi ini diujicoba untuk melihat perbedaan performa antara aplikasi TSP yang dijalankan secara sequentialdengan yang dijalankan secara paralel.Percobaan menggunakan algoritma TSP greedy dengan jumlah kota = 13. Setiap kota saling terhubung sehingga membentuk full mesh dengan jarak antar kota> 0. TSP hanya akan mencari jarak terpendek untuk awalan satu kota saja.Ujicoba dilakukan sebanyak 10 kali menggunakan MPI pada duanode. Pada percobaan paraleljumlah kota dibagi dua. Setiap bagian dikerjakan oleh satu nodesehingga sebuah node akan mengerjakan enam kota, dan lainnya mengerjakan tujuh kota. Hasil percobaan dapat dilihat pada tabel 1.
Tabel 1. Hasil ujicoba algoritma TSP berdasarkan waktu lamanya proses (detik) No. 1 2 3 4 5 6 7 8 9 10 Mean
Sequential 45.619193 45.536608 45.542211 45.533113 45.648466 45.918738 46.080411 45.504877 45.49829 45.358375 45.6240282
Paralel 0.000087 0.000052 0.000061 0.000079 0.000064 0.000051 0.000068 0.000062 0.000062 0.000061 0.0000647
Tabel diatas menunjukan rata-rata (mean)proses paralel jauh lebih cepat dibandingkan proses sequential. Hal ini dapat terjadi karena kompleksitas algorima greedy yang mencapai . Dengan membagi menjadi dan , terjadi perbedaan jumlah proses sebesar dan .Walaupun demikian, percobaan ini tidak memperhitungkan faktor waktu transaksidata antar node. Semakin kecil nilai yang dikirim ke masing-masingnodeakan membuatfrekuensi transaksi semakin besar. Sehingga walaupun waktu proses TSP di setiap node kecil, waktu transaksi antar node akan menjadi besar yang pada akhirnya akan memperlama penyelesaian TSP secara keseluruhan. Contoh implementasi penelitian 2: simulasi pengaruh struktur bangunan terhadap penurunan tanah di JakartaContoh penelitian ini mengambil situasi dimana peneliti ingin mendapatkan hasil simulasi pengaruh pembangunan terhadap kondisi penurunann tanah di Jakarta. Peneliti mempunyai parameter dan variabel untuk struktur bangunan dan pengaruhnya terhadap penurunan tanah. Peneliti menentukan bahwa struktur bangunan mempunyai 20 variabel dengan parameter yang merupakan deret hitung 0 sampai 10.000. Setiap variabel saling berhubungan dan variasi tersebut mempunyai pengaruh yang berbeda atas penurunan tanah. Peneliti juga menentukan bahwa penurunan tanah mempunyai 10 variabel dengan parameter deret hitung 0 sampai 1.000. Setiap variabel penurunan tanah juga saling berhubungan. Penelitian ini menggunakan dua aplikasi, yaitu aplikasi yang menghitung pengaruh perubahan parameter setiap variabel terhadap seluruh variabel penurunan tanah, dan aplikasi
Penggunaan Volunteer Computing… (Y. E. Soelistio, P. Yugopuspito)
5
yang menghitung pengaruh masing-masing variabel penurunan tanah terhadap variabel penurunan tanah yang lain, lihat gambar 3. Aplikasi pertama akan dibuat secara native untuk sistim operasi Microsoft Windows x86_64, Apple x86_64, dan Linux x86_64. Aplikasi ini akan di porting dengan menggunakan wrapper untuk sistim operasi Microsoft Windows x86, Apple x86, dan Linux x86. Sedangkan aplikasi kedua akan dibuat secara native untuk Microsoft Windows x86_64, Apple x86_64, Linux x86_64,Microsoft Windows x86, Apple x86, dan Linux x86.Paramater akan menjadidata input yang dibagi menjadi empat kelas: 1. Untuk klien dengan GPU dan basis x86_64 akan diberikan data input sebesar 8.00010.000. 2. Untuk klien dengan basis x86_64 akan diberikan data input sebesar 4.000-8.000. 3. Untuk klien dengan GPU dan basis x86 akan diberikan data input sebesar 1.0004.000. 4. Untuk klien lainnya akan diberikan data inputi sebanyak 0-1.000. Scheduler akan mendistribusikan aplikasi dan data input berdasarkan platform. Tabel 2. Pembagian task pada penelitian simulasi pengaruh struktur bangunan terhadap penurunan tanah di Jakarta. Platform Win x86_64 (GPU), Apple x86_64 (GPU), Linux x86_64 (GPU)
Aplikasi Bangunan dan tanah
Data input 8.000-10.000
Tanah
0-1.000
Win x86 (GPU), Apple x86 (GPU), Linux x86 (GPU)
Bangunan dan tanah Tanah
1.000-4.000
Win x86_64, Apple x86_64, Linux x86_64
Bangunan dan tanah Tanah
4.000-8.000
Win x86, Apple x86, Linux x86
Tanah
0-1.000
0-1.000
0-1.000
Task yang sudah selesai akan menghasilkan hasil berupa list variabel dan parameter, serta pengaruhnya terhadap variabel dan parameter yang lain. File aplikasi dan data input maksimum yang dikirim ke klien adalah 3M, dan file hasil sebesar maksimum 2M. Hasil yang dikirim kembali ke middleware akan melalui validator. Validator akan menyatakan sebuah task sukses bila task tersebut mempunyai dua buah hasil yang
6
masih berada dalam batasan validator dan dapat diselesaikan dalam jangka waktu yang ditentukan. Setelah sebuah hasil dinyatakan valid, hasil tersebut akan melalui assimilator untuk disimpan ke dalam storage. Bila belum valid, maka scheduler akan mendistribusikan salinan task yang sama ke klien lain. Implementasiagent klien juga menggunakan agent BOINC yang diinstall dan diarahkan ke situs proyek tempat aplikasi dijalankan. Contoh implementasi ini juga diujicoba menggunakan MPI yang berjalan diatas empat node. Percobaan dilakukan dengan melakukan perkalian matriks A dan B dengan dimensi .Setiap elemen matriks A berbeda dengan elemen matriks B, dan masing-masing elemen akan disimulasikan dengan merubah nilai elemen dari 0 sampai 9. Dengan demikian matriks A dan B akan dikalikan sebanyak kali. Percobaan paralel dilakukan dengan mengirim perkalian baris A dan kolom B ke node yang berbeda secara bergantian dan FIFO.Percobaan dilakukan sebanyak 10 kali dan waktu lamanya proses akan disimpan. Berikut adalah hasil percobaan. Tabel 3. Hasil ujicoba perkalian matriks dengan perubahan value sebanyak 10 kali. Percobaan 1 2 3 4 5 6 7 8 9 10 Mean
Sequential 66.28 66.65 64.5 64.45 64.51 64.26 66.04 66.2 66.84 66.38 65.611
Paralel 42.95 43.07 42.77 42.71 42.85 42.92 46.29 50.11 42.86 42.85 43.938
Hasil percobaan memperlihatkan proses paralel lebih cepat 33% daripada proses sequential. Percobaan ini tidak memperhitungkan besaran kapasitas data input yang dikirim ke node. Kapasitasakan berpengaruh pada lamanya waktu transaksi data antar node. Semakin besar data yang dikirim ke node maka semakin lama waktu transaksi. Walaupun demikian data yang terlalu kecil juga akan meningkatkan frekuensi transaksi sehingga total waktu untuk menyelesaikan simulasi juga dapat semakin lama.
Jurnal Ilmiah Ilmu Komputer, Vol. 9 No. 2Maret 2013: XX-XX
Makalah ini bukanlah versi final. Versi final makalah ini telah diterima dan diterbitkan pada Jurnal Teknik Informatika Universitas Pelita Harapan. Perbedaan isi dapat terjadi antara versi ini dengan versi final. Semua referensi harus merujuk pada versi final.
Start
End
Data habis diroses ?
Yes
No
Data bangunan + tanah (8,00010,000) dan tanah (0-1,000)
Data bangunan + tanah (1,0004,000) dan tanah (0-1,000)
Data bangunan + tanah (4,0008,000) dan tanah (0-1,000)
Data tanah (01,000)
Scheduler
Aplikasi GPU + x86_64
Klien GPU + x86_64
Aplikasi GPU + x86
Aplikasi x86_64
Aplikasi x86
Klien GPU + x86
Klien x86_64
Klien x86
No
Selesai sebelum due? Yes
Hasil GPU + x86_64
Hasil GPU + x86
No
Hasil x86_64
Hasil x86
Validator
Valid?
Yes
Assimilator Assimilator
Storage
Gambar 3. Skema alur aplikasi simulasi pengaruh struktur bangunan terhadap penurunan tanah di Jakarta.
Penggunaan Volunteer Computing… (Y. E. Soelistio, P. Yugopuspito)
7
4. HASIL Perguruan tinggi bisa mendapatkan berbagai keuntungan ketika menggunakan skema volunteer computing dalam penelitian. Keuntungan pertama, perguruan tinggi tersebut dapat memperoleh computational power yang lebih besar dengan dana yang tidak terlalu besar. Hasil dua ujicoba diatas memperlihatkan bahwa waktu proses dapat dipersingkat dengan penambahan resource node yang digunakan secara paralel.Tambahan resource tersebut dapat diperoleh baik dari internal perguruan tinggi (desktop grid), atau dari masyarakat umum. Keuntungan kedua, volunteer computing dapat meningkatkan kolaborasi dalam sebuah penelitan. Dengan membuka kesempatan kepada siapa saja untuk terlibat, volunteer computing dapat menumbuhkan keingintahuan murid dan pengajar lain untuk turut terlibat di dalam penelitian yang sedang dilakukan. Ketiga, perguruan tinggi dapat menggunakan volunteer computing sebagai salah satu fasilitas akademik dimana seluruh anggota perguruan tinggi dapat menggunakannya. Dengan demikian dapat meningkatkan mutu dan jumlah penelitian di perguruan tinggi. Untuk mendapatkan hasil yang maksimal dari volunteer computing dibutuhkan beberapa hal. Volunteer computing bersandar pada sifat sukarela sehingga keterbukaan dan komunikasi sangat dibutuhkan. Menurut Oded Nov et al. [5], klien dapat lebih berkontribusi lebih terhadap penelitian bila mereka mempunyai sarana berkomunikasi dan bersosialisasi mengenai penelitian yang sedang berlangsung. Selain itu, peneliti juga harus memberikan informasi yang
8
jelas dan terbuka mengenai penelitian yang dilakukan dan manfaatnya.
5. DAFTAR PUSTAKA [1] D.P. Anderson and G. Fedak, The Computational and Storage Potential of Volunteer Computing, Space Sciences Laboratory, U.C. Berkeley, 2006. [2] L.F.G. Sarmenta, Volunteer Computing, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 2001. [3] D.P. Anderson and K. Reed, Celebrating Diversity in Volunteer Computing, System Science 2009, Proceeding in HICSS ’09 42nd Hawaii, pages 1-8, 2009. [4] D.P. Anderson, E. Korpela, R. Walton, HighPerformance Task Distribution for Volunteer Computing, Space Science Laboratory, University of California, Berkeley, 2005. [5] O. Nov, D. Anderson, O. Arazy, Volunteer Computing: A Model of the Factors Determining Contribution to Communitybased Scientific Research, Polytechnic Institute of New York University, New York, NY, USA, 2010. Websites: [a] BOINC, http://boinc.berkeley.edu/ diakses 15 Agustus 2012 [b] Bank Data Jakarta, http://www.jakarta.go.id/web/bankdata diakses 15 Agustus 2012
Jurnal Ilmiah Ilmu Komputer, Vol. 9 No. 2Maret 2013: XX-XX