Top Banner
Pengantar Sistem Terdistribusi Parallel Processing 4IA13 Kelompok 10 : - Erlangga Indra Saputra (53409127) - Lutfi Prayudi ( 51409697) - Sarah Nur Fitri (51409078)
31

Parallel Processing

Nov 23, 2015

Download

Documents

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

Pengantar Sistem Terdistribusi

Pengantar Sistem Terdistribusi

Parallel Processing4IA13Kelompok 10:- Erlangga Indra Saputra (53409127)

Lutfi Prayudi (51409697)

Sarah Nur Fitri (51409078)

Parallel ProcessingKonsep Parallelkonsep dari pemrosesan paralel (parallel processing), yaitu penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.Sedangkan komputasi paralel adalah salah satu teknik untuk 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.

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.Komputasi Paralel merupakan salah satu teknologi paling menarik sejak ditemukannya komputer pada tahun 1940-an. Terobosan dalam pemorosesan parallel selalu berkembang dan mendapatkan tempat disamping teknologi-teknologi lainnya sejak Era Kebangkitan (1950-an), Era Mainframe (1960-an), Era Minis (1970-an), Era PC (1980-an), dan Era Komputer Paralel (1990-an). Dengan berbagai pengaruh atas perkembangan teknologi lainnya, dan bagaimana teknologi ini mengubah persepsi terhadap komputer, dapat dimengerti betapa pentingnya komputasi parallel itu.Inti dari komputasi parallel yaitu hardware, software, dan aplikasinya. Paralel prosesing merupakan suatu pemrosesan informasi yang lebih mendekatkan pada manipulasi rata-rata dari elemen data terhadap satu atau lebih penyelesaian proses dari sebuah masalah. Dengan kata lain komputasi parallel adalah komputer dengan banyak processor dapat melakukan parallel processing dengan cara membagi-bagi proses ke source-source yang dimiliki.Paradigma pemrosesan parallel bergantung pada model SIMD (single instruction multiple data), dan paradigma functional dataflow yang memperkenalkan konsep model MIMD (Multiple Instrution Multiple Data). Suatu program parallel memerlukan koordinasi ketika sebuah tugas bergantung pada tugas lainnya. Ada dua macam bentuk koordinasi pada komputer parallel : asynchronous dan synchronous. Bentuk synchronous merupakan koordinasi pada hardware yang memaksa semua tugas agar dilaksanakan pada waktu yang bersamaan dengan mengesampingkan adanya ketergantungan tugas yang satu dengan yang lainnya. Sementara bentuk asynchronous mengandalkan mekanisme pengunci untuk mengkoordinasikan processor tanpa harus berjalan bersamaan.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. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.Performa dalam pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah. Adapun tipe-tipe Paralelisme adalah sebagai berikut:1. Result ParalelismeResult Paralelisme yang sering disebut sebagai Embarrassingly Parallel atau Perfect Paralel adalah tipe paralelisme dimana komputasinya dapat dibagi menjadi beberapa tugas independen yang mempunyai struktur sama. Data struktur suatu tugas dibagi menjadi beberapa bagian yang berstruktur sama. Contoh tugas yang bisa diselesaikan dengan Result Parallelism adalah Simulasi Montecarlo.2. Specialist ParalelismeCara kerja Specialist Parallelisme adalah dengan mengerjakan beberapa tugas secara bersamaan pada prosesor yang berbeda . Setiap komputer mengerjakan tugas tertentu. Contohnya penggunaanya adalah pada simulasi pabrik kimia, satu prosesor mensimulasikan proses sebelum reaksi kimia, satu prosesor mensimulasikan reaksi pada tahap awal, dan prosesor lainnya mensimulasikan proses penyulingan hasil, dan seterusnya.3. Agenda ParalelismeTipe paralelisme ini mempunyai daftar yang harus dikerjakan oleh sistem komputer . Semua komputer yang terdapat pada sistem dapat mengakses daftar tersebut. Pada Model MW (Manager Worker) terdapat pengelompokan komputer menjadi dua yaitu :a) Manager : bertugas memulai perhitungan, memonitor kemajuan tugas, melayani permintaan worker. User berkomunikasi dengan sistem komputer melalui komputer yang berfungsi sebagai manager ini.b) Worker : mengerjakan tugas-tugas yang diberikan oleh manager. Kerja komputer ini dimulai setelah ada perintah dari manager dan diakhiri oleh manager.Pesan Terdistribusi dan Lingkungan Pemrograman (Distributed Messaging and Programming Enviroment) hubungannya dengan pemrosesan paralel ialah pesan sebagai sesuatu ( objek ) pada pemrosesan itu sendiri sehingga kita harus mendeskripsikan pesan ( message ) itu .Messages adalah urutan bytes yang dikirimkan antar proses. Pengirim dan penerima harus mempunyai kesepakatan mengenai struktur pesan sehingga isi pesan dapat diterjemahkan dengan benar. Pada prinsipnya cara pengiriman pesan adalah sederhana. Proses A mengirim data buffer sebagai sebuah pesan ke proses B. Pada saat bersamaan proses B menunggu datangnya pesan dari proses A. Ketika pesan tersebut maka proses B akan men-copy pesan tersebut di memori lokalnya. Adapun Metode Pengiriman pesan (message passing) terdapat beberapa metode dalam pengiriman pesan yaitu :

