parallel virtual machine
Post on 28-Jan-2016
78 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 lebihdari
satuCPU
untuk
menjalankan sebuah program secarasimultan.
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. Algoritma2. Bahasa pemrograman3. 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?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.
5
CPU CPU CPU…
High Speed Local Network
Cluster Middle ware
Cluster
APP APP APP…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
Cluster classification
6
High availability clusters (HA)
(Linux)
Mission critical applications
High-availability clusters (also
known as Failover Clusters) are
implemented for the purpose of improving the availability of
services which the cluster provides.
provide redundancy
eliminate single points of failure.
Network Load balancing clusters
Web servers, mail servers,..
operate by distributing a
workload evenly over multiple back
end nodes.Typically the cluster will be
configured with multiple
redundant load-balancing front
ends. all available
servers process requests.
Science Clusters
Beowulf
Beowulf cluster
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 tugas-tugas mereka, menguasai komputer terus mengirim lebih potongan kepada mereka sampai keseluruhan masalah telah dihitung.
7
Beowulf cluster
8
( 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 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.
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 ini juga dapat diimplementasikanpada
bermacam-macam platform, seperti shared-memory.
MPI (Message Passing Interface)
Perangkat lunak yang memungkinkan sekumpulan komputer yang heterogen terlihat seperti satu sistem komputer paralel dan dapat digunakan sebagai sebuah sumber daya komputasi yang koheren.
Istilahvirtual
machine mengacu pada konfigurasikomputer 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.
PVM (Parallel Virtual Machine)
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.
PVM daemondari PVM, atau disebut PVM daemonDaemon
(pvmd). Daemon berjalan
merupakan semacam programyang di “belakang” danbiasanya menanganiprogram dari klien. Komponen ini berada pada setiap
komputer yang terhubung dalam virtual machine.Berguna untuk membentuk konfigurasi host
PVM dan mengkoordinir komunikasi antarPVMdalamhost.
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.
Komponen PVM
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 masing-masing 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. 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.
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.
top related