BAB I PENDAHULUAN I.1 Latar Belakang Proses komputasi yang dapat dilakukan oleh komputer telah berkembang dengan pesat. Pada awalnya proses komputasi hanya dapat dilakukan secara sekuensial saja. Sebuah prosesor hanya dapat melakukan sebuah proses saja dan proses yang lain harus menunggu untuk selanjutnya dapat dieksekusi oleh prosesor. Hal tersebut tentu membutuhkan waktu yang lama bagi prosesor untuk mengeksekusi sebuah proses atau melakukan proses komputasi. Akan tetapi seiring perkembangan teknologi mikroprosesor, proses komputasi kini dapat dilakukan secara paralel dengan menggunakan banyak prosesor untuk melakukan sebuah proses komputasi. Sebuah komputer dengan ratusan prosesor (Massively Parallel Processor) memiliki kemampuan sangat tinggi dalam melakukan proses komputasi. Akan tetapi membutuhkan biaya yang sangat besar. Solusi lain untuk membuat sebuah sistem komputasi yang cepat dan murah adalah dengan membuat sebuah komputer cluster. Komputer Cluster adalah sekumpulan komputer stand alone yang terhubung satu sama lain di dalam sebuah jaringan komputer yang digunakan untuk melakukan proses komputasi tertentu secara paralel. Cluster yang dibangun adalah cluster yang didedikasikan secara khusus untuk komputasi performa tinggi atau High Performance Computing. Untuk 1 2 membangun cluster tersebut dibutuhkan paling sedikit dua komputer yang terhubung ke sebuah jaringan privat. Sistem operasi yang dipilih untuk membuat cluster adalah sistem operasi Linux. Linux dipilih karena dianggap sebagai sistem operasi yang mudah dikonfigurasi untuk memenuhi infrastruktur sebuah cluster dan sifatnya yang open source. Cluster Linux tersebut harus memiliki mekanisme parallel processing untuk menjalankan aplikasi-aplikasi yang dapat dijalankan secara paralel. Mekanisme parallel processing yang digunakan adalah MPI (Message Passing Interface). MPI adalah sebuah antar muka pemrograman yang digunakan untuk mendistribusikan proses ke simpul-simpul komputasi yang lain di dalam sebuah cluster. Dengan berkembangnya komputasi secara paralel maka banyak aplikasiaplikasi yang dikembangkan untuk dapat melakukan pemrosesan secara paralel. Diantara aplikasi tersebut adalah OCTAVE. OCTAVE merupakan sebuah perangkat lunak open source yang mirip dengan MATLAB. OCTAVE dapat digunakan untuk menyelesaikan permasalahan matematika baik linear maupun non linear secara numeris. OCTAVE juga dapat melakukan proses komputasi secara paralel yaitu dengan menambahkan modul MPI Toolbox (MPITB). MPITB atau MPI Toolbox adalah toolbox yang digunakan oleh OCTAVE untuk mendistribusikan proses komputasi ke simpul-simpul komputasi yang lain dengan memanfaatkan MPI (Message Passing Interface). Dengan kemampuan OCTAVE MPITB tersebut dapat dilakukan proses komputasi yang besar yang mungkin sangat berat untuk dilakukan oleh sebuah komputer saja. 3 Dengan adanya penelitian tentang parallel processing dan komputer cluster ini, diharapkan dapat memberikan solusi terhadap permasalahanpermasalahan komputasi yang ada pada saat ini. Untuk itu, berdasarkan uraian permasalahan diatas maka penulis mengambil judul “Perancangan Cluster Linux Untuk Komputasi Paralel Octave”dalam penyusunan skripsi ini. I.2 Ruang Lingkup Permasalah I.2.1 Identifikasi Masalah Berdasarkan uraian di atas dapat diidentifikasi beberapa masalah sebagai berikut : 1. Proses komputasi hanya dapat dilakukan secara sekuensial saja sehingga sebuah prosesor hanya dapat melakukan sebuah proses saja dan proses yang lain harus menunggu untuk selanjutnya dapat dieksekusi oleh prosesor. 2. Membutuhkan waktu yang lama bagi prosesor untuk mengeksekusi sebuah proses atau melakukan proses komputasi. 3. Proses komputasi menggunakan kini banyak dapat prosesor dilakukan untuk secara melakukan paralel sebuah dengan proses komputasi, akan tetapi membutuhkan biaya yang sangat besar. Solusi lain untuk membuat sebuah sistem komputasi yang cepat dan murah adalah dengan membuat sebuah komputer cluster. 4 I.2.2 Rumusan Masalah Berdasarkan latar belakang masalah yang telah dipaparkan sebelumnya, maka dihasilkan rumusan masalah sebagai berikut: 1. Bagaimana membuat sebuah komputer cluster Linux yang dapat melakukan parallel processing. 2. Bagaimana melakukan pemrograman parallel prosessing dengan menggunakan Octave-MPITB. 3. Bagaimana melakukan proses instalasi dan konfigurasi jaringan private cluster. I.2.3 Batasan Masalah Agar penelitian yang dilakukan lebih terarah dan tidak menyimpang, maka perlu dibuat batasan masalah yaitu : 1. Komputer cluster dibuat menggunakan sistem operasi Linux distro Fedora Core 16. 2. Proses komputasi yang dijalankan secara paralel adalah proses komputasi yang dilakukan dengan OCTAVE yang ditambah modul MPITB. 3. Hanya menguji program perkalian matriks pada apikasi OCTAVE sebagai proses komputasi. 5 I.3 Tujuan dan Manfaat Adapun tujuan dari penelitian ini adalah : 1. Sebagai kajian tentang pemanfaatan teknologi komputer cluster untuk melakukan parallel processing. 2. Untuk penerapan aplikasi OCTAVE sebagai program untuk paralesisasi proses komputasi bagi merka yang berkecimpung di bidang teknik dan matematika. 3. Penelitian ini juga dimaksudkan sebagai penerapan disiplin ilmu yang telah didapatkan selama kuliah untuk diterapkan dalam permasalahan nyata. Adapun maanfaat dari penelitian ini adalah : 1. Sebagai solusi untuk membuat sebuah sistem komputasi yang cepat dan murah. 2. Memberikan kemudahan kepada pengguna khususnya bagi pengguna yang bergerak di bidang teknik dan matematika dalam menyelesaikan suatu permasalahan matematika baik linear maupn non linear. I.4 Metodelogi Penelitian Metode merupakan suatu cara atau teknik yang sistematik untuk mengerjakan suatu kasus. Untuk itu penulis menggunakan beberapa cara untuk memperolehnya, diantaranya : 6 1. Prosedur Perancangan Langkah-langkah tata cara yang dilakukan dalam membuat perancangan cluster linux untuk komputasi paralel octave adalah seperti yang ditunjukkan dalam Gambar 1 Target : Perancangan Cluster Linux Untuk Komputasi Paralel Octave Analisis Kebutuhan : Cluster yang dibangun dalam adalah cluster yang didedikasikan untuk komputasi paralel. Spesifikasi : Menggunakan sistem operasi linux dan aplikasi Octave MPITB Desain dan Implementasi : Sistem cluster yang akan digunakan sebagai infrastruktur adalah paralel processing dengan menggunakan 2 unit laptop sebagai compute node dan 1 unit laptop sebagai head node, masingmasing node menngunakan sistem operasi linux Gagal Verifikasi Berhasil Validasi : Pengujian Perancangan secara menyeluruh Finalisasi : Hasil akhir berupa perancangan cluster linux untuk komputasi paralel dengan menggunakan aplikasi Octave yang bermanfaat untuk user Gambar I Prosedur Perancangan 7 2. Analisis Kebutuhan Cluster yang dibangun dalam penelitian ini adalah cluster yang didedikasikan untuk komputasi paralel. Cluster tersebut dibangun secara homogen yaitu dengan menyeragamkan sistem operasi dan menggunakan perangkat keras yang tidak jauh berbeda pada masing-masing komputer. Untuk membangun sebuah cluster yang didedikasikan untuk komputasi paralel diperlukan beberapa persyaratan yang ditunjukkan oleh poin-poin sebagai berikut : 1. Cluster harus memiliki kemampuan mendistribusikan proses komputasi dari mesin head node ke mesin-mesin komputasi yang lain. 2. Cluster harus memiliki sistem pengaturan file-file data di setiap node yang terpusat sehingga memudahkan dalam administrasi sistem. 3. Cluster harus memiliki file system global yang dapat diakses oleh semua node untuk keperluan pengaksesan berkas-berkas. 4. Head node harus dapat berkomunikasi dengan mesin-mesin node tanpa harus melakukan proses otentikasi. 5. Cluster harus memiliki sebuah sistem untuk memonitor proses-proses dan beban komputasi baik di masing-masing mesin komputasi maupun beban komputasi dalam satu cluster atau seluruh node. Dari persyaratan-persyaratan yang ditunjukkan oleh poin-poin di atas, dapat diambil beberapa solusi sebagai berikut : 1. Pendistribusian proses komputasi menggunakan LAM/MPI. LAM/MPI adalah aplikasi yang mengimplementasikan MPI. 8 2. Sistem pengaturan user dan file-file konfigurasi menggunakan Network Information System (NIS). NIS adalah sistem basis data yang terdistribusi yang menggantikan data file-file konfigurasi di masing-masing node sehingga pengaturan node-node dapat dilakukan secara terpusat. 3. File system global menggunakan Network File System (NFS). NFS adalah file system yang dieksport oleh sebuah server untuk diakses oleh client-client yang diijinkan oleh server. 4. Proses komunikasi antara head node dengan node dilakukan dengan Secure Shell (SSH). 5. Sistem pemonitoran proses yang sedang dikerjakan oleh masing-masing node menggunakan ganlia dan dstat. Ganglia adalah aplikasi pemonitoran proses dan beban komputasi yang dikerjakan oleh cluster Tabel dibawah ini menunjukkan ringkasan persyaratan yang harus dipenuhi untuk membangun sebuah cluster dengan solusi yang dapat diambil untuk memenuhi persyaratan tersebut. Tabel II.1 : Persyaratan dan Solusi Dalam Membangun Cluster Persyaratan Solusi Kemampuan dalam mendistribusikan Menggunakan LAM/MPI proses komputasi Sistem pengaturan file-file konfigurasi Menggunakan NIS sistem secara terpusat File system yang dapat diakses oleh Menggunakan NFS semua node Sistem komunikasi antar node yang Menggunakan SSH saling percaya Sistem pemantauan proses dijalankan oleh semua node yang Menggunakan GANGLIA 9 Sistem operasi yang digunakan adalah sistem operasi Linux karena sistem operasi tersebut dianggap mudah untuk mengimplementasikan solusi-solusi yang ditunjukkan oleh poin-poin diatas. Linux juga merupakan sistem operasi yang bersifat open source sehingga dapat digunakan secara bebas dan gratis. Distro Linux yang dipilih adalah Fedora Core 16 karena distro ini banyak yang menggunakan, sehingga banyak referensi yang dapat digunakan sebagai acuan. 3. Spesifikasi dan Desain Secara umum perancangan cluster linux untuk komputasi paralel octave mempunyai spesifikasi sebagai berikut: a. Infrastruktur Cluster Linux memiliki jaringan sendiri yang terpisah dengan jaringan luar. Hal tersebut dimaksudkan agar compute node tidak dapat diakses dari luar jaringan sehingga kinerja cluster dalam melakukan parallel processing dapat maksimal. Pengguna hanya dapat mengakses cluster melalui head node saja. Komputer-komputer yang digunakan sebagai compute node tidak perlu diakses oleh pengguna secara langsung sehingga pengguna hanya memberikan tugas komputasi tanpa perlu melakukan konfigurasi sistem ke mesin-mesin compute node. b. Perancangan ini mempunyai integrasi antar node, dimana Integrasi di dalam cluster tidak hanya dilakukan secara fisik saja yaitu dengan menghubungkan setiap node ke dalam sebuah jaringan interkoneksi. Akan tetapi integrasi juga dilakukan diantara sistem pada masing-masing node. 10 Dengan spesifikasi diatas maka tools yang dibutuhkan untuk membangun dan menguji perancangan ini adalah: a. Tools yang digunakan berupa: - Linux Fedora Core 16 Operation System - Octave MPITB - Network File System (NFS), Network Information System (NIS), Secure Shell (SSH), dan Local-Area-Network Multi- Computer/Message Passing Interface (LAM/MPI). b. Alat uji yang digunakan untuk menguji adalah: - 1 unit komputer laptop sebagai head node dengan spesifikasi 1. Hard disk dengan kapasitas 80 Giga Byte. 2. RAM dengan kapasitas 2 Giga Byte. 3. Prosesor Intel Pentium Dual Core - 2 unit komputer laptop dengan spesifikasi 1. Hard disk dengan kapasitas 80 Giga Byte. 2. RAM dengan kapasitas 1 Giga Byte.. 3. Prosesor Intel Atom Pentium. 4. Implementasi dan Verifikasi Setelah spesifikasi dan desain, selanjutnya dilakukan pembuatan aplikasi untuk mengetahui apakah aplikasi sudah dapat berjalan dengan baik atau tidak sehingga perlu dilakukan verifikasi. Dengan demikian bila ada kesalahan dapat diperbaiki terlebih dahulu. 11 5. Validasi Selanjutnya dilakukan pengujian komputasi paralel octave, dalam hal ini akan dibahas mengenai pemanfaatan cluster untuk melakukan komputasi paralel dengan OCTAVE MPITB. Program yang digunakan sebagai uji coba adalah program perkalian matriks yang dilakukan secara paralel. Program tersebut ditulis dengan MPI yang diimplementasikan oleh OCTAVE MPITB. Program ini memanfaatkan fungsi-fungsi dasar MPI yaitu MPI_Send dan MPI_Recv untuk mengirimkan data dan menerima data antar mesin-mesin komputasi. Pengujian akan dilakukan secara langsung pada 1 unit komputer sebagai head node dan 2 komputer lagi sebagai compute node untuk memastikan semua fitur berjalan dengan baik. I.5 Sistematika Penulisan Laporan tugas akhir ini akan disusun secara sistematis dan dibagi menjadi lima bab dengan rincian sebagai berikut: BAB I PENDAHULUAN Bab ini berisi tentang latar belakang masalah, ruang lingkup permasalahan, maksud dan tujuan, metodologi peneltianan, dan sistematika penulisan. BAB II TINJAUAN PUSTAKA Bab ini berisi tentang dasar teori yang digunakan dalam mengembangkan dan menganalisa sistem. BAB III ANALISIS DAN PERANCANGAN SISTEM 12 Bab ini berisi perancangan sistem yang akan dikerjakan. BAB IV HASIL DAN UJI COBA Bab ini berisi pengujian dan pembahasan sistem. BAB V PENUTUP Bab ini berisi kesimpulan hasil tugas akhir dan saran-saran yang diperlukan untuk proses pengembangan selanjutnya.