Synchronous Message PassingCara pengiriman menggunakan metode ini ialah pengirim menunggu untuk mengirim pesan sampai penerima siap untuk menerima pesan. Oleh karena itu tidak ada buffering. Selain itu Pengirim tidak bisa mengirim pesan untuk dirinya sendiri. Ansynchronous Message PassingPengirim akan mengirim pesan kapanpun dia mau. Pengirim tidak peduli ketika penerima belum siap untuk menerima pesan. Oleh karena itu diperlukan buffering untuk menampung pesan sementara sampai penerima siap menerima pesan. Selain itu pengirim dapat pesan untuk dirinya sendiri. Selain berdasarkan metode pengiriman pesan diatas, pengiriman pesan (message passing) dibedakan berdasarkan jumlah penerima pesan yaitu: Point to Point dan Broadcast. Perbedaan mendasar keduanya adalah jumlah penerima yang menerima pesan. Pada Point to Point penerimanya tunggal sedangkan pada broadcast jumlah penerimanya banyak.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. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.Komputasi paralel membutuhkan:

algoritma

bahasa pemrograman

compiler

Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut Distributed Processing Software. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing dapat disebut juga dengan parallel computing.Arsitektur Komputer Paralel

1. Sesuai taksonomiFlynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4, yaitu:A. SISD (Single Instruction Single Data Stream) / Arus Instruksi Tunggal dan Data TunggalB. SIMD (Single Instruction Multiple Data Stream) / Arus Instruksi Tunggal dan Multiple DataC. MISD (Multiple Instruction Single Data Stream) / Arus Multiple Instruksi dan Data TunggalD. MIMD (Multiple Instruction Multiple Data Stream) / Arus Multiple Instruksi dan Multiple Data

A. Organisasi Prosesor SISD

Pada komputer jenis ini, semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanyaoverlappingdalam eksekusi setiap bagian instruksi (pipelining). Komputer tunggal yang mempunyai satu unit control, satu unit prosesor dan satu unit memori. Prosesor tunggal

Aliran instruksi tunggal

Data disimpan dalam memori tunggal

Uni-processor

Keterangan:CU : Control UnitIS : Instruction Stream (Arus Instruksi)PU : Processing Unit (Unit Pengolah yang biasa disebut ALU)DS : Data Stream (Arus Data)MU : Memory Unit (Unit Memori)

B. Single Instruction, Multiple Data Stream SIMD

Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Komputer yang mempunyai beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap prosesor menerima instruksi yang sama dari unit control, tetapi beroperasi pada data yang berbeda. Single machine instruction

