MPI and OpenMP for Parallel Computing

Parallel Computing merupakan salah bidang kajian dalam computer science yang memang memfokuskan diri dalam hal komputasi yang dilakukan secara bersamaan. Sudah lama gw pingin oprek2x "barang2x" yang berhubungan dengan parallel computing.

Untuk belajar mengenai parallel computing biasanya para peneliti maupun akademis memanfaatkan library MPI ataupun OpenMP untuk melakukan komputasi paralel. Kedua library ini menggunakan teknik parsing message ke suatu multi-processor atau multi-machine. Misalkan anda mempunyai sejumlah data katakanlah sekitar 1000000 dimana masing-masing data akan dilakukan suatu komputasi tertentu dan selanjutnya digabung diakhir komputer seperti gambar dibawah ini

Kalau ini dilakukan secara serial maka ini bisa spend time yang luar biasa apalagi ketika diharapkan hasilnya bisa real-time sehingga parallel computing menjadi solusi untuk problem ini.

Penerapan MPI & OpenMP pada OS Windows
Pada OS Windows kita dapat memanfaatkan MPI dan OpenMP. Untuk keperluan ini, kita bisa memanfaatkan Visual C++ yang satu package dengan Visual Studio.NET 2003 dan Visual Studio 2005.

Sedangkan bagian infrastructure kita bisa memafaatkan Windows Cluster (HPC). Sistem clustering yang disini secara arsitektur dari socket bisa kita lihat pada gambar dibawah ini:


 Sedangkan untuk struktur logical view bisa dilihat pada gambar dibawah ini

 

MPI dan Visual C++ 2005

MPI (Message Passing Interface) adalah suatu API yang memungkinkan kita passing suatu command ke suatu mutli processor untuk melakukan sesuatu. Ada dua MPI standard yang bisa kita pakai yaitu:

  • MPI 1.1 , cek http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html
  • MPI 2.0 , cek http://www.mpi-forum.org/docs/mpi-20-html/mpi2-report.html

Sedangkan untuk implementasi MPI dengan Visual C++ kita bisa memanfaatkan yaitu MPICH dan MPICH2, download SDK dari MPICH dan MPICH2

  • MPICH , download: http://www-unix.mcs.anl.gov/mpi/mpich1/download.html
  • MPICH2 , download: http://www-unix.mcs.anl.gov/mpi/mpich2  

Selain itu dengan Visual C++ 2005 kita bisa melakukan debugging MPI pada mesin cluster dengan mensetting project configuration dibagian debugging seperti gambar dibawah ini



OpenMP dan Visual C++ 2005
Cara lain untuk parallel computing adalah dengan menggunakan OpenMP yang merupakan open standard. Secara umum kontruksi dari OpenMP dapat dilihat pada gambar dibawah ini

Informasi lengkap mengenai open standard dari OpenMP, kita dapat mendownload spesifikasi OpenMP versi 2.5 di http://www.openmp.org/drupal/mp-documents/spec25.pdf . Sedangkan untuk mengaktifkan OpenMP pada Visual C++ bisa di setting di konfigurasi project dibagian C/C++ --> Language seperti gambar dibawah ini

Pada code C/C++ cukup menambahkan library omp.h pada code tersebut. Untuk lebih dalam mempelajari MPI dan OpenMP dengan bahasa C , anda bisa membaca buku "Parallel Programming in C with MPI and OpenMP" yang ditulis oleh Michael J. Quinn, bukunya bisa dicek disini http://www.amazon.com/Parallel-Programming-C-MPI-OpenMP/dp/0072822562

MPI & OpenMP di Algorythmus Lab

Well, guys..topik ini sangat menarik, saya kepikiran bagaimana kalau topik ini masuk ke training center Algorythmus, ntar saya coba propose Om Risman....atau ada komentar yang lain ? 

Share this post: | | | |
Published Wednesday, March 14, 2007 9:53 AM by Agus Kurniawan

Comments

# re: MPI and OpenMP for Parallel Computing

Wednesday, March 14, 2007 1:27 PM by Risman Adnan Mattotorang

AK, this is great !!!!

# re: MPI and OpenMP for Parallel Computing

Wednesday, March 14, 2007 5:17 PM by Agus Kurniawan

Bagaimana kalau course ini di apply di Algorythmus Lab ?

# re: MPI and OpenMP for Parallel Computing

Thursday, March 15, 2007 3:52 PM by Risman Adnan Mattotorang

Sangat bisa! Terutama Multicore OpenMP. Kalau kita bisa sampai HPC (MPICH) menarik sekali.

# re: MPI and OpenMP for Parallel Computing

Thursday, February 14, 2008 8:39 PM by Evangs Mailoa

Waw.... bagus banget..!!!!

Kebetulan mas, aku lagi buat tugas akhir untuk dekripsi algoritma RSA pake komputasi paralel..

Kapan2 boleh numpang tanya kan...?!

Eh lupa.., salam kenal sebelumnya....!!!

CAYO!!!!!!!!!!!!!

# re: MPI and OpenMP for Parallel Computing

Thursday, February 21, 2008 4:28 PM by Syahril

Mas, mau nanya, kira-kira gimana ya, algoritma yang di buat pake bahasa C, agar program kita bisa memberi beban kerja penuh pada Processor dan Memori secara paralel

# re: MPI and OpenMP for Parallel Computing

Saturday, June 21, 2008 4:52 PM by anjar

boleh minta contoh code progran paralel computing pke bhsa c ga?please,sent to abenx_87@yahoo.co.id.thx

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above:
Powered by Community Server (Commercial Edition), by Telligent Systems