Anda di halaman 1dari 25

Kelompok Dokumentasi

1. RACHMAWATI PRATIWI (111080200078)


2. RAKHEENA (111080200100)
3. TRISNA AFFANDI (111080200081)
4. AVAN FIRLANDO (11080200051)

Mata Kuliah : PEMROGRAMAN SISTEM TERDISTRIBUSI

Tugas :

1. PENGERTIAN MPI
2. LIBRARY MPI
3. LANGKAH-LANGKAH INSTALASI MPI

1. PENGERTIAN MPI
MPI (Message Passing Interface) adalah spesifikasi API (Application Programming
Interface) yang memungkinkan terjadinya komunikasi antar komputer pada network dalam usaha
untuk menyelesaikan suatu tugas. Paradigma Message - Passing dengan implementasi MPI
memberikan suatu pendekatan yang unik dalam membangun suatu software dalam domain
fungsi tertentu, yang dalam hal ini pada lingkungan sistem terdistribusi, sehingga memberikan
kemampuan pada produk software yang dibangun diatas middleware tersebut untuk dapat
mengeksploitasi kemampuan jaringan komputer dan komputasi secara paralel.

MPI adalah standar interface dari model message - passing yang didefenisikan oleh
sebuah grup yang terdiri dari 60 orang yang berasal dari 40 organisasi baik vendor komersil
maupun dari kalangan peneliti akademisi yang berada di Amerika Serikat dan Eropa. Dalam grup
tersebut mereka mencoba merumuskan dan membuat sebuah "standard by consensus" untuk
pustaka message - passing yang dapat digunakan dalam komputasi paralel.

MPI menjadi standar defacto yang banyak digunakan dalam komunikasi proses pada
model dari program paralel pada sistem memori terdistribusi, yang mana banyak
diimplementasikan oleh pada super komputer dan computer cluster. Pada spesifikasi MPI-1 tidak
memiliki konsep tentang shared memory, kemudian pada spesifikasi selanjutnya MPI-2 sudah
mendukung konsep distributed shared memory. Dengan kemampuan tersebut MPI dapat
mengeksploitasi arsitektur lingkungan yang sifatnya heterogen atau bersifat arsitektur NUMA
(Non-Uniform Memory Access).

Implementasi MPI merupakan sebuah API yang dapat dipanggil dari beberapa bahasa
pemrograman seperti Fortran, C, ataupun C++, dan bersifat portable. Terdapat dua versi standar
yang pada saat ini populer digunakan, yaitu versi 1.2 (MPI-1) yang berfokus pada message
passing dan memiliki static runtime enviroment, dan MPI-2.1 (MPI-2) yang memasukkan fitur -
fitur baru seperti parallel I/O, dynamic process management, remote memory operation dsb.

MPI merupakan sebuah protokol komunikasi yang sifatnya language-independent,


portable dalam mensupport berbagai platform, dan memiliki spesifikasi semantic yang mengatur
bagaimana perilaku setiap impelementasinya. MPI mendukukung komunikasi baik dengan tipe
point-to-point maupun yang bersifat kolektif. Secara umum MPI memliki tujuan sebagai berikut
:

1. MPI akan menjadi sebuah library untuk membangun program aplikasi dan bukan
distributed operating system.
2. MPI akan mendukung thread-safe yang penting dalam symmetric multiprocessor pada
lingkungan jaringan komputer yang heterogen.
3. MPI akan mampu untuk men-deliver high-performance computing.
4. MPI akan bersifat modular, untuk mengakselerasi development pustaka paralel yang
portable.
5. MPI akan bersifat extensible, sehingga dapat terus dikembangkan dan memenuhi
kebutuhan komputasi masa akan datang.
6. MPI akan mendukung heterogeneos komputasi.
7. MPI akan memiliki semantic behavior yang telah terspesifikasi dengan jelas, sehingga
dapat menghindari beberapa permasalahan kritis seperti race-conditions, dead-lock dsb.
Tipe Komunikasi MPI