Mengontrol eksekusi secara simultan

sejumlah elemen-elemen pengolahan

Berdasarkan Lock-step

Setiap pengolahan elemen memiliki hubungan dengan memori data

Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda

Prosesor Vector and array

C. Multiple Instruction, Single Data Stream MISD

Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda.

Rangkaian dari data

Dikirimkan ke kumpulan prosesor

Setiap prosesor mengeksekusi urutan instruksi yang berbeda

Belum pernah diimplementasikan (komesial)

D. Multiple Instruction, Multiple Data Stream- MIMD

Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yangsama bagi semua pemroses. Organisasi computer yang memiliki kemampuan untuk memproses beberapa program dalam waktu yang sama. Pada umumnya multiprosesor dan multikomputer termasuk ke dalam kategori ini. Kumpulan/sejumlah prosesor

Mengeksekusi secara simultan urutan instruksi yang berbeda

Kumpulan data yang berbeda

SMP, Cluster and sistem NUMA

2. Sesuai taksonomi T. G. Lewis, T. G. Lewis membedakan computer parallel ke dalam dua kelas, berdasarkan ada atau tidak adanya common global clock, sebagai synchronous dan asynchronous.

A. Synchronous

Pada computer parallel yang termasuk dalam kategori ini terdapat koordinasi yang mengatur beberapa operasi untuk dapat berjalan bersamaan sedemikian hingga tidak ada ketergantungan antar operasi Parallelism yang termasuk ke dalam kategori ini adalah vector/array parallelism, SIMD dan systolic parallelism.

Systolic parallel computer adalah multiprocessor dimana data di distribusikan dan di pompa dari memory ke suatu array processor sebelum kembali ke memory.

B. Asynchronous Pada komputer paralel yang termasuk dalam kategori asynchronous, masing-masing prosesor dapat diberi tugas atau menjalankan operasi berbeda dan masing-masing prosesor melaksanakan operasi tersebut secara sendiri-sendiri tanpa perlu koordinasi.

Paradigma yang juga termasuk dalam kategori ini adalah MIMD dan reduksi.

Paradigma reduksi adalah paradigma yang berpijak pada konseph graph reduksi. Program dengan model reduksi diekspresikan sebagai graph alur data. Komputasi berlangsung dengan cara mereduksi graph dan program berhenti jika graph akhirnya hanya mempunyai satu simpul.3. Quinn membedakan paralelisma ke dalam dua jenis yaitu:a. Data Parallelismb. Control ParallelismA. Data Parallelism

Penerapan operasi yang sama secara simultan terhadap elemen-elemen dari kumpulan data.B. Control ParallelismPenerapan operasi-operasi berbeda terhadap elemen-elemen data yang berbeda secara bersamaan. Pada control parallelism dapat terjadi aliran data antar proses-proses dan kemungkinan terjadi aliran data yang kompleks/rumit. Pipeline merupakan satu kasus khusus dari control parallelism dimana aliran data membentuk jalur yang sederhana.Dalam taksonomi arsitektur parallel ada dua keluarga arsitektur parallel yang banyak diterapkan yaitu SIMD dan MIMD, dimana untuk mesin yang murni MISD tidak ada. 1. Arsitektur SIMD

Mesin SIMD secara umum mempunyai karakteristik sebagai berikut: Mendistribusi proses ke sejumlah besar hardware

Beroperasi terhadap berbagai elemen data yang berbeda

Melaksanakan komputasi yang sama terhadap semua elemen data

2. Arsitektur MISD

Prosesor pipeline adalah prosesor MISD yang bekerja berdasarkan prinsip pipelining. Pada pipeline proses dapat dibagi menjadi beberapa tahap dan beberapa proses dapat dilaksanakan secara simultan. Operasi pipeline dapat dilaksanakan secara siklus yaitu cyclic pipeline, dimana dapat dibagi dalam 5 tahap:

