PERANCANGAN,
IMPLEMENTASI DAN PENGEMBANGAN KLASTER PC UNTUK KOMPUTASI PARALEL. Kami telah
merancang, membangun, dan mengembangkan klaster sejumlah komputer pribadi (PC)
yang berfungsi sebagai pengolah paralel dengan menggunakan sistem operasi
Linux, message passing MPI, dan penyeimbang beban proses Mosix. Makalah ini
akan menjelaskan mengenai disain dan implementasi perangkat keras yang
diperlukan untuk klaster tersebut. Juga akan dibahas dalam makalah ini berbagai
persoalan komunikasi yang berperan amat penting bagi kinerja klaster tersebut.
Kata kunci :
cluster, message-passing, load-balancing
1. Pendahuluan
Dalam
paper ini kami akan membahas cara membangun dan mengembangkan klaster komputer
(computer cluster) untuk digunakan dalam memecahkan permasalahan yang kompleks
sebagai alternatif dari komputer super yang mahal harganya. Bila kita
menggunakan sebuah komputer pribadi (PC) untuk memecahan suatu problem yang
akan membutuhkan waktu lama, maka bila kita menggabungkan beberapa buah PC dan
membentuk suatu sistem komputer paralel / klaster maka problem tersebut akan
terselesaikan lebih cepat. Jadi pengertian dari klaster PC adalah sekumpulan PC
yang terhubung satu sama lain dengan menggunakan sistem jaringan komputer yang
bekerja secara bersama-sama untuk memecahkan problem yang kompleks. Dengan
demikian
klaster PC dapat menyelesaikan persoalan tersebut dengan lebih cepat dibandingkan jika dikerjakan oleh sebuah PC saja.
klaster PC dapat menyelesaikan persoalan tersebut dengan lebih cepat dibandingkan jika dikerjakan oleh sebuah PC saja.
Dalam
tulisan ini akan dijelaskan bagaimana cara memilih perangkat keras dan
pemasangannya, mempersiapkan lingkungan atau tempat penyimpanan komputer,
instalasi perangkat lunak dan pengujian dengan program MPI yang sederhana.
2. Perancangan
dan pembangunan komputer cluster
2.1 Pemilihan
perangkat keras
Perangkat
keras yang digunakan terdiri atas beberapa PC, perangkat untuk jaringan
komputer serta perangkat lain yang mendukung seperti sistem pendingin udara
(air conditioner / AC). Klaster ini dapat menggunakan semua jenis arsitektur
komputer yang ada (Intel, SunSparc, PowerPC, StrongARM dan alpha) [1],
berprosesor tunggal atau multi, serta jenis sistem operasi (Unix, Linux,
Microsoft Windows, Solaris) yang berjalan diatasnya. PC yang dimiliki
perorangan atau suatu lembaga pendidikan umumnya menggunakan arsitektur
prosesor Intel. Klaster komputer yang kami bangun disini juga menggunakan
prosesor buatan Intel. Kita dapat membangun jaringan klaster komputer dari
komputer bekas (lama) atau yang sama sekali baru sesuai dengan dana yang
tersedia. Apabila mempunyai dana terbatas dan hanya mempunyai komputer bekas
atau yang sudah tidak terpakai maka komputer tersebut masih dapat digunakan
selama komputer tersebut masih bekerja dengan baik. Jika dana yang tersedia
cukup untuk membeli komputer yang baru, hendaknya perlu diperhatikan beberapa
hal yang penting dalam pembelian komputer baru agar dapat diperoleh kinerja
klaster yang optimal.
Perangkat
komputer yang sering kali kita sebut CPU ( central processing unit) itu
sebenarnya hanya berupa sebuah prosesor, tetapi kebanyakan orang menyebut CPU
itu adalah sebuah kotak (casing) komputer yang didalamnya terdapat
komponen-komponen seperti mainboard, prosesor, memori dan perangkat keras
lainnya. Komponen yang paling utama dari sebuah komputer adalah mainboard, yang
merupakan tempat untuk meletakkan komponen-komponen komputer lainnya.
Kestabilan dan kompatibilitas mainboard merupakan suatu keharusan, bila tidak
kita akan mengalami kesulitan untuk memasang komponen lainnya karena mainboard
yang kita miliki tidak mendukungnya. Prosesor merupakan komponen penting
lainnya, semakin tinggi kecepatan prosesor semakin baik, dan sudah pasti harganya
pun semakin mahal. Komponen lain yang dianggap memiliki pengaruh besar dalam
penyelesaian perhitungan adalah RAM atau memori. Sebaiknya kita memiliki memori
yang cukup untuk melakukan perhitungan.
Selanjutkan
kita memerlukan kartu jaringan atau ethernet card yang mempunyai fungsi penting
dalam membangun jaringan komunikasi antar komputer anggota klaster. Pada saat
ini tersedia berbagai jenis kartu jaringan, mulai dari kecepatan yang rendah
sampai kecepatan transfer yang tinggi. Orde kecepatan transfer yang tersedia
adalah mulai dari kecepatan 10Mbps (Mega bit per-second), 100Mbps dan Gigabit
ethernet (1000Mbps). Sedangkan untuk komponen lainnya dapat menggunakan
komponen standar yang sudah ada di pasaran. Walaupun klaster dapat terdiri dari
puluhan komputer namun cukup digunakan sebuah monitor saja untuk
mengendalikannya.
Selain
perangkat untuk komputer dan jaringan, perangkat yang dianggap penting lainnya
adalah sistem pendingin udara (air conditioner /AC). Sebab komputer yang kita
jadikan klaster ini digunakan untuk waktu yang cukup lama, maka panas yang
dihasilkan oleh komputer sebaiknya cepat dibuang agar udara di sekitarnya tidak
menjadi panas yang dapat menyebabkan kerusakan pada komputer. Kemudian juga
memerlukan UPS (Uninterrupable Power Supply) untuk tenaga listrik cadangan bila
aliran listrik dari PLN terputus.
2.2 Instalasi
perangkat keras
Kami
telah membangun jaringan klaster komputer dengan menggunakan sistem operasi
Linux, Mosix dan message-passing MPI. Dengan menggunakan empat (4) buah
komputer yang saling terhubung melalui sebuah switching hub dan kabel UTP
(Unshielded Twisted Pair) katagori 5. Gambar 1 dibawah ini adalah topologi
jaringan klaster komputer yang kami bangun.
Gambar 1
Konfigurasi jaringan klaster komputer.
Selain
bentuk topologi diatas masih banyak lagi bentuk topologi lainnya yang dapat
diimplementasikan pada jaringan klaster komputer. Topologi yang cukup dikenal
luas adalah all-to-all ring, mesh, tree, hypercube. Masing-masing memiliki
kelebihan dan kekurangannya. Topologi jaringan seperti pada gambar 1 digunakan
karena merupakan topologi yang paling sederhana dan mudah dalam pemasangannya.
Pemasangan kabel UTP untuk menyambungkan semua komputer ke switching hub
dilakukan sebagaimana biasanya dilakukan pada jaringan lokal (LAN). Pada gambar
tampak bahwa kami hanya memerlukan satu buah monitor saja untuk mengontrol
seluruh komputer anggota klaster.
2.3 Instalasi
perangkat lunak
Kami
menggunakan sistem operasi Linux karena merupakan sistem operasi yang gratis
dan dapat di-download melalui internet. Linux merupakan klon dari Unix yang
dikembangkan pertama kali oleh Linus Torvalds dan dikembangkan lagi oleh banyak
organisasi di dunia. Linux yang kami gunakan adalah versi Linux Mandrake 8.1
[2] menggunakan kernel 2.4.17. Mosix-1.5.7 [3] untuk kernel 2.4.17 merupakan
perangkat lunak yang membuat sistem komputer dengan prosesor terdistribusi
seolah-olah menjadi sistem komputer multiprosesor yang terintegrasi menjadi
satu kesatuan. Mosix mampu menyeimbangkan beban kerja (load-balancing) yang
diterima prosesor, sehingga semua prosesor anggota jaringan mendapat bagian
beban yang sama besarnya jika semua prosesornya identik. Bila ada prosesor yang
tidak identik maka pekerjaan akan ditangani oleh prosesor yang paling cepat dan
ketika prosesor tersebut sudah mencapai beban kerja yang tinggi maka sistem
akan otomatis memindahkan proses atau pekerjaan ke prosesor yang idle (belum
menerima beban atau pekerjaan). Selanjutnya perangkat lunak yang dibutuhkan
adalah message-passing MPI versi MPICH [4] yang berguna sebagai lingkungan
pemrograman paralel. Setelah perangkat keras terpasang dengan baik kemudian
dilanjutkan dengan instalasi semua perangkat lunak yang dibutuhkan.
Langkah-langkah
yang dilakukan dalam instalasi perangkat lunak setelah semua perangkat keras
terpasang adalah:
1.
Instalasi sistem operasi Linux Mandrake lengkap dengan development tools,
compiler gcc untuk program yang ditulis dalam bahasa C++ dan g77 untuk bahasa
Fortran, X-windows (untuk tampilan grafis), LAPACK, JDK, serta beberapa
aplikasi server yang diperlukan.
2.
Instalasi Mosix dengan versi kernel Linux yang sesuai.
3.
Instalasi MPI versi MPICH terbaru
4.
Instalasi Upshot (sudah terintegrasi pada MPICH) dan Mosixview [5] untuk
visualisasi dan manajemen proses message-passing.
Semua
komputer anggota klaster hendaknya memiliki konfigurasi dan versi program yang
sama. Jika hal ini tidak dipenuhi maka akan timbul permasalahan pada komunikasi
klaster atau pada kompilasi program di klaster tersebut. Kami memberi nama
komputer pertama dengan nama Node-1 dengan IP address 10.0.0.1 dan seterusnya
hingga komputer keempat dengan nama node-4 yang memiliki IP address 10.0.0.4.
3. Pengujian
Instalasi perangkat keras dan lunak
Untuk
mengetahui apakah komputer yang dipasang tersebut terhubung dengan baik, dapat
diuji dengan perintah ping, dari salah satu komputer ke komputer lainnya.
Dengan menjalankan perintah ping kemudian dilanjutkan dengan IP address tujuan.
Setelah dipastikan bahwa semua komputer terpasang dengan baik maka selanjutnya kita
lakukan pengujian pada instalasi program untuk sistem klaster ini.
Mengingat
secara fisik sumber daya (resource) komputer itu terpisah, dan agar kita dapat
mengakses semua sumber daya tersebut dari jauh atau remote, maka kita harus
melakukan remote login ke komputer yang dituju dengan menggunakan remote shell.
Kami menggunakan rsh (remote shell) dalam hubungan antar node. Dengan rsh kami
dapat melakukan remote login ke suatu komputer dan tanpa harus memasukkan
password serta dapat mengakses semua resource komputer yang dituju bila
kita
menggunakan login root. Selain rsh ada program untuk remote shell lainnya
yaitu, ssh. Prinsip kerja ssh sama dengan rsh; pada ssh kita dapat juga
melakukan remote login ke suatu komputer tanpa harus memasukkan password setelah
dilakukan beberapa perubahan konfigurasi tertentu.
Untuk
mengecek apakah koneksi rsh antar node bisa berjalan, dari node-1 kita lakukan
rsh ke node-2. Bila tidak dimintakan password dan langsung masuk ke sistem,
berarti koneksi rsh yang kita pasang sudah berjalan dengan baik seperti dapat
dilihat pada gambar 2.
Gambar 2 Koneksi
rsh dari node-1 ke node-2.
Pengecekan
kinerja Mosix dapat dilakukan sebagai berikut, tentunya pada tahapan instalasi
harus dipastikan terlebih dahulu bahwa Mosix sudah terinstal dengan baik sesuai
dengan petunjuk instalasi. Bila sudah terinstal, pengecekan dapat dilakukan
dengan perintah mon yang merupakan utilitas dari Mosix untuk memonitor node
cluster yang terhubung. Dengan menggunakan 4 buah komputer (node) maka yang tampak
pada layar adalah empat 4 buah node yang aktif seperti terlihat pada gambar 3.
Gambar 3
Tampilan monitoring node.
Dengan
menggunakan utilitas mon ini kita dapat melihat berapa beban kerja (load)
masing-masing node, serta dapat melihat apakah semua node tersebut terhubung
pada jaringan dan dalam keadaan hidup (on) atau tidak.
Langkah
selanjutnya adalah proses penalaan (tuning) Mosix. Guna dari penalaan adalah
untuk mengkalibrasi parameter kernel Mosix yang optimal untuk prosesor dan
jaringan. Ada dua macam penalaan yaitu untuk komunikasi Mosix dan MFS (Mosix
File System). Agar penalaan dapat berjalan dengan baik tanpa ada proses lain
yang bekerja, terlebih dahulu sistem operasi dijalankan pada single mode.
Panduan untuk tuning Mosix ini bisa dilihat pada bagian dokumentasi Mosix yang
terdapat pada source code Mosix. Setelah selesai penalaan komunikasi dan MFS
akan dihasilkan file hasil kalibrasi parameter kernel Mosix. Salin file
tersebut sesuai dengan manual pada dokumentasi Mosix.
Berikutnya
kita akan melakukan instalasi MPI (Message-Passing Interface) versi MPICH.
Setelah mendownload source code MPICH kemudian kita lakukan proses instalasi
dengan mengikuti petunjuk dari dokumentasi yang tersedia pada source code
tersebut.
Instalasi
semua perangkat lunak harus seragam untuk semua PC, baik untuk versi maupun
untuk lokasi hasil instalasi program tersebut. Bila lokasi tidak sama maka kita
akan mengalami kesulitan pada waktu menjalankan program, karena lokasi file
yang akan di eksekusi berbeda-beda.
4. Visualisasi
dan manajemen proses
Untuk
melihat proses message-passing tersebut bekerja, kita dapat memantau melalui
sebuah program yang ditampilkan secara grafis. Untuk visualisasi proses
message-passing, kami menggunakan program yang terdapat pada source code MPICH
yaitu Upshot. Sedangkan untuk manajemen klaster, kami menggunakan program
Mosixview.
Gambar 4
Tampilan Upshot.
Pada
gambar 4 terlihat proses message-passing program dengan nama pingpong yang
mengirimkan paket dari komputer pengirim dengan nomor identitas komputer 0
(nol) dan penerima dengan nomor 1(satu). Paket dikirimkan terus menerus dari
ukuran paket data kecil hingga besar paket tertentu. Pada gambar terlihat
proses send (kirim) dan receive (terima) yang saling berganti seperti halnya
permainan pingpong.
Gambar 5 Tampilan
Mosixview
Gambar
5 merupakan tampilan dari program Mosixview. Warna hijau pada clusternodes
berarti node tersebut aktif atau terhubung dalam jaringan klaster. Bila warna
merah berarti node tersebut tidak dapat diakses atau node tersebut dalam
keadaan mati.
Bagian
pengubah set priority/speed yang berfungsi untuk mengubah kecepatan prosesor
yang bekerja, prinsipnya sama dengan overclock yaitu menaikkan kecepatan
prosesor diatas standarnya. Mosix load mengindikasikan seberapa besar beban
kerja mosix untuk tiap node, ditampilkan dalam persen. Semakin tinggi
persentase, semakin besar beban yang diterima. Used Memory merupakan jumlah
memory yang digunakan dalam mengerjakan proses yang diterima. Available memory
adalah memori yang tersedia dalam satu node (PC). CPU(s) adalah jumlah prosesor
yang terdapat pada satu node (PC). Kinerja load-balancing ditampilkan pada
indikator load-balancing efficiency. Bila mencapai 100% pengaturan beban kerja
berfungsi dengan sangat baik dan ini berarti semua node bekerja dengan beban
yang hampir sama besarnya. Mosixcollector bekerja mengumpulkan dan menyimpan
catatan pekerjaan serta untuk menganalisa logfile MOSIXLOAD, MOSIXMEM dan
MOSIXHISTORY. Bila mosixcollector bekerja maka warna indikator adalah hijau,
bila tidak akan berwarna merah.
5. Pengujian
dengan contoh program MPI sederhana
Berikut
ini adalah program hello world dengan menggunakan pemrograman paralel. Disini
hanya untuk membuktikan bahwa semua node klaster dapat menjalankan program
secara bersamaan. Program contoh ini sudah ada di dalam paket program mpich.
Setelah di-compile dengan menggunakan perintah mpicc –o hello hello.c, akan
dihasilkan file hello yang dapat di eksekusi. Jalankan program hello world
tersebut dengan menggunakan 4 buah prosesor/komputer. Karena sistem ini
merupakan sistem komputer terdistribusi maka file yang dijalankan harus sama
dan berada pada directory yang sama pula. Dengan menjalankan perintah mpirun
–np 4 hello maka akan muncul tampilan seperti gambar 6.
Gambar 6 Hasil
keluaran program hello untuk 4 prosesor
Terlihat
pada gambar 6 bahwa program hello tersebut dijalankan pada node-1 dan tampak
node lainnya mengeksekusi program tersebut.
6. Kesimpulan
Dengan
menggunakan beberapa buah komputer dan peralatan jaringan kita dapat membangun
suatu sistem klaster komputer. Dengan bantuan klaster komputer kita dapat
mengerjakan pekerjaan lebih cepat dibandingkan bila pekerjaan tersebut
dikerjakan oleh satu buah komputer saja. Di samping itu dengan sistem klaster
ini kita dapat memanfaatkan komputer-komputer yang sudah berkinerja rendah
untuk membangun sistem klaster komputer dengan kinerja yang tinggi.
No comments:
Post a Comment