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 ?