Operasi baca (dari shared memories)

Operasi transfer (memori ke elemen pemroses)

Operasi eksekusi (di elemen pemroses)

Operasi transfer (elemen pemroses ke memori)

Operasi simpan (di shared memories)

3. Arsitektur MIMD

Sistem MIMD merupakan system multiprocessing atau multicomputer dimana tiap prosesor mempunyai unit control dan program sendiri. Karakteristiknya:

Proses di distribusikan ke beberapa prosesor independent

Berbagi sumber daya, termasuk memori, processor

Operasi tiap prosesor secara independent dan simultan

Tiap processor menjalankan programnya sendiri

Komputer MIMD: system tightly coupled (global memory) dan loosely coupled (local memory).

4. Arsitektur Hybrid SIMD-MIMD

Arsitektur hybrid SIMD-MIMD adalah system pemrosesan parallel dengan struktur yang dapat diubah sebagai satu atau lebih arsitektur SIMD dan/ atau MIMD independen dengan ukuran yang bervariasi. Ada tiga kategori utama arsitektur SIMD-MIMD:

1. PASM

: Partionable SIMD-MIMD systems

2. VLIW

: Very Long Instruction Word systems

3. MSIMD: Multiple SIMD systems

Parallel Virtual Machine (PVM)

Parallel Virtual Machine (PVM) 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 4semua), 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 paralel. Bila nama user pada semua komputer sama misailnya 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. Dapatkan IP masing-masing komputer pada file /etc/hosts/ host.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 dilakukan.

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 di sistem.

Gambar program PVM

Komponen komponen PVM

Perangkat lunak PVM terdiri dari dua komponen utama, yaitu :

1. PVM daemon

Daemon dari PVM, atau disebut PVM daemon (pvmd). Daemon adalah semacam program yang berjalan di belakang dan biasanya menangani program dari klien. Komponen ini berada pada setiap komputer yang terhubung dalam virtual machine. PVM Berguna untuk membentuk konfigurasi host dalam PVM dan mengkoordinir komunikasi antar host. Pvmd yang diaktifkan pertama kali disebut sebagai master, sedangkan pvmd yang diaktifkan selanjutnya disebut sebagai slave. pvmd harus aktif pada setiap host yang membentuk konfigurasi PVM. Saat suatu pvmd mengalami time out, maka pvmd tersebut akan menghentikan semua operasi yang sedang berlangsung.

2. 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. Packing dan unpacking data PVM dihindari dengan menggunakan tipe data yang didefinisikan dalam parameter send/receive bersama dengan sumber dan tujuan pesan. Data di-packed dalam buffer send sebelum dikirim. Proses penerimaan harus meng-unpack isi buffer receive tergantung dari format data tersebut. Rutin packing dan unpacking untuk masing-masing tipe data.

Message Passing Interface (MPI)

Message Passing Interface (MPI) adalahsebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara parallel denganspesifikasi library pemrograman untuk meneruskan pesan (message-passing), yang diajukan sebagai standar oleh berbagai komite dari vendor, pelaksana dan Pemakai.MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan.

Message Passing Interface bertugas untuk mengirim data antar komputer di dalam sistem paralel (biasanya disebut sebagai node atau host). Job scheduler seperti yang tersirat dari namanya bertugas menerima tugas dari user dan menjadwalkan tugas tersebut pada beberapa node didalam sistem parallel sesuai kebutuhan.

MPI digunakan secara luas mengingat :

telah memiliki standar;

dirancang berkinerja tinggi pada mesin-mesin paralel;

tersedia secara bebas maupun komersial;

dikembangkan banyak pihak;

informasi penerapan dan pengujian dalam berbagai bahasa pemrograman dan sistem telah tersedia.

Kegunaan MPI yang lain adalah :

menulis kode paralel secara portable

mendapatkan performa yang tinggi dalam pemrograman paralel, dan

menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidakbegitu cocok dengan model data parallel.

