Contoh Software
Algoritma Paralel
Komputasi Paralel dengan Parallel Virtual Machine (PVM)
Komputasi paralel adalah
salah satu teknik melakukan komputasi
secara bersamaan dengan memanfaatkan beberapa komputer independen secara
bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar,
baik karena harus mengolah data dalam jumlah besar (di industri keuangan,
bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak.
Penggunaan komputasi parallel prosessing merupakan pilihan yang
cukup handal untuk saat ini untuk pengolahan data yang besar dan banyak, hal
ini apabila dibandingkan dengan membeli suatu super komputer yang harganya
sangat mahal maka penggunaan komputasi parallel prosessing merupakan pilihan
yang sangat tepat untuk pengolahan data tersebut.
Aspek keamanan merupakan suatu aspek penting dalam sistem parallel
prosessing komputasi ini, karena di dalam sistem akan banyak berkaitan dengan
akses data, hak pengguna, keamanan data, keamanan jaringan terhadap peyerangan
sesorang atau bahkan virus sehingga akan menghambat kinerja dari system
komputasi ini.
Komputasi parallel
adalah melakukan
perhitungan komputasi dengan
menggunakan 2 atau lebih CPU/Processor dalam suatu komputer yang sama atau
komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam
beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan
dilakukan secara
bersamaan. Untuk proses pembagian proses komputasi tersebut
dilakukan oleh suatu software yang betugas untuk mengatur komputasi dalam hal
makalah ini akan digunakan Parallel Virtual Machine (PVM).
Pada sistem komputasi parallel terdiri dari beberapa unit prosesor
dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di
unit memori, yaitu shared memory address dan message passing. Berdasarkan cara
mengorganisasikan memori ini komputer paralel dibedakan menjadi shared memory
parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan
(interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya
digunakan oleh distributed memory system (sistem memori terdistribusi).
Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor.
Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar
prosesor dan memori.
Komunikasi data pada sistem paralel memori terdistribusi,
memerlukan alat bantu komunikasi. Contoh alat bantu yang sering digunakan oleh
sistem seperti PC Jaringan pada saat ini adalah standar PVM (Parallel Virtual
Machine) yang bekerja diatas TCP/IP communication layer. Standar ini memerlukan
fungsi remote access agar dapat menjalankan program pada masing-masing unit
prosesor.
Salah satu protocol yang dipergunakan pada komputasi parallel
adalah Network File System (NFS), NFS
adalah
protokol yang dapat membagi sumber daya melalui jaringan. NFS dibuat untuk
dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol
transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC. NFS
memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada
di remote host seperti mengakses file yang
berada di lokal. Protokol yang digunakan
protokol mount menentukan host remote dan jenis file sistem yang akan diakses
dan menempatkan di suatu direktori, protokol NFS melakukan I/O pada remote file
system. Protokol mount dan protokol NFS bekerja
dengan menggunakan RPC dan mengiri dengan protokol TCP
dan UDP. Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan
sharing data sehingga setiap node slave dapat mengakses program yang sama pada
node master.
Sekilas tentang PVM (Parallel Virtual Machine)
PVM (Parallel Virtual Machine) adalah
paket software yang mendukung pengiriman pesan untuk komputasi parallel antar
komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun windows dan
telah portable untuk banyak arsitektur seperti PC, workstation, multiprocessor
dan superkomputer.
Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang
berjalan pada mesin virtual masing-masing komputer. Mesin virtual akan
dibuat,
ketika User mengeksekusi aplikasi PVM. PVM dapat dieksekusi melalui prompt UNIX
disemua host. Bagian kedua adalah library interface rutin yang mempunyai banyak
fungsi untuk komunikasi antar task . Library ini berisikan rutin yang dapat
dipanggil untuk pengiriman pesan, membuat proses baru, koordinasi task dan
konfigurasi mesin virtual.
Salah aturan main yang penting dalam PVM adalah adanya mekanisme
program master dan slave/worker. Programmer harus membuat Kode master yang
menjadi koordinator proses dan Kode slave yang menerima, menjalankan, dan
mengembalikan hasil proses ke komputer master. Kode master dieksekusi paling
awal dan kemudian melahirkan proses lain dari kode master. Masing-masing
program ditulis menggunakan C atau Fortran dan dikompilasi dimasing-masing
komputer. Jika arsitektur komputer untuk komputasi paralel semua sama,
(misalnya pentium
4
semua), maka program cukup dikompilasi pada satu komputer saja. Selanjutnya
hasil kompilasi didistribusikan kekomputer lain yang akan menjadi node
komputasi parallel. Program master hanya berada pada satu node sedangkan
program slave berada pada semua node.
Komunikasi dapat berlangsung bila masing-masing komputer mempunyai
hak akses ke filesystem semua komputer. Akses kefile system dilakukan melalui
protokol rsh yang berjalan di unix atau windows.
Berikut adalah langkah pengaturan pada masing-masing komputer :
• Buat file hostfile yang berisi daftar node
komputer dan nama user yang akan dipakai untuk komputasi parallel. Bila nama
user pada semua komputer sama misalnya nama user riset pada komputer C1, C2,C3
dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bila
nama user di masing-masing komputer berbeda.
• Daftarkan IP masing-masing
komputer pada file
/etc/hosts/hosts.allow dan
/etc/hosts/hosts.equiv.
• Penambahan dan penghapusan
host secara dinamis dapat dilakukan melalui
konsole PVM. Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat
digunakan.
Program PVM terdiri dari master dan slave, dimana program master
dieksekusi paling awal dan kemudian melahirkan proses lain. PVM memanggil rutin
pvm_spawn() untuk melahirkan satu atau dua proses lebih yang sama.
Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin awalan pvm. Pengiriman
dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID ini
bersifat unik dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang
mengembalikan nilai TID sehingga aplikasi user dapat mengidentifikasi task lain
disistem.
Secara umum, langkah implementasi komputasi parallel sebagai
berikut :
1. Jalankan PVM daemon pada setiap mesin dalam cluster
2. Jalankan program master pada master daemon
3. Master daemon akan menjalankan proses slave.
Untuk mengimplementasikannya, kita dapat memakai tools :
- PVM, virtual machine dan routine untuk
komputasi parallel
- rsh (remote shell),
aplikasi untuk authentikasi dan komunikasi
proses antar komputer.
- Xpvm versi 1.2, , interface grafis untuk
PVM dengan animasi eksekusi komputasi parallel yang dapat dilihat dilayar