Sabtu, 07 Februari 2009

Clustering dan Internet Computing

Salah satu solusi dari masalah kurangnya daya komputasi adalah dengan menjalankan aplikasi pada sejumlah komputer individual yang terhubung ke jaringan. Cara ini dalam terminologi teknis dikenal sebagai clustering. Teknik yang pertama kali dikembangkan pada awal era 1980-an ini, sekarang telah diaplikasikan pada berbagai pusat superkomputer, laboratorium riset, dan industri. Superkomputer tercepat di dunia saat ini terdiri dari sekumpulan mikroprosesor, sebagai contoh, sistem ASCI White di Lawrence Livermore National Laboratory, California, tersusun atas 8000 prosesor. Banyak diantara laboratorium riset yang menjalankan PC sederhana yang membentuk cluster untuk melakukan perhitungan dan analisis data. Teknik ini hanya memerlukan ongkos sebesar kurang dari 1 USD per megaflop tiap detiknya dengan cluster komputer jenis Pentium III, sebuah ongkos yang sangat murah, khususnya apabila dibandingkan dengan superkomputer yang harganya bisa mencapai jutaan dolar itu. Kemajuan ini juga tidak lepas dari dikembangkannya algoritma khusus yang dapat mengeksploitasi penggunaan ribuan prosesor secara efektif.

Walaupun clustering dapat menyediakan peningkatan daya komputasi secara signifikan, sebuah cluster membutuhkan fasilitas khusus dengan dibangun diatas sebuah lokasi tunggal. Ini memunculkan persoalan seberapa besar ruang yang dapat disediakan untuk menampung sekian banyak komputer yang bekerja secara bersamaan itu. Hal ini memunculkan persoalan baru dimana dibutuhkan investasi ekstra untuk membangun gedung-gedung baru, khusus sebagai lokasi cluster.

Kemajuan teknologi komunikasi menawarkan solusi berupa pendekatan desentralisasi untuk mengatasi kebutuhan akan daya komputasi yang lebih tinggi dengan ongkos yang rasional. Terdapat lebih dari 400 juta PC di seluruh dunia, dengan banyak diantaranya memiliki daya komputasi setara dengan superkomputer pada era awal 1980-an. Sebagian besar diantaranya memiliki banyak waktu idle (menganggur) saat digunakan. Setiap institusi besar memiliki ratusan hingga ribuan sistem semacam ini. Sebuah pendekatan yang disebut internet computing merupakan jawaban untuk memanfaatkan workstation dan PC untuk menciptakan sistem komputasi terdistribusi (distributed computing systems) berjangkauan global dengan kapabilitas setara dengan superkomputer.

Kesempatan yang ditawarkan oleh komputer yang berada dalam kondisi idle telah diketahui sejak lama. Pada tahun 1985, Miron Livny menunjukkan bahwa sebagian besar workstation senantiasa berada dalam kondisi idle. Ia mulai merancang sebuah sistem untuk memanfaatkan kondisi itu untuk sesuatu yang lebih bermanfaat. Dengan memanfaatkan kemampuan multitasking dari sistem operasi Unix dan koneksi ke jaringan internet, Livny mengembangkan aplikasi yang disebut Condor yang kini dimanfaatkan secara luas oleh kalangan akademis untuk melakukan analisis data dan pemecahan problem matematis.

Walapun Condor terhitung efektif untuk skala kecil, penggunaan internet computing secara masal harus menunggu lebih lama bagi tersedianya PC yang lebih cepat dan meluasnya penggunaan internet. Pada 1997, Scott Kurowski membangun jaringan yang disebut Entropia dengan fungsi yang serupa: memanfaatkan kodisi idle pada komputer yang terhubung dalam jaringan untuk kepentingan aplikasi saintifik. Hanya dalam waktu dua tahun, jaringan ini berkembang, meliputi lebih dari 30.000 komputer dengan akumulasi kecepatan diatas satu teraflop per detik. Salah satu pencapaian dari jaringan ini adalah ditemukannya bilangan prima yang terbesar.

Loncatan berikutnya dari internet computing adalah diluncurkannya proyek SETI@home oleh David Anderson. Proyek ini bertujuan untuk melakukan analisis data yang diterima oleh teleskop radio Arecibo untuk mencari sinyal-sinyal yang mungkin dikirimkan oleh mahluk cerdas berperadaban dari luar Bumi. Gabungan antara rasa ingin tahu publik dan kemajuan teknologi menyebabkan proyek ini terus berkembang. Berjalan diatas setengah juta PC, proyek SETI@home kini menjelma menjadi komputer tercepat di dunia yang dibangun untuk keperluan khusus.

Apa artinya fenomena ini bagi ilmu pengetahuan dan para ilmuwan? Secara simplistik dapat dikatakan bahwa para ilmuwan kini memperloleh akses bagi sumber daya komputasi yang luar biasa. Apa yang dibutuhkan hanyalah memasukkan problem komputasi dalam sebuah bentuk yang cocok untuk dijalankan pada komputer deskop, dan kemudian melakukan pendekatan pada publik tentang seberapa pentingnya solusi untuk sebuah masalah. Sekali publik dapat diyakinkan, maka selanjutnya bantuan berupa sumber daya komputasi akan segera mengalir dengan sendirinya.

Grid Computing

