BAB II TINJAUAN PUSTAKA
1.1 LINUX
Linux merupakan sebuah sistem operasi yang sangat mirip dengan sistem operasi UNIX, karena memang tujuan utama rancangan dari proyek Linux adalah UNIX compatible. Sejarah Linux dimulai pada tahun 1991, ketika mahasiswa Universitas Helsinki, Finlandia bernama Linus Benedict Torvalds menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU Intel yang cocok untuk PC. Pada awal perkembangannya, source code Linux disediakan secara bebas melalui internet. Hasilnya, pengembangan Linux merupakan kolaborasi antara para pengguna dari seluruh dunia, semuanya dilakukan secara eksklusif melalui internet. Bermula dari kernel awal hanya mengimplementasikan subset kecil dari komputer UNIX, kini komputer Linux telah tumbuh sehingga mampu memasukkan banyak fungsi UNIX. Saat ini menurut Linux Weekly News atau LWN telah tercatat sekitar 420 jenis distro Linux. Linux terdistribusi dibawah Lisensi Publik Umum GNU (GPL), dimana peraturannya disusun oleh Free Software Foundation. Linux bukanlah perangkat lunak public domain. Public Domain berarti bahwa pengarang telah memberikan copyright terhadap perangkat lunak mereka, tetapi copyright terhadap kode linux masih dipegang oleh pengarang kode-kode tersebut. Linux adalah perangkat lunak bebas, namun bebas dalam arti bahwa siapa saja dapat memakai, menduplikasi, atau memodifikasinya dengan cara apapun, dan memberikan duplikat mereka kepada siapapun tanpa larangan atau halangan. Implikasi utama peraturan lisensi Linux adalah bahwa siapa saja yang menggunakan Linux , atau membuat dan memodifikasi dari Linux, tidak boleh membuatnya menjadi hak milik sendiri. Jika sebuah software dirilis berdasarkan lisensi GPL, produk tersebut tidak boleh didistribusikan hanya sebagai produk
biner (Binary-only). Perangkat lunak yang dirilis atau akan dirilis harus menyediakan sumber kodenya bersamaan dengan distribusi binernya.
1.2 SISTEM KOMPUTER CLUSTER
Banyaknya sistem komputer yang dijumpai hingga saat ini seringkali membingungkan. Michael J. Flynn [1972] mengklasifikasikannya berdasarkan jumlah instruksi dan data yang secara simultan diproses oleh prosesor. Flynn Taxonomy seperti pada gambar 2.1 merupakan klasifikasi yang paling banyak digunakan khususnya dalam mengelompokkan arsitektur komputasi paralel (Stalings, 2003: 645-647).
Gambar 2.1 Taxonomi Flynn
Komputer cluster merupakan suatu sistem pemrosesan paralel atau pemrosesan terdistribusi yang terdiri dari sekumpulan stand-alone komputer ataupun komputer virtual yang bekerja bersama-sama seperti layaknya suatu single integrated computing resource.
Setiap node pada komputer cluster dapat berupa sistem computer single processor atau suatu multiprocessor [PC, workstation atau SMP] yang memiliki sistem memori, fasilitas input/output, dan bekerja dengan sistem operasi yang dimilikinya. Cluster secara umum dapat diartikan sebagai dua atau lebih komputer atau node yang dihubungkan menjadi suatu sistem terintegrasi. Komputer node dapat diletakkan didalam suatu kabinet tertentu atau terpisah secara fisik dan dihubungkan dengan suatu jaringan komputer lokal atau LAN, atau berupa node virtual yang dibangun pada sebuah VMWare Workstation. Suatu LAN-based komputer cluster akan dipandang sebagai suatu sistem tunggal baik oleh pemakai maupun oleh aplikasi komputer.
1.3 ARSITEKTUR CLUSTERING
Komputer cluster biasanya memiliki suatu arsitektur tertentu. Dimana arsitektur tersebut memungkinkan komunikasi antara komputer satu dengan komputer lainnya. Suatu
komputer
cluster
memiliki
berbagai
komponen
pendukung
(Changhun, 2002: 151-742) yaitu: 1. Dua atau lebih High Performance Computers seperti PC, Workstation, atau SMP. 2. Sistem Operasi komputer (Layered atau Micro-kernel based) 3. High Performance Networks/Switches (Misalnya Ethernet) 4. Network Interface Cards (NICs) 5. Fast Communication Protocols and Services 6. Cluster Middleware (Single System Image atau SSI dan System Availability Infrastructure) 7. Parallel Programming Environments and Tools (seperti compilers, PVM (Parallel Virtual Machine), and MPI (Message Passing Interface) 8. Program aplikasi untuk pengujian
Perangkat keras antarmuka jaringan berperan sebagai communication processor dan bertanggung jawab untuk mengirimkan dan menerima paket data antara node cluster melalui jaringan atau switch. Node pada komputer cluster dapat bekerja secara kolektif sebagai suatu sistem komputer yang terintegrasi atau bekerja sebagai suatu komputer individual. Cluster middleware bertanggung jawab untuk menyediakan suatu single system image yang dapat dimanfaatkan oleh seluruh node komputer cluster secara bersama. Sedangkan programming environments tools menyediakan kebutuhan dan memberikan kemudahan pada user dalam mengembangkan program aplikasi sekuensial atau paralel yang dibutuhkannya seperti message passing libraries, debuggers (Changhun, 2002: 151-742).
1.3.1 PERANGKAT KERAS
Karena aplikasi clustering akan dibangun pada VMWare Workstation, maka komponen-komponen perangkat utama yang membentuk server dan client berupa virtual. Spesifikasi perangkat utama akan dibahas lebih lanjut pada Bab 3. Dalam membuat suatu jaringan pastilah diperlukan komponen atau peralatan tambahan, dimana komponen tersebut difungsikan untuk menghubungkan komputer satu dengan yang lainnya. Komponen tersebut adalah switch atau hub. Untuk membantu peningkatan kecepatan data pada jaringan maka lebih dipilih menggunakan switch karena switch memiliki kelebihan dibandingkan hub yaitu switch dapat menyimpan alamat fisik dari network card yang terpasang pada masing-masing komputer.
1.3.2 PERANGKAT LUNAK
Komputer membutuhkan suatu program dan data yang memberikan instruksi kepada komputer
untuk melakukan apa yang diperintahakan dan bagaimana
melakukannya. Sistem operasi adalah komponen vital dalam suatu komputer. Sistem operasi adalah landasan dimana suatu aplikasi akan dieksekusi. Pada
clustering, sistem operasi pada setiap komputer ter-kelompok harus memiliki komponen cluster middleware. Cluster middleware digunakan oleh sistem operasi untuk berkomunikasi antar komputer satu dengan yang lainnya.
1.4 VMWARE
VMWare merupakan perangkat lunak untuk virtual machine (mesin virtual). Fungsinya adalah untuk menjalankan banyak sistem operasi dalam satu perangkat keras dan untuk menjalankan aplikasi yang ditujukan untuk sistem operasi lainnya. Fungsi lainnya adalah untuk mempelajari suatu sistem operasi baik ketika pada proses pembelajaran atau ketika proses pengembangan sistem operasi. Istilah Virtual Machine (VM) sendiri mulai dikenalkan oleh IBM ketika meluncurkan sistem operasi mainframe pada tahun 1965-an. Diperkenalkan untuk sistem S/370 dan S/390 dan disebut sebagai sistem operasi VM/ESA. Sehingga sering menimbulkan kebingungan antara penamaan produk atau penamaan mekanisme. Banyak orang yang menyebut, walau memiliki mekanisme virtual machine tetapi bila bukan dari sistem IBM tersebut, maka tidak disebut dengan Virtual Machine. Pada penjelasan ini, diambil kesimpulan bahwa istilah virtual machine adalah suatu jenis mekanisme virtualisasi suatu mesin di atas mesin lainnya. Jadi bukan jenis produk dari salah satu vendor dengan nama Virtual Machine. VMWare memungkinkan beberapa sistem operasi dijalankan pada satu mesin PC tunggal secara bersamaan. Hal ini dapat dilakukan tanpa melakukan partisi ulang dan boot ulang. Pada mesin virtual yang disediakan akan dijalankan sistem operasi sesuai dengan yang diinginkan. Dengan cara ini maka pengguna dapat melakukan boot suatu sistem operasi (misal Linux) sebagai host operating system (sistem operasi tuan rumah) dan lalu menjalankan sistem operasi lainnya misal MS Windows. Sistem operasi yang dijalankan di dalam sistem operasi host dikenal dengan guest operating system (sistem operasi tamu) Jenis VMWare yang akan dipakai dalam pembuatan server ini adalah VMWare Workstation. VMWare Workstation adalah perangkat lunak untuk
virtual machine yang compatible dengan komputer Intel x86. Perangkat lunak ini memungkinkan pemakai untuk membuat satu atau lebih virtual machine dan menjalankannya secara serempak. Masing-masing virtual machine dapat menjalankan guest operating system-nya sendiri seperti Linux, Windows, BSD, dan lain-lain.
1.5 OPENMOSIX
openMosix adalah Linux kernel extension untuk membentuk Single Sistem Image (SSI) clustering. Ekstensi pada kernel ini membuat sejumlah jaringan yang terdiri dari PC biasa menjadi semacam supercomputer bagi aplikasi Linux. Gagasan openMosix berawal dari proyek Mosix yang dikembangkan oleh Profesor Amnon Barak dari Hebrew University of Jerusalem diawali pada tahun 1977. Mosix menyediakan solusi clustering yang transparan di UNIX. Proyek ini didanai oleh DARPA dan ditahun 1980an dipakai oleh US Air Force untuk cluster pada komputer PDP11/45. Pada tahun 1997 Mosix berjalan pada BSD/OS 3.0. GNU/Linux yang dipilih sebagai platform pengembangan pada tahun 1999. Pada tahun 2001, proyek Mosix berkembang menjadi versi non-GPL yang sebelumnya GPL. Oleh karena itu, Mosix tidak lagi bisa dipakai secara bebas. Dr. Moshe Bar, pengajar di Tel Aviv University dan UN atomic Agency, salah seorang yang pernah ikut mengembangkan proyek Mosix, tidak setuju adanya perubahan lisensi tersebut, maka ia yang merupakan peneliti pada Italian National Institute for Physical of Matter, dengan perusahaannya (Qluster, Inc) mengawali proyek openMosix untuk menjamin adanya versi yang biasa dipakai secara bebas. openMosix saat ini tidak memuat kode non-GPL (semacam Mosix). Dengan cepat, openMosix meraih popularitas pada Sourceforge mulai 2001 dan awal 2002.
Gambar 2.2 Logo openMosix
Sejak itu, sebagian besar user Mosix beralih ke openMosix. Saat ini ada 14 orang yang ikut mengembangkan openMosix. Sebagai perbandingan, proyek Mosix hanya dikembangkan oleh 4 orang. Keuntungan utama dari openMosix adalah pembuatan cluster yang terdiri dari banyak node dengan PC yang murah dibandingkan membeli sebuah Symmetric Multi Processing (SMP) sungguhan. Jika openMosix diinstall pada beberapa komputer yang terkoneksi pada jaringan yang sama maka node-node (istilah untuk PC yang menjadi anggota cluster) dalam cluster tersebut akan tersambung satu sama lain dan mengadaptasikan beban kerja mereka. Proses yang berasal dari suatu node, bila node tersebut lebih baik dibandingkan node lainnya, bisa berpindah ke node lain. openMosix akan bekerja secara kontinyu dan berusaha mengoptimalkan alokasi sumber daya. Jika dilihat dari tingkat ekonomis, membuat komputer cluster dari komputer lama dan dijadikan sebagai alat untuk rendering animasi 3 dimensi misalnya, akan lebih menghemat biaya, jika dibandingkan kita membeli sebuah komputer khusus untuk rendering yang mana harganya terbilang sangat mahal dan belum tentu tersedia banyak dipasaran dikarenakan harganya yang mahal. Kecepatan komunikasi node ditentukan oleh kecepatan LAN, yang nantinya algoritma pada cluster openMosix akan memilih node mana yang lebih cepat untuk mengeksekusi proses terlebih dahulu. Pengguna Gigabit Ethernet atau teknologi jaringan berkecepatan tinggi akan memungkinkan efektifitas cluster openMosix. openMosix tidak bisa mempercepat proses semacam Mozilla, saja, selain hanya memindahkannya ke node yang mampu mengeksekusinya dengan lebih efisien. openMosix belum mendukung pemisahan sejumlah thread yang saling bekerja sama. openMosix bisa memindahkan kebanyakan proses Linux antar node, tanpa masalah. Jika suatu aplikasi melakukan pemisahan proses, masing-masing akan melakukan pekerjaannya sendiri, openMosix bisa melakukan migrasi proses ini ke node yang tepat pada cluster. Sebagai contoh, misalnya kita melakukan konversi 12 track audio digital dengan cluster, kita bisa memperoleh 12 proses encoding yang
berjalan
secara
bersamaan.
Kemudian,
cluster
openMosix
akan
memindahkan setiap proses ke node yang sesuai pada komputer cluster. Jika kita
mempunyai 12 node, maka pekerjaan encoding akan berjalan hampir 12 kali lebih cepat. Faktor terpenting dalam suatu cluster adalah adanya migrasi proses dari node satu ke node lain. User bisa mengawali pekerjaannya dengan menjalankan sejumlah proses pada satu node. Kemudian, sistem akan memindahkan proses ke node terbaik yang ada pada saat itu. Jika selama eksekusi proses ada sumber daya baru yang tersedia, maka algoritma sharing sumber daya akan memakainya dengan melakukan penugasan ulang (re-assign). Kemampuan untuk “assign” dan “re-assign” ini merupakan hal yang penting untuk kemudahan penggunaan dan memungkinkan lingkungan eksekusi time-sharing yang efisien. Pada openMosix, load balancing merupakan hal penting untuk kinerja pemrosesan parallel. Ide dasarnya adalah memindahkan proses dari node yang memiliki beban kerja tinggi ke node yang memiliki beban kerja rendah. Tujuannya agar waktu pengerjaan tugas lebih rendah dan menaikkan utilitas prosesor. Kekuatan algoritma load-Balancing adalah algoritma tersebut akan terus menerus mencoba untuk mengurangi perbedaan beban antara node. Jumlah prosesor pada tiap node merupakan faktor penting dalam algoritma loadbalancing. Bagian penting dari strategi load balancing adalah Migration Policy, yang menentukan kapan suatu migrasi terjadi dan proses mana yang di migrasikan. Proses migrasi pada load balancing terjadi pada dua bentuk, yaitu: 1. Remote Execution (juga disebut non-preemptive migration). Pada strategi ini, suatu proses baru (bisa secara otomatis) dieksekusi pada host remote. 2. Pre-emptive Migration: pada strategi ini proses akan dihentikan, dipindahkan ke node lain, dan diteruskan. PPM dapat memindahkan proses apa saja, kapan saja, ke node yang tersedia. Biasanya, perpindahan berdasarkan pada informasi yang disediakan oleh salah satu dari algoritma penggunaan bersama sumber daya, akan tetapi pengguna dapat mengesampingkan beberapa sistem pengambilan keputusan secara otomatis dan memindahkan proses mereka secara manual. Setiap proses mempunyai sebuah Unique Home-Node (UHN) dimana proses itu dibuat. Biasanya ini adalah node dimana pengguna log-in. Model tampilan
sistem tunggal dari OpenMosix adalah cluster CC (Cache Coherent), dimana setiap proses terlihat bekerja pada UHN masing-masing dan semua proses dari sesi pengguna membagi lingkungan kerja dari UHN. Proses yang berpindah ke node yang lain menggunakan sumber daya lokal selama memungkinkan, tetapi berinteraksi dengan lingkungan pengguna melalui UHN. Dalam mengeksekusi sebuah proses, transparansi lokasi dapat dicapai dengan melanjutkan pemanggilan system site-dependent ke deputi pada UHN. Pemanggilan sistem (system calls) adalah suatu bentuk sinkronisasi dari interaksi antara konteks dua proses. Semua system calls yang dieksekusi oleh proses tersebut diberhentikan oleh link layer situs remote. Jika system call independent terhadap situs maka sistem tersebut dieksekusi secara lokal oleh remote. Jika tidak, system call dilanjutkan ke deputi, yang mengeksekusi system call yang mewakili proses dalam UHN. Deputi mengirimkan kembali hasil dari situs remote, dan melanjutkan untuk mengeksekusi kode pengguna. PPM adalah bagian utama untuk algoritma manajemen sumber daya. Sepanjang syarat untuk sumber daya, seperti CPU, atau memori utama dibawah threshold, proses pengguna dibatasi oleh UHN. Saat syarat-syarat melebihi beberapa level threshold, kemudian beberapa proses boleh dipindahkan ke node yang lain untuk mengambil keuntungan dari sumber daya yang tersedia lainnya. Tujuan keseluruhan adalah untuk memaksimalkan performa dengan penggunaan yang efisien dari sumber daya jaringan. Granularitas dari distribusi kerja dalam OpenMosix adalah proses itu sendiri. Pengguna dapat menjalankan aplikasi paralel
dengan
memulai
proses
penggandaan
dalam
satu
node
dan
memperbolehkan sistem untuk menugaskan proses-proses ini pada node paling baik yang tersedia pada saat itu. Jika pada saat pengeksekusian dari proses, sumber daya yang baru tersedia, algoritma penggunaan sumber daya bersama dirancang untuk memanfaatkan sumber daya-sumber daya yang baru ini dengan memungkinkan penugasan kembali dari proses diantara node. Kemampuan untuk menerima dan melepaskan proses-proses sangatlah penting untuk kemudahan penggunaan dan untuk menyediakan multiuser yang efisien dan lingkungan pengeksekusian time-sharing.
Bagaimana proses yang bermigrasi memperoleh akses sistem file? Proses tersebut harus tetap memelihara akses ke file tadi, meski telah berpindah ke node lain. Terdapat tiga macam sistem file yang perlu diketahui yaitu: 1. DFSA (Direct File System Access), merupakan suatu teknik optimasi. Ini memungkinkan remote process untuk melakukan sistem call pada file secara lokal daripada mengirimkannya ke home node. 2. MFS (Mosix File System) memungkinkan semua node mengakses semua sistem file node. DFSA berjalan pada suatu sistem file cluster, pada kasus ini MFS. Ini dipakai oleh Mosix, tidak boleh openMosix. 3. oMFS (openMosix File System) adalah suatu sistem file yang dipakai oleh kernel openMosix. oMFS dapat diperoleh dengan cara menginstalasi suatu kernel openMosix pada node di cluster dengan mengaktifkan oMFS pada kernel-config. OpenMosix tidak memiliki kontrol pusat atau hubungan master/slave diantara node. Tiap node bisa berjalan sebagai sistem yang berjalan secara otonom, dan openMosix membuat semua keputusan terkontrol secara independen. Rancangan ini memungkinkan konfigurasi dinamis dimana node bisa bergabung atau meninggalkan jaringan dengan gangguan yang rendah. Sebagai tambahan hal ini memperbolehkan skalabilitas yang besar dan memastikan sistem tersebut berjalan dengan baik pada konfigurasi yang besar sama seperti pada konfigurasi yang lebih kecil. Skalabilitas dicapai dengan menggabungkan ketidakaturan dalam algoritma sistem kontrol, dimana setiap titik mendasarkan keputusannya pada pengetahuan parsial tentang ketetapan dari node yang lain, dan bahkan tidak mencoba untuk menentukan ketetapan keseluruhan dari cluster atau node yang lain, contohnya, pada probabilitas algoritma penyebaran informasi, setiap node mengirim, pada interval yang tertentu informasi tentang sumber daya yang tersedia untuk terpilih secara acak. Pada saat yang sama algoritma ini mempertahankan informasi terakhir yang up-to-date. Skema ini mendukung penyekalaan, juga penyebaran informasi dan konfigurasi dinamis. Algoritma utama pada clustering openMosix adalah load-balancing dan memory ushering. Kekuatan algoritma load-balancing adalah secara terusmenerus mencoba untuk mengurangi perbedaan beban diantara pasangan node,
dengan memindahkan proses dari beban yang tinggi ke beban yang lebih sedikit. Pengurangan beban kerja dilakukan secara independen oleh setiap node. Jumlah prosesor pada setiap node dan kecepatannya merupakan faktor yang terpenting dalam algoritma ini. Algoritma akan menanggapi perubahan beban node atau kerakteristik runtime pada proses. Algoritma paralel mungkin tampak memiliki kecepatan yang tinggi secara teoritis, tetapi saat diimplementasikan kedalam sistem yang nyata memberikan hasil yang lebih rendah. Berikut adalah beberapa masalah yang dapat membatasi kinerja program paralel. Kelompok permasalahan yang terjadi adalah sebagai berikut: 1. Memory contention Eksekusi pemroses ditunda saat menunggu untuk memperoleh akses ke bagian memori yang sedang dipakai oleh proses lainnya. Masalah ini muncul bila sebuah shared data dimiliki oleh sejumlah pemroses paralel. Memory contention merupakan masalah yang muncul pada arsitektur shared memori seperti multiprocessor. 2. Kode sekuensial yang berlebihan Dalam algoritma paralel akan selalu ada bagian kode sekuensial yang melakukan operasi tertentu, seperti inisialisasi. Kode sekuensial bisa membatasi kecepatan maksimum yang dapat dicapai. 3. Waktu proses Dalam praktik, pembuatan proses paralel memerlukan sejumlah waktu. Bila proses yang dibuat memiliki durasi yang pendek, overhead pembuatannya menjadi lebih besar dari waktu yang dihemat oleh komputasinya secara paralel. 4. Delay komunikasi Delay ini muncul karena interaksi antara dua pemroses pada multikomputer yang dilakukan melalui pertukaran pesan. Komunikasi bisa jadi dilewatkan melalui banyak pemroses data pada suatu jaringan. Delay komunikasi yang terjadi bisa menurunkan kinerja program.
5. Delay sinkronisasi Sinkronisasi proses paralel berarti ada proses yang dipaksa menunggu proses lainnya untuk keperluan pencocokan data. Pada beberapa program paralel, delay yang terjadi dapat menurunkan kinerja. 6. Ketidakseimbangan beban Pada beberapa program paralel, proses yang melakukan komputasi dibuat secara dinamis dan harus ditempatkan ke pemroses setelah dibuat. Ada kemungkinan beberapa proses menganggur (idle), sementara yang lainnya memiliki banyak proses yang melakukan komputasi.
1.6 CLUSTERKNOPPIX
Seperti namanya, ClusterKnoppix adalah suatu bagian dari knoppix. ClusterKnoppix diciptakan oleh Wim Vandermissen untuk dapat membangun komputer cluster melalui live-cd. ClusterKnoppix sendiri diambil dari distro Knoppix yang diciptakan oleh Klaus Knopper. ClusterKnoppix memberikan para user semua keuntungan-keuntungan Knoppix seperti aplikasi dalam jumlah yang banyak, berjalan melalui CD, pendeteksian hardware otomatis, dan mendukung banyak perangkat. ClusterKnoppix menggunakan CD Knoppix yang dimodifikasi dengan menambahkan ekstensi kernel dari openMosix.
Gambar 2.3 Logo ClusterKnoppix
Apabila paket Knoppix digabungkan dengan openMosix, maka akan menghasilkan sebuah komputer cluster bernama ClusterKnoppix. Kelebihan yang diwarisi dari Knoppix adalah kemampuan untuk dapat langsung berjalan dari CDROM tanpa harus diinstal. Dengan kemudahan tersebut, kita dapat mencoba ClusterKnoppix tanpa harus mengubah sedikitpun isi harddisk. Tanpa konfigurasi yang rumit, maka setiap node akan otomatis berkomunikasi antara satu dengan yang lainnya dan langsung bergotong royong berbagi tugas. ClusterKnoppix menggunakan fitur omdiscd (auto-discovery) dari
openMosix, maka setiap node yang baru dapat ditambahkan meskipun sistem cluster sedang beroperasi. Jaringan cluster akan langsung otomatis memanfaatkan sumber daya dari node yang baru diikutsertakan. Dengan demikian setiap aplikasi akan otomatis dan transparan menikmati keuntungan distributed computing dari openMosix. Fitur-fitur clustering yang dimiliki oleh clusterKnoppix adalah: 1. openMosix
terminal
server
sebagai
wizard
yang
membantu
dalam
pengkonfigurasian sehingga tidak menjadi rumit. 2. Jika diinginkan, tidak diperlukan harddisk dan CD-ROM pada client. 3. Pengaturan tools seperti openmosixview. 4. openMosix autodiscovery yang berfungsi untuk mendeteksi otomatis node baru yang masuk kedalam cluster. 5. Setiap node memiliki akses root ke node lainnya melalui SSH. 6. Dukungan oMFS dan DFSA. 7. Setiap diskless node bisa menjalankan Xwindow bila memory mencukupi.
1.7 OPENMOSIXVIEW
Openmosixview adalah generasi berikutnya yang ditulis ulang dari Mosixview.
Openmosixview
merupakan
GUI
untuk
mengelola
cluster
openMosix. Dengan openmosixview, kita akan jadi lebih tahu apa yang sebenarnya terjadi pada proses clustering (meliputi perpindahan proses, load balancing, jumlah anggota cluster, dan lain-lain). Pada paket ini terdapat sejumlah aplikasi berguna yaitu: 1. openMosixview : aplikasi utama pemantauan dan administrasi. 2. openMosixprocs : process-box untuk pengelolaan proses 3. openMosixcollector: daemon yang melakukan pengumpulan catatan informasi cluster dan node. 4. openMosixanalyzer:
penganalisa
data
yang
openMosixcollector. 5. openMosixhistory: process history untuk cluster. 6. openMosixmosmon: untuk memantau migrasi proses.
dikumpulkan
oleh
Pada openmosixview terdapat fasilitas slider yang menyederhanakan loadbalancing manual dan otomatis semua bagian diakses dari jendela utama. Kebanyakan perintah openMosix bisa dijalankan hanya dengan klik mouse saja. Tersedia juga dialog untuk eksekusi lanjut yang membantu menjalankan aplikasi. Panel openmosixview terlihat seperti gambar dibawah.
Gambar 2.4 Panel openmosixview
Sistem yang diperlukan dalam memakai openmosixview adalah: 1. Root priviledge 2. Akses rlogin dan rsh (atau ssh) untuk semua node yang menjadi bagian cluster, tanpa password. 3. Userspace tool 4. Sejumlah library mesa dan openGL. Pada ClusterKnoppix openmosixview telah tersedia secara otomatis pada saat instalasi ClusterKnoppix. Sedang pada distro lain harus menginstall sendiri. OpenMosixview dapat diperoleh di www.openmosixview.com seperti terlihat pada gambar.
Gambar 2.5 Situs openmosixview
1.8 OPENMOSIXANALYZER
Dengan openMosixAnalyzer, riwayat data hasil clustering disajikan secara non-stop. Riwayat data yang dibuat oleh openMosixCollector ditampilkan dalam bentuk grafis. Aplikasi ini dapat menganalisa catatan data yang sekarang maupun yang sudah lama. Garis grafis yang normal berwarna hitam. Jika load meningkat hingga > 75, maka garis berwarna merah.
Gambar 2.6 openMosixAnalyzer Load Overview
Jika
terdapat
checkpoint
yang
dituliskan
dalam
catatan
oleh
openMosixCollector, maka checkpoint tersebut akan ditampilkan dalam gambar statistik dengan blok biru. Statistik berguna untuk melakukan perbandingan nilai load pada suatu waktu.
Gambar 2.7 openMosixAnalyzer Informasi Statistik mengenai cluster-node
Memory-overview pada openMosixAnalyzer berfungsi untuk mengukur penggunaan memori ketika proses clustering berlangsung. Jika terdapat checkpoint yang dicatat oleh openMosixAnalyzer, maka pada tampilan grafis tersebut akan muncul garis vertikal biru. Fungsi pencatatan tersebut adalah untuk melakukan perbandingan penggunaan memori masing-masing node pada suatu waktu tertentu.
Gambar 2.8 openMosixAnalyzer Memory-Overview
1.9 LAME MP3 ENCODER
LAME adalah kependekan dari Lame ain’t MP3 Encoder merupakan codec kompresi file audio yang handal. LAME adalah MP3 encoder berlisensi GPL. Pengembangan LAME dimulai sejak pertangahan 1998 dan diciptakan oleh Mike Cheng.
Gambar 2.9 Logo LAME MP3 Encoder
LAME MP3 Encoder adalah aplikasi yang sangat berguna dan salah satu aplikasi MP3 encoder terbaik yang pernah ada untuk kualitas bitrate menengah keatas, apalagi aplikasi ini ditawarkan gratis. Anda dapat menggunakan LAME dengan interface RazorLAME atau Anda dapat menggunakan Dinamic Link Library (DLL) dengan software lain, seperti AudioGrabber, CDEx, audacity, dan masih banyak lagi.
1.10
POV-RAY
POV-Ray adalah kependekan dari Persistence of Vision RayTracer. POVRay merupakan sebuah software untuk membuat grafis komputer dengan kualitas yang tinggi. POV-Ray berlisensi freeware, yang berarti setiap orang bisa menggunakannya, dan memperbanyaknya tanpa biaya sedikitpun. POV-Ray berbeda dari yang lain karena POV-Ray memiliki kekuatan dan kestabilan untuk memuaskan para pengguna yang sangat berpengalaman.
Menurut para developer, mereka melihat gambar yang mereka render menggunakan POV-Ray, yang menurut dugaan pertama mereka merupakan fotografi, sangat realistik. Perlu diketahui bahwa fotorealisme merupakan keahlian tingkat tinggi, yang memerlukan banyak latihan untuk menguasainya. Untuk menulis dan memodifikasi scene POV-Ray, pengguna hanya mengedit file teks sesungguhnya yang berisikan perintah-perintah. Pengguna baru mungkin terkejut untuk mempelajarinya, dimana mungkin kedengarannya primitif, hal ini merupakan salah satu fakta yang menunjukkan POV-Ray memiliki kekuatan dan fleksibilitas yang sangat tinggi. Ada beberapa program untuk rendering animasi yang memberikan pengguna fasilitas antarmuka point-and-click, tetapi ketika dihadapkan pada keharusan dalam kontrol mutlak suatu scene, hal tersebut sangat sulit jika dibandingkan dengan yang berbasis teks, walaupun hal tersebut sangat sulit untuk dipelajari. Hampir setiap orang bisa menggunakan POV-Ray untuk UNIX. Jika anda telah melihat program ray tracing sebelumnya, anda bisa memiliki kesenangan hanya dengan me-render scene contoh dan animasi yang telah terinstall bersamaan didalam POV-Ray. Namun pada Linux, POV-Ray tidak mempunyai GUI dan hanya bersifat sebuah command-line utility. Tidak ada GUI untuk Linux menyebabkan file yang akan di-trace harus dijalankan melalui terminal. Terdapat contoh sederhana yang bisa dicoba pada POV-Ray. Berikut ini adalah contoh hasil tracing sederhana tersebut dapat dilihat pada Gambar 2.10.
Gambar 2.10 Contoh hasil tracing pada POV-Ray