Kemampuan MPI digunakan untuk menginterpretasikan bahasa pemrograman matrik kemampuan dynamic linking dari bahasa tersebut. Fungsi library dari paket MPI dapat digabungkan dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan bahasa pemrograman GNU Octave oleh Fernandez Baldomero .

Penggunaan MPITB dengan pertimbangan fungsionalitas dan kelengkapannya disamping fakta bahwa MPITB dan GNU Octave adalah bebas digunakan bahkan untuk keperluan komersial.

Ada beberapa versi MPI, salah satu yang open source adalah open MPIhttp://www.open-mpi.org/.

Dalam pemodelan menggunakan message-passing, suatu proses (process) adalah sebuah pencacah program dan ruang alamat. Proses dapat memiliki banyak thread (pencacah program dan memory lokal) yang saling berbagi ruang alamat. MPI dalam hal ini berfungsi sebagai alat komunikasi di antara proses, yang saling memiliki ruang terpisah. Komunikasi ini terutama berupa sinkronisasi dan perpindahan data antar proses. Informasi dari domain komunikasi seluruh proses disimpan di sebuah variabel yang disebut commun-cators, misalnya MPI_COMM_WOLRD yang mencakup keseluruhan proses. Paralelisme dalam MPI bersifat Multiple Instruction Multiple Data (MIMD).

Pemrograman paralel menggunakan MPI bersifat eksplisit, yaitu ditentukan dalam program secara jelas. Dalam melakukan komunikasi data antar proses, pembuat program perlu menentukan mekanisme apa yang digunakan dari fungsi-fungsi yang tersedia. Disediakan beberapa fungsi dasar untuk keperluan ini, yaitu MPI_Send (mengirim), MPI_Recv (menerima), dan MPI_Sendrecv (mengirim dan menerima sekali-gus). Fungsi-fungsi ini masuk dalam kelompok ko-munikasi titik-ke-titik (point-to-point). Komunikasi dalam MPI bersifat kooperatif, yaitu tiap-tiap proses saling bekerjasama.

Parameter data atau message dalam fungsi-fungsi komunikasi memiliki struktur dasar, yaitu: Alamat buffer data untuk mengirim atau menerima.

Ukuran dari buffer data.

Jenis data pada buffer, berupa konstanta tertentu misalnya MPI_INTEGER,

MPI_CHAR dan MPI_DOUBLE.

Proses tujuan, berupa suatu integer rank dari proses.

Tag dari message, dapat digunakan sebagai penanda oleh proses.

Operasi dari fungsi-fungsi komunikasi titik-ke-titik memiliki 2 mode, yaitu blocking dan non-blocking. Pada bentuk blocking maka proses akan menunggu operasi kirim dan terima data selesai, sedangkan non- blocking menggunakan event untuk memberitahu proses ketika terjadi kirim atau terima data. Dalam tiap mode adalah penting untuk menjaga agar setiap proses yang berkomunikasi tidak mengalami deadlock, yaitu saling tunggu yang tidak berkesudahan.

MPI telah memiliki mekanisme agar deadlock tidak terjadi, tetapi dalam kondisi tertentu ini tidak terhindarkan, misalnya ketika buffer tujuan penuh atau tidak tersedia.

Tujuan dari Message Passing Interface (MPI) ini adalah untuk menyediakan standar pemakaian secara luas untuk menulis program pertukaran pesan.

Teknik Message PassingMessage passing adalah proses pengiriman data, dimana data dari suatu memori disalin ke memori pada prosesor lain.karena proses pengiriman datanya antar memori lokal maka teknik message passing biasanya digunakan untuk model komputasi paralel dengan memori terdistribusi.

Pertukaran Pesan meliputi transfer data dari satu proses (send) ke proses lainnya (receive). Operasi pengirim membutuhkan proses pengiriman untuk menspesifikasikan lokasi data, ukuran, tipe dan tujuan. Operasi penerima harus melakukan penyesuaian dengan operasi pengirim. Perbandingan antara PVM dan MPI

