MPI (Antarmuka Penyampaian Pesan)
MPI (Message Passing Interface) adalah spesifikasi API (Application Programming Interface) yang memungkinkan terjadinya komunikasi antar komputer pada jaringan dalam usaha untuk menyelesaikan suatu tugas. Paradigma Message - Passing dengan implementasi MPI memberikan suatu pendekatan yang unik dalam membangun suatu perangkat lunak dalam domain fungsi tertentu, yang dalam hal ini memberikan pada lingkungan sistem terdistribusi, sehingga kemampuan pada produk perangkat lunak yang dibangun di atas middleware tersebut untuk dapat mengeksploitasi kemampuan jaringan komputer dan komputasi secara sejajar.
MPI adalah standard 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 konsensus" untuk pustaka message - passing yang dapat digunakan dalam komputasi paralel.MPI menjadi standar defacto yang banyak digunakan dalam proses komunikasi pada model dari program paralel pada sistem memori terdistribusi, yang mana banyak diimplementasikan oleh super komputer dan cluster komputer. Pada spesifikasi MPI-1 tidak memiliki konsep tentang memori bersama, kemudian pada spesifikasi selanjutnya MPI-2 sudah mendukung konsep memori bersama terdistribusi. 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, atau C++, dan bersifat portabel. 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 , manajemen proses dinamis, operasi memori jarak jauh ds
Tujuan MPI
MPI merupakan sebuah protokol komunikasi yang sifatnya tidak tergantung bahasa, portabel dalam mendukung berbagai platform, dan memiliki spesifikasi semantik 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 :
- MPI akan menjadi sebuah library untuk membangun program aplikasi dan bukan sistem operasi terdistribusi.
- MPI akan mendukung thread-safe yang penting dalam symmetric multiprocessor pada lingkungan jaringan komputer yang heterogen.
- MPI akan mampu untuk men-deliver komputasi berperforma tinggi.
- MPI akan bersifat modular, untuk mengakselerasi pengembangan pustaka paralel yang portable.
- MPI akan bersifat extensible, sehingga dapat terus dikembangkan dan memenuhi kebutuhan komputasi masa yang akan datang.
- MPI akan mendukung heterogeneos komputasi.
- 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 proses secara rutin melakukan pertukaran data wilayah dengan sebuah prosessor spesifik lainnya pada setiap langkah kalkulasi, atau pada arsitektur master-salve dimana sang master akan mengirim data tugas baru ke proses slave pada saat data tugas sebelummnya telah selesai. b. Komunikasi Kolektif
Berbeda dengan komunikasi point-to-point, komunikasi kolektif pada MPI API melibatkan komunikasi antara semua proses dalam sebuah proses kelompok (dalam artian total pool Proses atau sebuah subset terdefinisi pada program). Fungsi antarmuka yang sederhana dapat berupa MPI_Bcast (broadcast) yang melakukan pengiriman data dari sebuah proses ke semua proses lainnya pada grup, dan fungsi MPI_Reduce untuk melakukan kebalikannya.
Jenis komunikasi memberikan dua keuntungan, yaitu pertama, operasi memungkinkan pemrogram untuk mengekspresikan operasi yang kompleks dengan menggunakan semantik yang sederhana, kedua, implementasi dapat melakukan pengoptimasian operasi melalui cara yang tidak disediakan oleh tipe operasi komunikasi point-to-point
Tidak ada komentar:
Posting Komentar