Anda di halaman 1dari 26

Parallel Virtual Machine

Kelompok VI :
Dicky Triyadi Putra

1311511010

Arrya Anandika

1311511018

M.Arief

1311511042

Aditya Permana O

1311512004

Raihan Annafi

1311512012

Parallel Processing
Penggunakan lebih
dari
menjalankan sebuah
simultan.

satu
CPU
program

untuk
secara

Tujuan Utama

Untuk meningkatkan performa komputasi.

Komputasi Parallel
Salah satu teknik melakukan komputasi secara
bersamaan dengan memanfaatkan beberapa
komputer secara bersamaan.

Komputasi Paralel membutuhkan


1. Algoritma
2. Bahasa pemrograman
3. Compiler

Pemrograman Parallel
Teknik

pemrograman

komputer

yang

memungkinkan eksekusi perintah atau operasi


secara bersamaan baik dalam komputer
dengan

satu

(prosesor

tunggal)

ataupun

banyak (prosesor ganda dengan mesin paralel)


CPU.

What is cluster computing?


What is cluster computing?

Computer Cluster adalah :

adalah sekelompok komputer yang terhubung, bekerja sama erat sehingga dalam
banyak hal mereka membentuk satu komputer. Komponen dari sebuah cluster sering,
tapi tidak selalu terhubung satu
sama lain melalui jaringan area lokal cepat. Cluster
biasanya digunakan untuk meningkatkan kinerja dan/atau ketersediaan atas yang
disediakan oleh satu komputer, sementara biasanya jauh lebih efektif daripada satu
komputer sebanding kecepatan atau ketersediaan.

Cluster consists of:


Nodes(master+computing)
Network
OS

Cluster middleware:
Middleware such as MPI
which permits compute
clustering programs to be
portable to a wide variety
of clusters

APPAPP

APPAPP

APPAPP

Cluster Middle ware

High Speed Local Network

CPU

CPU

CPU

Cluster

Clusterclassification
classification
Cluster

Beowulfcluster
cluster
Beowulf

A Beowulf Cluster desain komputer yang menggunakan paralel


pengolahan
di
beberapa
komputer
untuk
membuat
superkomputer murah dan kuat. Beowulf Cluster dalam praktek
ini biasanya koleksi komputer umum, sistem saham atau Grosir
bagian dibeli secara independen dan berkumpul, terhubung
melalui jaringan internal.

Sebuah cluster memiliki dua jenis komputer, komputer master,


dan node komputer. Ketika masalah besar atau set data yang
diberikan kepada Beowulf cluster, komputer master pertama
menjalankan program yang memecahkan masalah potong kecil
diskrit; Ia kemudian akan mengirimkan sepotong untuk setiap
node untuk menghitung. Sebagai node menyelesaikan tugastugas mereka, menguasai komputer terus mengirim lebih
potongan kepada mereka sampai keseluruhan masalah telah
7
dihitung.

Beowulfcluster
cluster
Beowulf

( Ethernet,Myrinet.)
+ (MPI)

Master: or service node or front node ( used to interact with users and
manage the cluster )
Nodes : a group of computers (computing node s)( keyboard, mouse,
floppy, video)
Communications between nodes on an interconnect network platform
( Ethernet, Myrinet.)
In order for the master and node computers to communicate, some sort
message passing control structure is required. MPI,(Message Passing
8
Interface) is the most commonly used such control.

Bahasa Pemrograman yang digunakan


pada Pemrograman Parallel
1.

MPI (Message Passing Interface)

2.

PVM (Parallel Virtual Machine)

MPI (Message Passing Interface)


Sebuah

standard

pemrograman

yang

memungkinkan pemrogram untuk membuat


sebuah aplikasi yang dapat dijalankan secara
paralel.

MPI (Message Passing Interface)


Suatu standar

protokol

yang digunakan

untuk pemrograman paralel dan

terdistribusi.

Proses pertukaran pesan atau data antar proses adalah


dengan mengirimkan pesan melalui media komunikasi.
Model
pada

ini

juga

dapat

diimplementasikan

bermacam-macam platform, seperti shared-memory.

PVM (Parallel Virtual Machine)

Perangkat lunak yang memungkinkan sekumpulan


komputer yang heterogen terlihat seperti satu sistem
komputer paralel dan dapat digunakan sebagai
sebuah sumber daya komputasi yang koheren.
Istilah
machine mengacu pada konfigurasi
virtual
komputer
dengan memori tersebar, sedangkan istilah
host ditujukan untuk komputer yang merupakan
anggota dari virtual machine. Host dapat terdiri dari
komputer yang berbeda-beda dan terpisah lokasinya
secara fisik.