NoPerformansiPVMMPI

1.Karakteristik Interoperability

Program dalam bahasa C dapat mengirim pesan pada program Fortran. Portability

-Komunikasi antara program dalam bahasa C dan Fortran tidak dapat dipenuhi oleh standar MPI

2.Proses control Kemampuan untuk memulai dan mengakhiri task

Mengetahui task yang sedang bekerja (running)

Mengetahui tempat task bekerja (running)- tidak memiliki kemampuan untuk memulai aplikasi paralel

3.Fault ToleranceSupportTidak Support

4.Message Passing- Berurutan

Routin message antar computer dilakukan oleh proses daemon (pvmd)Menggunakan komunikator

5.Model Komunikasi

Routin send :Nonblocking(pvm_psend)

Routin receive : Blocking danNonblocking

(pvm_precv)- Blocking

-Nonblocking :

1.Nonblocking send

(MPI_Isend)

2.Nonblocking receive (MPI_Irecv)

Kelebihan kelebihan :

1. Dengan PVM memungkinkan sekumpulan komputer yang heterogen bersistem operasi Windows yang terhubung lewat jaringan menjadi suatu kekuatan komputasi paralel 2. Daemon pada PVM sangat mempengaruhi proses eksekusi program parallel.

3. PVM bersifat fleksibel. Sehingga kemampuan PVM dalam penulisan program lebih baik

4. PVM mempunyai kendali proses yang lebih baik karena PVM memiliki satuan set fungsi kendali sumber daya yang lebih banyak dibandingkan dengan MPI

5. PVM Mempunyai kemampuan untuk Fault Tolerance guna mengatasi kegagalan task atau kegagalan jaringan dibandingkan dengan MPI

Kekurangan kekurangan

1. MPI tidak portable untuk membentuk jaringan workstation karena MPI tidak mempunyai metode standar untuk memulai task pada host yang terpisah.2. PVM mempunyai set fungsi komunikasi lebih sedikit dibandingkan dengan MPI.

KesimpulanPemrosesan paralel dipergunakan untuk memudahkan user dalam berinteraksi dari satu sistem ke sistem yang lain, dengan tujuan untuk membagi beban yang terdapat pada suatu sistem sehingga satu masalah dipecahkan secara bersama-sama. Dan keberhasilan pemrosesan paralel itu dapat dilihat dari kecepatan (speed up) yang diperoleh dari teknik paralel yang digunakan. Tipe tipe paralelisme terbagi tiga yaitu : (1) Result Paralelisme, (2) Specialist Paralelisme , dan (3) Agenda Paralelisme. Dari pemrosesan paralel itu , tentunya ada suatu tindakan dari proses tersebut yang dikenal sebagai sistem pemrosesan paralel. Kemudian, aplikasi dari pemrosesan paralel itu salah satunya untuk desain jaringan.Referensi

1. http://elib.unikom.ac.id/download.php?id=46362. http://staff.blog.ui.ac.id/herik/2008/07/02/pemrograman-paralel-dengan-parallel-virtual-machine-pvm/3. http://catatanpilihan.wordpress.com/category/organisasi-dan-arsitektur-komputer/

4. http://jaketkuning.unsri.ac.id/dwijayantisari/blog/295/

5. http://andri102.wordpress.com/game/soft-skill/konsep-komputasi-parallel-processing/

6. http://en.wikipedia.org/wiki/Parallel_computing7. http://nanxkurniawan.wordpress.com/2010/05/25/komputasi-paralel/8. http://ajuarna.staff.gunadarma.ac.id/Downloads/files/9254/ArtikelEpilog.pdf9. http://rezarachman07.blogspot.com/2012/03/paralel-processing.html10. http://rrezzablog.blogspot.com/2009/11/parallel-processing.html11. http://bagusonthespot.blogspot.com/2012/04/parallel-processing.html12. http://www.gudangmateri.com/2009/12/pemrosesan-paralel.html