Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU
untuk menjalankan sebuah program secara simultan.
Idealnya, parallel processing membuat program berjalan lebih cepat karena
semakin banyak CPU yang digunakan.
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. Kasus kedua umum
ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang
fisika (fisika komputasi), kimia (kimia komputasi) dll.
TUJUAN PARALLEL PROCESSING
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.
PARALLEL PROCESSING
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.
SIMD
SIMD
MISD
MIMD
SISD
Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya
yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya
digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model
untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi
SIMD
MISD
MIMD
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja
komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan
data yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan
kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena
komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus
mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita
hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil
atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.
Komputasi paralel membutuhkan :
algoritma
bahasa pemrograman
compiler
http://bagusonthespot.blogspot.com/2012/04/parallel-processing.html
Konsep Paralel
Banyak perkembangan-perkembangan baru dalam arsitektur komputer yang
didasarkan pada konsep pemrosesan paralel. Pemrosesan paralel dalam sebuah
komputer dapat didefinisikan sebagai pelaksanaan instruksi-instruksi secara
bersamaan waktunya. Hal ini dapat menyebabkan pelaksanaan kejadian-kejadian
(1) dalam interval waktu yang sama, (2) dalam waktu yang bersamaan atau (3)
dalam rentang waktu yang saling tumpang tindih.
Sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat,
komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan
pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism)
untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan
yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia,
perhitungan aerodinamika dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel,
perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan
analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan
kepada algoritma untuk menyelesaikan masalah numerik, karena masalah numerik
merupakan salah satu masalah yang memerlukan kecepatan komputasi yang
sangat tinggi.
Arsitektur Paralel
Paralelisme dalam suatu komputer dapat diaplikasikan pada beberapa tingkatan,
seperti berikut:
1. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau fase-fase suatu pekerjaan.
Hal ini menjadi prinsip dasar dari multiprogramming.
2. Tingkat prosedur: antara prosedur-prosedur dan di dalam loop. Hal ini harus
tercakup sebagai hal yang penting bagi suatu bahasa.
3. Tingkat instruksi: antara fase-fase sebuah siklus instruksi, yaitu fetch, decode dan
eksekusi suatu instruksi.
4. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit aritmatika. Salah satu
contohnya adalah adder paralel.
Telah banyak usaha untuk mengklasifikasikan perancangan arsitektur komputer
paralel. Namun tidak ada satupun yang mampu memisahkan semua jenis
perancangan menjadi kelompok-kelompok yang berbeda. Skema klasifikasi yang
paling umum digunakan adalah taksonomi Flynn. Kita akan membahas pula dua
skema lainnya yaitu: Shore dan Feng.
Klasifikasi Flynn
Michael J. Flynn memperkenalkan suatu skema untuk mengklasifikasikan arsitektur
suatu komputer dengan melihat bagaimana mesinnya menghubungkan instruksiinstruksinya ke data yang sedang diproses. Berikut klasifikasinya:
1. SISD: single instruction stream, single data stream. Merupakan suatu komputer
serial konvesional dimana instruksi-instruksi dijalankan satu per satu dan sebuah
instruksi tunggal berhubungan dengan paling banyak satu operasi data.
2. SIMD: single instruction stream, multiple data stream. Dalam sebuah komputer
SIMD, suatu instruksi tunggal mengawali sejumlah besar operasi.
3. MISD: multiple instruction stream, single data stream. Kelas MISD melaksanakan
beberapa operasi instruksi secara bersamaan pada sebuah item data tunggal.
4. MIMD: multiple instruction stream, multiple data stream. Sebuah komputer MIMD
dicirikan oleh eksekusi lebih dari satu instruksi pada saat yang bersamaan, dimana
setiap instruksi beroperasi pada beberapa aliran data.
Klasifikasi Shore
J.E. Shore membuat klasifikasi arsitektur komputer yang didasarkan pada organisasi
bagian-bagian penyusun suatu komputer dan membedakannya menjadi enam jenis
mesin.
1. Mesin I. Pada komputer ini, satu instruksi dikerjakan pada suatu waktu dan
masing-masing beroperasi pada satu word dalam suatu waktu.
2. Mesin II. Komputer ini juga menjalankan satu instruksi pada suatu waktu, namun
ia beroperasi pada sebuah irisan dari suatu bit dalam suatu waktu, bukannya semua
bit dalam suatu word data.
3. Mesin III. Sebuah komputer dalam kelas ini memiliki dua unit pengolahan yang
dapat beroperasi pada data, satu word dalarn suatu waktu atau suatu irisan bit
dalam suatu waktu.
4. Mesin IV. Komputer jenis ini dicirikan oleh sejumlah elemen (unit pengolahan dan
unit memori), semua di bawah kendali sebuah unit kendali logika (CLU) tunggal.
5. Mesin V. Mesin V dihasilkan dengan mengubah Mesin IV sedemikian sehingga
elemen-elemen pengolahan dapat berkomunikasi dengn tetangga terdekat
mereka.
6. Mesin VI. Komputer ini, disebut sebagai array logika-dalam-memori, merupakan
sebuah mesin dengan logika prosesor yang tersebar dalam memori.
Klasifikasi Feng
Tse-yum Feng (1972) menyarankan pengklasifikasian arsitektur komputer atas
tingkatan paralelisme mereka. Tingkatan paralelisme (degree of parallelism) diwakili
oleh pasangan (n, m) dimana n merupakan panjang word dan m adalah panjang
irisan bit. Pasangan ini diklasifikasikan menjadi empat kelompok sebagai berikut:
1. Jika n = 1 dan m = I maka tidak terjadi paralelisme. Word dan bit diproses satu
per satuan waktu. Hal ini disebut sebagai word serial/bit serial(WSBS).
2. Jika n> 1 dan m = 1 maka paralelisme itu disebut sebagai word paralel/bit serial
(WPBS). Dalam hal ini, semua n irisan bit diproses satu per satuan waktu.
3. Paralelisme word serial/bit paralel (WSBP) terjadi jika n = 1 dan m> 1. Dengan
demikian sejumlah n word diproses satu per satuan waktu tetapi sejumlah m bit dan
masing-masing word diproses secara paralel.
4. Kategori terakhir disebut sebagai word paralel/bit paralel (WPBP) dan merupakan
suatu paralelisme dimana n > 1 dan m > 1. Dalam hal ini, sejumlah nm bit diproses
secara bersamaan.
Komputer sekuensial - berdasarkan klasifikasi Flynn adalah kelompok komputer
SISD - hanya mempunyai satu unit pengendali untuk menentukan instruksi yang
akan dieksekusi. Pada setiap satuan waktu hanya satu instruksi yang dapat
dieksekusi, dimana kecepatan akses ke memori dan kecepatan piranti masukan dan
keluaran dapat memperlambat proses komputasi. Beberapa metoda dibangun
untuk menghindari masalah tersebut, seperti penggunaan cache memory. Namun
komputer sekuensial ini tetap mengalami keterbatasan jika menangani masalah
yang memerlukan kecepatan tinggi. Hal-hal tersebut di atas pada akhirnya
melatarbelakangi lahirnya sistem komputer paralel.
Berdasarkan klasifikasi Flynn, komputer paralel termasuk kelompok SIMD atau
MIMD. Komputer paralel mempunyai lebih dari satu unit pemroses dalam sebuah
komputer yang sama. Hal yang membuat suatu komputer dengan banyak prosesor
disebut sebagai komputer paralel adalah bahwa seluruh prosesor tersebut dapat
beroperasi secara simultan. Jika tiap-tiap prosesor dapat mengerjakan satu juta
operasi tiap detik, maka sepuluh prosesor dapat mengerjakan sepuluh juta operasi
tiap detik, seratus prosesor akan dapat mengerjakan seratus juta operasi tiap
detiknya[Les93].
Pada dasarnya aktivitas sebuah prosesor pada komputer paralel adalah sama
dengan aktivitas sebuah prosesor pada komputer sekuensial. Tiap prosesor
membaca (read) data dari memori, memprosesnya dan menuliskannya (write)
kembali ke memori. Aktivitas komputasi ini dikerjakan oleh seluruh prosesor secara
paralel.
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. PVM dapat
menangani semua pengiriman proses, konversi data, dan penjadwalan task secara
message passing untuk sistem yang tidak kompatibel sekalipun.
Sistem PVM terdiri dari dua bagian. Bagian pertama adalah daemon yang diberi
nama pvmd. Pvmd diaktifkan di setiap komputer yang akan membentuk mesin
virtual. 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. 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.
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. 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 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. 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
Konsep Paralel
Banyak perkembangan-perkembangan baru dalam arsitektur komputer yang
didasarkan pada konsep pemrosesan paralel. Pemrosesan paralel dalam sebuah
komputer dapat didefinisikan sebagai pelaksanaan instruksi-instruksi secara
bersamaan waktunya. Hal ini dapat menyebabkan pelaksanaan kejadian-kejadian
(1) dalam interval waktu yang sama, (2) dalam waktu yang bersamaan atau (3)
dalam rentang waktu yang saling tumpang tindih.
Arsitektur Paralel
Paralelisme dalam suatu komputer dapat diaplikasikan pada beberapa tingkatan,
seperti berikut:
1. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau fase-fase suatu pekerjaan.
Hal ini menjadi prinsip dasar dari multiprogramming.
2. Tingkat prosedur: antara prosedur-prosedur dan di dalam loop. Hal ini harus
tercakup sebagai hal yang penting bagi suatu bahasa.
3. Tingkat instruksi: antara fase-fase sebuah siklus instruksi, yaitu fetch, decode dan
eksekusi suatu instruksi.
4. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit aritmatika. Salah satu
contohnya adalah adder paralel.
Klasifikasi Flynn
Michael J. Flynn memperkenalkan suatu skema untuk mengklasifikasikan arsitektur
suatu komputer dengan melihat bagaimana mesinnya menghubungkan instruksiinstruksinya ke data yang sedang diproses. Berikut klasifikasinya:
1. SISD: single instruction stream, single data stream. Merupakan suatu komputer
serial konvesional dimana instruksi-instruksi dijalankan satu per satu dan sebuah
instruksi tunggal berhubungan dengan paling banyak satu operasi data.
2. SIMD: single instruction stream, multiple data stream. Dalam sebuah komputer
SIMD, suatu instruksi tunggal mengawali sejumlah besar operasi.
3. MISD: multiple instruction stream, single data stream. Kelas MISD melaksanakan
beberapa operasi instruksi secara bersamaan pada sebuah item data tunggal.
4. MIMD: multiple instruction stream, multiple data stream. Sebuah komputer MIMD
dicirikan oleh eksekusi lebih dari satu instruksi pada saat yang bersamaan, dimana
setiap instruksi beroperasi pada beberapa aliran data.
Klasifikasi Shore
J.E. Shore membuat klasifikasi arsitektur komputer yang didasarkan pada organisasi
bagian-bagian penyusun suatu komputer dan membedakannya menjadi enam jenis
mesin.
1. Mesin I. Pada komputer ini, satu instruksi dikerjakan pada suatu waktu dan
masing-masing beroperasi pada satu word dalam suatu waktu.
2. Mesin II. Komputer ini juga menjalankan satu instruksi pada suatu waktu, namun
ia beroperasi pada sebuah irisan dari suatu bit dalam suatu waktu, bukannya semua
bit dalam suatu word data.
3. Mesin III. Sebuah komputer dalam kelas ini memiliki dua unit pengolahan yang
dapat beroperasi pada data, satu word dalarn suatu waktu atau suatu irisan bit
dalam suatu waktu.
4. Mesin IV. Komputer jenis ini dicirikan oleh sejumlah elemen (unit pengolahan dan
unit memori), semua di bawah kendali sebuah unit kendali logika (CLU) tunggal.
5. Mesin V. Mesin V dihasilkan dengan mengubah Mesin IV sedemikian sehingga
elemen-elemen pengolahan dapat berkomunikasi dengn tetangga terdekat
mereka.
6. Mesin VI. Komputer ini, disebut sebagai array logika-dalam-memori, merupakan
sebuah mesin dengan logika prosesor yang tersebar dalam memori.
Klasifikasi Feng
Tse-yum Feng (1972) menyarankan pengklasifikasian arsitektur komputer atas
tingkatan paralelisme mereka. Tingkatan paralelisme (degree of parallelism) diwakili
oleh pasangan (n, m) dimana n merupakan panjang word dan m adalah panjang
irisan bit. Pasangan ini diklasifikasikan menjadi empat kelompok sebagai berikut:
1. Jika n = 1 dan m = I maka tidak terjadi paralelisme. Word dan bit diproses satu
per satuan waktu. Hal ini disebut sebagai word serial/bit serial(WSBS).
2. Jika n> 1 dan m = 1 maka paralelisme itu disebut sebagai word paralel/bit serial
(WPBS). Dalam hal ini, semua n irisan bit diproses satu per satuan waktu.
3. Paralelisme word serial/bit paralel (WSBP) terjadi jika n = 1 dan m> 1. Dengan
demikian sejumlah n word diproses satu per satuan waktu tetapi sejumlah m bit dan
masing-masing word diproses secara paralel.
4. Kategori terakhir disebut sebagai word paralel/bit paralel (WPBP) dan merupakan
suatu paralelisme dimana n > 1 dan m > 1. Dalam hal ini, sejumlah nm bit diproses
secara bersamaan.
virtual. 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. 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.
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. 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 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. 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.
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.
http://rrezzablog.blogspot.com/2009/11/parallel-processing.html
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
Algroritma
Bahasa Pemrograman
Compiler
Pemrograman Paralel
Mesin virtual parallel atau Parallel Virtual Machine (PVM) dan Antarmuka Pengiriman
Pesan (MPI) adalah kumpulan library yang memungkinkan kita untuk menulis
Dengan
memanfaatkan
layer
software
dengan
menyembunyikan interconnect dari programmer.
maksud
untuk
Passing Message
Passing Message adalah secara luas menggunakan model programming yang
paralel Pesan yang lewat/ sampaikan perbentengan dengan menciptakan
ditetapkan perbaiki jumlah tugas yang serupa dengan uniknya yang saling
berhubungan dengan mengirimkan dan menerima pesan ke dan dari satu sama
lain.
Message passing adalah paradigma fundamental untuk aplikasi DS. Suatu proses
mengirimkan message yang mewakili suatu request, Message di sampaikan ke
penerima yang kemudian memproses request tsb dan mengirim pesan balasan.
Kemudian, balasan tersebut memicu request lainnya, yang berlanjut pada balasan
berikutnya dan seterusnya. Operasi dasar yang dibutuhkan untuk mendukung
paradigma message passing adalah send dan receive. Untuk komunikasi yang
connection-oriented, operasi connect dan disconnect juga dibutuhkan Dengan
abstrasi yang disediakan oleh model ini, proses yang saling terkoneksi melakukan
operasi input dan output satu sama lainnya, seperti halnya pada operasi I/O pada
file. Operasi I/O menyembunyikan detail komunikasi jaringannya pada level sistem
operasi. Antar muka pemrograman aplikasi soket berdasarkan pada paradigma ini.
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.
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.
yang tersirat dari namanya bertugas menerima tugas dari user dan menjadwalkan
tugas tersebut pada beberapa node didalam sistem parallel sesuai kebutuhan.
Ada beberapa versi MPI, salah satu yang open source adalah open MPI
http://www.open-mpi.org/.
http://sellyinthewords.blogspot.com/2013/01/pemrosesan-paralel-pvm-dan-mpi.html