Parallel Virtual Machine (cont..

PVM (Parallel Virtual Machine) PVM adalah perangkat lunak yang membuat
sekumpulan komputer menjadi tampak seperti sebuah sistem komputer
virtual yang besar. Sekumpulan komputer yang akan terlibat dalam proses
penyelesaian masalah harus didefinisikan trelebih dahulu, agar dapat
menjalankan fungsinya. Komputer-komputer yang terlibat dalam komputasi
bisa homogen, dengan platform yang sama, maupun heterogen, dengan
platform yang berbeda, asal di antara mereka bisa saling berkomunikasi.

Apa saja yang ditangani PVM ?

PVM menangani semua pengiriman proses, konversi data, dan penjadwalan


task secara message passing untuk sistem yang tidak kompatibel sekalipun.

Komponen PVM

PVM daemon
Daemon dari PVM, atau disebut PVM daemon
(pvmd).
merupakan semacam program yang di
Daemon
belakang
dan biasanya
program dari
menangani
klien. Komponen ini berada pada setiap
berjalan
komputer yang terhubung dalam virtual machine.
PVM Berguna untuk membentuk konfigurasi host
dalam PVM dan mengkoordinir komunikasi antar
host.

Komponen PVM

PVM libraries
Komponen ini berisi rutin-rutin antarmuka pemakai
PVM

untuk

melakukan

pengiriman

pesan,

pembuatan proses, koordinasi proses dan modifikasi


virtual machine.
Pustaka PVM ini memungkinkan adanya interaksi
antar

task,

yang

bisa

dilakukan

dengan

menggunakan fungsi packing dan unpacking pesan.

PVM Library (cont

Bagian kedua adalah pustaka rutin antarmuka PVM yang berisi koleksi
perintah-perintah primitif untuk mengoperasikan proses-proses pustaka
tersebut. Pustaka rutin ini digunakan dalam program aplikasi paralel yang
ditulis dengan bahasa pemrograman C, C++, atau FORTRAN 77.

PVM Library (cont

Aplikasi dalam bahasa pemrograman C dan C++ dihubungkan melalui pustaka


libpvm3.lib, sedangkan aplikasi dalam bahasa pemrograman FORTRAN 77
dapat mengambil rutin-rutin dalam libfpvm3.lib. Kedua pustaka tersebut
telah tersedia pada saat instalasi. PVM memberi fasilitas untuk membuat
sejumlah proses yang tidak tergantung dari jumlah prosesor. Setiap proses
diidentifikasi menggunakan kode (task ID) dan dipetakan ke prosesor secara
otomatis, atau dapat juga diatur oleh programmer.

Model Master Slave

Program PVM umumnya diatur dengan model master-slave, yaitu satu proses
yang dieksekusi pertama kali menjadi master dan mengaktifkan semua client
dengan memanggil pvm_spawn. Rutin tersebut otomatis akan menjalankan
semua proses dalam sistem PVM.

Model Master Slave (cont..

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 pada Model Master Slave


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 masingmasing komputer :
1. 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.
2. Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan
/etc/hosts/hosts.equiv.
3. Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui
konsole PVM. Bila IP tidak didefinisikan pada hostfile cara ini dapat digunakan.

Komunikasi pada Model Master Slave


(cont..
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. Fungsifungsi 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.

Model Memanggil Rutin pvm_mytid

Cara lain untuk menjalankan proses adalah dengan memanggil rutin


pvm_mytid yang mengembalikan kode task ID dari proses tersebut. Sebelum
keluar dari sistem PVM, semua proses client harus dimatikan dari PVM dengan
memanggil rutin pvm_exit.

Komunikasi Antar Proses PVM

Komunikasi antar proses di dalam sistem PVM dilakukan secara message


passing menggunakan perintah rutin PVM seperti pvm_send dan pvm_recv.
Semua rutin pengiriman pesan dilakukan secara asinkron, sedangkan semua
rutin penerimaan pesan dapat dilakukan secara sinkron maupun asinkron

Tahap mengirim pesan dalam PVM

Ada tiga tahap dalam mengirim pesan dalam PVM, yaitu :

- Menginisialisasi buffer pengiriman dengan rutin pvm_initsend

- Mengemas isi pesan ke dalam buffer dengan memanggil rutin pvm_pk*. Data
yang dikemas dapat bertipe byte, complex, double, float, integer, dan
character. Tipe tersebut dinyatakan dengan mengganti tanda * dan
memberi tipe yang sesuai untuk tiap parameter di dalam rutin pvm_pk*.
Misalnya data yang akan dikemas bertipe float, maka digunakan
pvm_pkfloat().

> Mengirim pesan ke prosesor tujuan dengan memanggil pvm_send atau


pvm_mcast. Proses yang menerima pesan harus membuka paket pesan pada
buffer penerima sesuai dengan format pengiriman pesan.

Rutin pada PVM

PVM juga menyediakan rutin pvm_setopt untuk mengatur pilihan dalam sistem
PVM, seperti pencetakan pesan kesalahan secara otomatis, tingkat pencarian
kesalahan (debugging level), dan metode pengaturan jalur komunikasi.
Contoh yang paling umum dari penggunaan pvm_setopt adalah memungkinkan
jalur komunikasi langsung antar task dalam PVM. Pvm_setopt(PvmRoute,
PvmRouteDirect);Dengan perintah ini otomatis bandwidth komunikasi di
dalam jaringan akan digandakan.

Anda mungkin juga menyukai