a. Point-to-Point Communication
Pada implementasi program berbasis message-passing, point-to-point communication adalah
komunikasi yang paling sederhana dimana akan melibatkan sepasang proses yang saling
bekerjasama. Pada API dari MPI, secara sederhana dapat digunakan MPI_Send atau MPI_Recv,
dimana akan mengizinkan terjadinya sebuah proses spesifik yang satu dapat mengirimkan data
pesan ke sebuah proses spesifik yang lain. Operasi point-to-point communication secara khusus
berguna dalam komunikasi yang irregular ataupun yang berpola.

Contoh: sebuah arsitektur data paralel dimana setiap prosessor secara rutin melakukan
pertukaran region data dengan sebuah prosessor spesifik lainnya pada setiap langkah kalkulasi,
atau pada arsitektur master-salve dimana sang master akan mengirim task data baru ke proses
slave pada saat task data sebelummnya telah selesai.

b. Collective Communication
Berbeda dengan point-to-point communication, collective communication pada MPI API
melibatkan komunikasi antara semua proses dalam sebuah group proses (dalam artian
keseluruhan pool Proses atau sebuah subset terdefinisi pada program). Fungsi interface yang
sederhana dapat berupa MPI_Bcast (broadcast) yang melakukan pengiriman data dari sebuah
proses ke semua proses lainnya pada group, dan fungsi MPI_Reduce untuk melakukan
kebalikannya. Tipe komunikasi memberikan dua keuntungan, yaitu pertama, operasi komunikasi
tersebut mengizinkan programmer untuk mengekspresikan operasi yang kompleks dengan
menggunakan semantik yang sederhana, kedua, implementasi dapat melakukan pengoptimasian
operasi melalui cara yang tidak disediakan oleh tipe operasi point-to-point communication.
2. LIBRARY MPI
Terdapat berbagai library yang dapat digunakan dalam pemrograman C/C++.
Baik itu penggunaan bahasa C++ moderen (menggunakan std::) maupun yang biasa.
Mungkin yang sering kita gunakan, seperti :
# include <stdio.h>
# include <iostream.h>
# include <conio.h>
# include <math.h>

Langsung saja.
Berikut adalah kumpulan library-library yang dapat digunakan.

1. CONTAINERS

<bitset>

Menyediakan wadah khusus kelas std:: bitset, array bit.

<deque>

Menyediakan wadah template kelas std:: deque, antrian ganda berakhir.

<list>

Menyediakan wadah template kelas std:: list, doubly-linked.

<map>

Menyediakan wadah template kelas std:: map dan std:: Multimap, diurutkan array asosiatif dan
Multimap.
<queue>
Menyediakan kelas adaptor wadah std:: antrian, antrian tunggal berakhir.

<set>

Menyediakan wadah template kelas std:: set dan std:: multiset diurutkan asosiatif kontainer atau
set.

<stack>

Menyediakan kelas adaptor wadah std:: stack, stack.

<vector>

Menyediakan wadah template kelas std:: vector sebuah array dinamis.

2.GENERAL

<algorithm>
Menyediakan wadah definisi algoritma banyak.

<functional>
objek Menyediakan beberapa fungsi, dirancang untuk digunakan dengan algoritma standar.

<iterator>
Menyediakan kelas dan template untuk bekerja dengan iterator.

<locale>
Menyediakan kelas dan template untuk bekerja dengan locales.
<memory>
Menyediakan fasilitas untuk manajemen memori di C, termasuk template kelas std:: auto_ptr.

<stdexcept>
Berisi pengecualian kelas standar seperti std:: runtime_error baik yang berasal dari std::
logic_error dan std: pengecualian:.

<utility>
Menyediakan kelas template std:: pair, untuk bekerja dengan pasangan (tupel dua-anggota) dari
objek.

3. STRING

<string>

Menyediakan kelas C string standar dan template.

4. STREAMS, INPUT / OUTPUT

<fstream>

Menyediakan fasilitas untuk input file berbasis dan output. Lihat untuk file.

<ios>

Menyediakan beberapa jenis dan fungsi dasar untuk pengoperasian iostreams.

<iostream.h>
Menyediakan C input dan output fundamental. Lihat iostream.

<iosfwd>

deklarasi maju Menyediakan dari beberapa I / O-kelas yang terkait template.

<iomanip>

Menyediakan fasilitas untuk memanipulasi format output, seperti dasar digunakan ketika
bilangan bulat format dan ketelitian nilai floating point.

<istream>

Menyediakan kelas template std:: kelas pendukung istream dan lainnya untuk input.

<ostream>

Menyediakan kelas template std:: kelas pendukung ostream dan lainnya untuk output.

<sstream>

Menyediakan kelas template std:: kelas pendukung sstream dan lainnya untuk manipulasi string.

<streambuf>

5. NUMERICS

<complex>
Menyediakan template kelas std:: fungsi kompleks dan terkait untuk bekerja dengan bilangan
kompleks.

<numeric>

Menyediakan algoritma untuk pemrosesan numerik

<valarray>

Menyediakan kelas template std:: valarray, sebuah array kelas dioptimalkan untuk pengolahan
numerik.

6. LANGUAGE SUPPORT

<exception>

Menyediakan beberapa jenis dan fungsi yang berkaitan dengan penanganan exception, termasuk
std:: exception, basis kelas dari semua eksdpsi dilemparkan oleh Perpustakaan Standar.

<limits>

Menyediakan kelas template std:: numeric_limits, digunakan untuk menjelaskan sifat dari jenis
numerik mendasar.

<new>

Menyediakan operator baru dan menghapus dan fungsi dan jenis yang menyusun dasar-dasar
manajemen memori C.
<typeinfo>

Menyediakan fasilitas untuk bekerja dengan informasi jenis run-time C.

7. C STANDARD LIBRARY

Setiap header dari C Standard Library disertakan dalam C Standard Library dengan nama yang
berbeda, yang dihasilkan dengan menghapus h., Dan menambahkan 'c' di awal, untuk 'time.h'
contoh menjadi 'kriminal'. Satu-satunya perbedaan antara header dan tradisional C Standard
Library header adalah bahwa fungsi yang sedapat mungkin harus ditempatkan ke dalam std::
namespace (beberapa komphler walaupun sebenarnya melakukan hal ini). Dalam ISO C, fungsi
di perpustakaan standar yang diperbolehkan untuk dilaksanakan oleh macro, yang tidak
diperbolehkan oleh ISO C.

* <cassert>
* <cctype>
* <cerrno>
* <cfloat>
* <climits>
* <cmath>
* <csetjmp>
* <csignal>
* <cstdlib>
* <cstddef>
* <cstdarg>
* <cstdio>
* <cstring>
* <ctime>
* <cwchar>
* <cwctype>
Environment Management Routines
MPI_Abort MPI_Errhandler_create MPI_Errhandler_free MPI_Errhandler_get
MPI_Errhandler_set MPI_Error_class MPI_Error_string MPI_Finalize
MPI_Get_processor_n MPI_Get_version MPI_Init MPI_Initialized
ame
MPI_Wtick MPI_Wtime
Point-to-Point Communication Routines
MPI_Bsend MPI_Bsend_init MPI_Buffer_attach MPI_Buffer_detach
MPI_Cancel MPI_Get_count MPI_Get_elements MPI_Ibsend
MPI_Iprobe MPI_Irecv MPI_Irsend MPI_Isend
MPI_Issend MPI_Probe MPI_Recv MPI_Recv_init
MPI_Request_free MPI_Rsend MPI_Rsend_init MPI_Send
MPI_Send_init MPI_Sendrecv MPI_Sendrecv_replace MPI_Ssend
MPI_Ssend_init MPI_Start MPI_Startall MPI_Test
MPI_Test_cancelled MPI_Testall MPI_Testany MPI_Testsome
MPI_Wait MPI_Waitall MPI_Waitany MPI_Waitsome
Collective Communication Routines
MPI_Allgather MPI_Allgatherv MPI_Allreduce MPI_Alltoall
MPI_Alltoallv MPI_Barrier MPI_Bcast MPI_Gather
MPI_Gatherv MPI_Op_create MPI_Op_free MPI_Reduce
MPI_Reduce_scatter MPI_Scan MPI_Scatter MPI_Scatterv
Process Group Routines
MPI_Group_compare MPI_Group_difference MPI_Group_excl MPI_Group_free
MPI_Group_incl MPI_Group_intersection MPI_Group_range_exc MPI_Group_range_i
l ncl
MPI_Group_rank MPI_Group_size MPI_Group_translate_r MPI_Group_union
anks
Communicators Routines
MPI_Comm_compare MPI_Comm_create MPI_Comm_dup MPI_Comm_free
MPI_Comm_group MPI_Comm_rank MPI_Comm_remote_gr MPI_Comm_remote
oup _size
MPI_Comm_size MPI_Comm_split MPI_Comm_test_inter MPI_Intercomm_cre
ate
MPI_Intercomm_mer
ge
Derived Types Routines
MPI_Type_commit MPI_Type_contiguous MPI_Type_extent MPI_Type_free
MPI_Type_hindexed MPI_Type_hvector MPI_Type_indexed MPI_Type_lb
MPI_Type_size MPI_Type_struct MPI_Type_ub MPI_Type_vector
Virtual Topology Routines
MPI_Cart_coords MPI_Cart_create MPI_Cart_get MPI_Cart_map
MPI_Cart_rank MPI_Cart_shift MPI_Cart_sub MPI_Cartdim_get
MPI_Dims_create MPI_Graph_create MPI_Graph_get MPI_Graph_map
MPI_Graph_neighbor MPI_Graph_neighbors_ MPI_Graphdims_get MPI_Topo_test
s count
Miscellaneous Routines
MPI_Address MPI_Attr_delete MPI_Attr_get MPI_Attr_put
MPI_Keyval_create MPI_Keyval_free MPI_Pack MPI_Pack_size
MPI_Pcontrol MPI_Unpack
3. INSTALASI MPI

Platform Windows

Pada ilustrasi ini saya akan menggunakan Visual Studio 2010 dengan template Visual C++ dan
library MPI yang digunakan adalah Microsoft MPI yang merupakan realisasi dari MPICH.

Pada Visual C++ 2010, pilih template Win32 Project pada kategori Win32 seperti gambar
dibawah ini

Isi nama project dan lokasinya. Jika selesai klik tombol OK. Selanjutnya akan muncul kotak
dialog sepertid dibawah ini
Klik tombol Next.

Kemudian pilih Console application dan lainnya tidak dicentang seperti dibawah ini. Jika
selesai klik tombolFinish
Setelah itu Visual C++ 2010 akan menghasilkan project solution seperti dibawah ini.
Langkah selanjutnya, kita melakukan konfigurasi Visual C++ dengan Microsoft MPI.

Klik kanan project kita dan pilih menu Properties sehingga akan muncul kotak dialog seperti
dibawah ini.
Klik bagian C/C++ –> General dan pada bagian Additional Include Directories tambahkan
folder Include dari Microsoft MPI misalkan: C:\Program Files\Microsoft HPC Pack 2008
SDK\Include . Contoh isian seperti gambar diatas.

Selanjutnya dibagian C/C++ –> Advanced. Pilih Compile As dengan Compile as C++ Code
(/TP) seperti gambar dibawah ini
Langkah terakhir konfigurasinya adalah bagian Linker –> General. Pilih Additional Library
Directories dan isi dengan folder Lib dari Microsoft MPI misalkan: C:\Program Files\Microsoft
HPC Pack 2008 SDK\Lib\i386
Jika sudah selesai, klik tombol OK.

Sedangkan kode programnya, kita modifikasi file MPICPP.cpp atau file entry point dari C++.
Selanjutnya tulis kode program dibawah ini

// MPICPP.cpp : Defines the entry point for the console application.


//
#include "stdafx.h"
#include <mpi.h>
#include <iostream>
using namespace std;
int _tmain(int argc, char* argv[])
{
int numberOfProcessors;
int rank;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);
cout<<"Hello MPI\r\n";
MPI_Comm_size(MPI_COMM_WORLD,&numberOfProcessors);
cout<<"Jumlah processor = " <<numberOfProcessors <<endl;
MPI_Get_processor_name(processor_name, &namelen);
cout<<"Nama Processor = "<< processor_name <<endl;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
cout<<"Proses pada " << rank <<endl;
MPI_Finalize();
return 0;
}

Untuk menjalankan seperti biasa, kita gunakan commandline atau langsung ke Windows HPC
Server. Berikut ini contoh hasil kompilasinya
Platform Linux

Pada platform Linux, saya akan menggunakan Linux Ubuntu. Untuk menjalankan MPI dan C++,
pastikan compiler C++ sudah terinstall. Caranya cukup yaitu

sudo apt-get install build-essential

Selanjutnya kita menulis kode program MPI dengan C++. Tulis kode program dibawah ini.

#include "mpi.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int numberOfProcessors;
int rank;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);
cout<<"Hello MPI\r\n";
MPI_Comm_size(MPI_COMM_WORLD,&numberOfProcessors);
cout<<"Jumlah processor = " <<numberOfProcessors <<endl;
MPI_Get_processor_name(processor_name, &namelen);
cout<<"Nama Processor = "<< processor_name <<endl;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
cout<<"Proses pada " << rank <<endl;
MPI_Finalize();
return 0;
}

Simpan dengan file mympi.cpp


Untuk kompilasi dengan MPI kita tidak menggunakan mpicc tapi mpic++ sedangkan untuk
menjalankan aplikasi sama seperti biasa yaitu mpiexec.

Berikut ini contoh kompilasi dan cara mengeksekusinya:

Pemrosesan Paralel
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk
menjalankan sebuah program secara simultan. Parallel processing membuat program berjalan
lebih cepat karena semakin banyak CPU yang digunakan. Tujuan utama dari pemrosesan paralel
adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara
bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

Komputasi paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan
dengan memanfaatkan beberapa komputer secara bersamaan.Biasanya diperlukan saat kapasitas
yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun
karena tuntutan proses komputasi yang banyak.
Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel
yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak
pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi
pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat
pemrograman paralel untuk merealisasikan komputasi.
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan
eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan
tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan
komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan
dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual
Machine).
Komputasi paralel membutuhkan :
· Algoritma
· bahasa pemrograman
· compiler

Pemrograman Paralel
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan
eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal)
ataupun banyak (prosesor ganda dengan mesin paralel) CPU.Tujuan utama dari pemrograman
paralel adalah untuk meningkatkan performa komputasi.
Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu
komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini
adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual
Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini
memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit
prosesor.Mesin virtual parallel atau Parallel Virtual Machine (PVM) dan Antarmuka Pengiriman
Pesan (MPI) adalah kumpulan library yang memungkinkan kita untuk menulis program
pengiriman pesan paralel menggunakan bahasa pemrograman C dan FORTRAN agar bisa
berjalan pada system paralel.
Kemampuan sistem paralel tergantung dari kemampuan pemrogram untuk membuat
aplikasi terdistribusi ketika dijalankan pada sistem paralel. Jika node slave mempunyai prosessor
lebih dari satu maka pemrogram harus memperhitungkan kemungkinan paralelisme 2 level:
Paralelisme di dalam slave node (intra-node parallelism) dan paralelisme antar slave node (inter-
node parallelism).
Inter-node parallelism menggunakan shared memory dalam node sehingga tidak
melakukan pertukaran data secaraexplicit. Sedangkan Inter-node parallelism melakukan
pertukaran data lewat media yang menghubungkan antara node slave yang ada.
Terdapat tiga metode untuk mengimplementasikan Inter-node parallelism yaitu :
a. Dengan cara membuat protokol komunikasi ad hoc level rendah. Contohnya dengan
menggunakan socket interface.
b. Dengan menggunakan distributed communication library. Contohnya dengan
menggunakan Message Passing Interface (MPI) library
c. Dengan memanfaatkan layer software dengan maksud untuk menyembunyikan
interconnect dari programmer.

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 :
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.
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, anda dapat memakai tools :
o PVM versi 3.4.5, virtual machine dan routine untuk komputasi parallel
o rsh (remote shell), aplikasi untuk authentikasi dan komunikasi proses antar komputer
o Xpvm versi 1.2, , interface grafis untuk PVM dengan animasi eksekusi komputasi parallel
yang dapat dilihat dilayar
Berikut adalah hasil video capture (dilinux) kinerja komputasi paralel dengan PVM untuk
menyelesaikan perkalian matriks :
[youtube bAusnHxFzXY]