Bayangkan seandainya internet computing tidak hanya bermanfaat untuk sekedar melakukan perhitungan-perhitungan, melainkan untuk sesuatu yang lebih kompleks dari itu. Suatu kemungkinan untuk berbagi sumber daya (resource) untuk kepentingan bersama. Berhubung pengembangan sains masa kini dilakukan secara kolaboratif dan multi disiplin, maka kegiatan ini tidak lagi dibatasi oleh suatu institusi maupun negara tertentu. Internet melalui web dan email telah menawarkan mekanisme dasar yang memungkinkan sebuah kelompok ilmuwan untuk bekerja secara bersamaan tanpa menghiraukan batasan geografis. Tapi bagaimana jadinya apabila mereka dapat membangun hubungan (link) antar data, komputer, perangkat sensor, dan sumber daya lain yang mereka miliki untuk membentuk sebuah laboratorium virtual? Grid computing merupakan jawabannya. Grid computing memungkinkan semua itu terwujud dengan menyediakan protokol, servis dan kit pengembangan perangkat lunak untuk keperluan berbagi sumber daya secara fleksibel dan terkendali dalam skala besar.

Grid computing sebenarnya merupakan sebuah aplikasi pengembangan dari jaringan komputer (network). Hanya saja, tidak seperti jaringan komputer konvensional yang berfokus pada komunikasi antar pirati (device), aplikasi pada Grid computing dirancang untuk memanfaatkan sumber daya pada terminal dalam jaringannya. Grid computing biasanya diterapkan untuk menjalankan sebuah fungsi yang terlalu kompleks atau terlalu intensif untuk dikerjakan oleh satu sistem tunggal. Dalam pengertian yang lebih teknis, Grid computing merupakan sebuah sistem komputasi terdistribusi, yang memungkinkan seluruh sumber daya (resource) dalam jaringan, seperti pemrosesan, bandwidth jaringan, dan kapasitas media penyimpan, membentuk sebuah sistem tunggal secara vitual. Seperti halnya pengguna internet yang mengakses berbagai situs web dan menggunakan berbagai protokol seakan-akan dalam sebuah sistem yang berdiri sendiri, maka pengguna aplikasi Grid computing seolah-olah akan menggunakan sebuah virtual komputer dengan kapasitas pemrosesan data yang sangat besar.

Konsep Grid computing pertama kali dieksplorasi pada tahun 1995 melalui eksperimen yang dikenal sebagai I-WAY, dimana jaringan berkecepatan tinggi digunakan untuk menghubungkan dalam waktu singkat, suber daya yang sifatnya high-end pada 17 situs di sepanjang Amerika bagian Utara. Selepas aktifitas ini, berkembang pula sejumlah proyek penelitian yang bertujuan untuk mengembangkan teknologi inti Grid computing untuk hal-hal yang lebih "produktif" bagi berbagai komunitas dan disiplin keilmuan. Tidak kurang dari badan bernama National Technology Grid bentukan US National Science Foundation (Lembaga Ilmu Pengetahuan AS), yang bekerjasama dengan Information Power Grid dari NASA (badan luar angkasa Amerika Serikat), bersama-sama membentuk sebuah infrastruktur Grid computing untuk melayani kegiatan para peneliti di NASA maupun berbagai universitas di Amerika Serikat.

Di Eropa dan Amerika Serikat, European Data Grid, Particle Physics Data Grid, dan proyek Grid Physics Network (GriPhyN), berencana untuk membangun kerjasama dalam pengembangan aplikasi Grid computing untuk kepentingan analisis data pada eksperimen-eksperimen fisika. Sementara itu, the Network for Earthquake Engineering Simulation Grid (NEESgrid) tengah berancang-ancang untuk menghubungkan para insinyur sipil dengan arsip data dan sistem simulasi komputer untuk mengembangkan bangunan dengan kekuatan yang lebih besar.

Seperti halnya aplikasi network lainnya, Grid computing haruslah bersandar pada satu set standar dan protokol tertentu. Kendati tidak ada standar formal yang telah ditetapkan untuk aplikasi Grid computing (saat ini sedang disiapkan oleh Grid Forum), telah ada semacam konsensus dalam teknologi intinya. Pada dasarnya, semua proyek Grid computing dibuat berdasarkan protokol dan servis yang disediakan oleh Globus Toolkit yang dikembangkan oleh Argonne National Laboratory bekerjasama dengan tim dari Information Sciences Institute, University of Southern California dan beberapa institusi lainnya. Infrastruktur yang memiliki arsitektur terbuka (open-architecture) dan bersifat open-source ini menyediakan banyak fungsi dasar yang dibutuhkan untuk membangun sebuah aplikasi yang memanfaatkan Grid computing.

Walaupun internet dan Grid computing adalah teknologi yang relatif baru, namun telah terbukti bermanfaat, dan masa depan teknologi ini kelihatannya cukup menjanjikan. Di masa depan, saat teknologi, sistem jaringan, dan model bisnis untuk keperluan ini telah berkembang, dimungkinkan bagi komunitas ilmuwan untuk membentuk semacam "Science Grids", yang menghubungkan sumber daya yang berbeda untuk mendukung komunikasi, akses data dan komputasi untuk kepentingan ilmu pengetahuan. Saat itu, penggunaan superkomputer untuk keperluan analisis data dengan kompleksitas tinggi bisa digantikan oleh sejumlah besar workstation yang tersebar di seluruh dunia yang bekerja secara bersamaan dalam Grid computing.

Tidak ada komentar: