Top Banner
Parallel Virtual Machine Kelompok VI : Dicky Triyadi Putra 1311511010 Arrya Anandika 1311511018 M.Arief 1311511042 Aditya Permana O 1311512004 Raihan Annafi 1311512012
26

Parallel Virtual Machine

Jan 28, 2016

Download

Documents

Parallel Prosesing
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Parallel Virtual Machine

Parallel Virtual Machine

Kelompok VI :

Dicky Triyadi Putra 1311511010

Arrya Anandika 1311511018

M.Arief 1311511042

Aditya Permana O 1311512004

Raihan Annafi 1311512012

Page 2: Parallel Virtual Machine

Parallel Processing

Penggunakan lebihdari

satuCPU

untuk

menjalankan sebuah program secarasimultan.

Tujuan Utama

Untuk meningkatkan performa komputasi.

Page 3: Parallel Virtual Machine

Komputasi Parallel

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

Komputasi Paralel membutuhkan

1. Algoritma2. Bahasa pemrograman3. Compiler

Page 4: Parallel Virtual Machine

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.

Page 5: Parallel Virtual Machine

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

Page 6: Parallel Virtual Machine

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

Page 7: Parallel Virtual Machine

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

Page 8: Parallel Virtual Machine

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.

Page 9: Parallel Virtual Machine

Bahasa Pemrograman yang digunakan pada Pemrograman Parallel

1. MPI (Message Passing Interface)

2. PVM (Parallel Virtual Machine)

Page 10: Parallel Virtual Machine

MPI (Message Passing Interface)

Sebuah standard pemrograman yang

memungkinkan pemrogram untuk membuat

sebuah aplikasi yang dapat dijalankan secara

paralel.

Page 11: Parallel Virtual Machine

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)

Page 12: 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.

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)

Page 13: 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.

Page 14: Parallel Virtual Machine

Apa saja yang ditangani PVM ?

PVM menangani semua pengiriman proses, konversi data, dan penjadwalan task secara message passing untuk sistem yang tidak kompatibel sekalipun.

Page 15: Parallel Virtual Machine

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

Page 16: Parallel Virtual Machine

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

Page 17: Parallel Virtual Machine

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.

Page 18: Parallel Virtual Machine

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.

Page 19: Parallel Virtual Machine

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.

Page 20: Parallel Virtual Machine

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.

Page 21: Parallel Virtual Machine

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.

Page 22: Parallel Virtual Machine

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.

Page 23: Parallel Virtual Machine

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.

Page 24: Parallel Virtual Machine

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

Page 25: Parallel Virtual Machine

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.

Page 26: Parallel Virtual Machine

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.