Terima kasih atas kepercayaan membeli buku saya “Pemrograman Parallel Dengan MPI dan C”. Ada beberapa email yang menanyakan realisasi MPI dengan menggunakan C++. Supaya bermanfaat, saya akan share bagaimana konfigurasi MPI dan C++ pada platform Windows dengan HPC paltform nya yaitu Windows HPC Server dan platform Linux dengan Linux Grid/HPC.
Platform Windows
Pada ilustrasi ini saya akan menggunakan Visual Studio 2010 dengan template Visual C++ dan library MPI yang digunakan adalah Microsoft MPI yang merupakan realisasi dari MPICH.
Pada Visual C++ 2010, pilih template Win32 Project pada kategori Win32 seperti gambar dibawah ini

Isi nama project dan lokasinya. Jika selesai klik tombol OK. Selanjutnya akan muncul kotak dialog sepertid dibawah ini

Klik tombol Next.
Kemudian pilih Console application dan lainnya tidak dicentang seperti dibawah ini. Jika selesai klik tombol Finish

Setelah itu Visual C++ 2010 akan menghasilkan project solution seperti dibawah ini.

Langkah selanjutnya, kita melakukan konfigurasi Visual C++ dengan Microsoft MPI.
Klik kanan project kita dan pilih menu Properties sehingga akan muncul kotak dialog seperti dibawah ini.

Klik bagian C/C++ –> General dan pada bagian Additional Include Directories tambahkan folder Include dari Microsoft MPI misalkan: C:\Program Files\Microsoft HPC Pack 2008 SDK\Include . Contoh isian seperti gambar diatas.
Selanjutnya dibagian C/C++ –> Advanced. Pilih Compile As dengan Compile as C++ Code (/TP) seperti gambar dibawah ini

Langkah terakhir konfigurasinya adalah bagian Linker –> General. Pilih Additional Library Directories dan isi dengan folder Lib dari Microsoft MPI misalkan: C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386

Jika sudah selesai, klik tombol OK.
Sedangkan kode programnya, kita modifikasi file MPICPP.cpp atau file entry point dari C++. Selanjutnya tulis kode program dibawah ini
// MPICPP.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <mpi.h>
#include <iostream>
using namespace std;
int _tmain(int argc, char* argv[])
{
int numberOfProcessors;
int rank;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);
cout<<"Hello MPI\r\n";
MPI_Comm_size(MPI_COMM_WORLD,&numberOfProcessors);
cout<<"Jumlah processor = " <<numberOfProcessors <<endl;
MPI_Get_processor_name(processor_name, &namelen);
cout<<"Nama Processor = "<< processor_name <<endl;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
cout<<"Proses pada " << rank <<endl;
MPI_Finalize();
return 0;
}
Simpan dan lakukan kompilasi. Seharusnya ini berhasil
.
Untuk menjalankan seperti biasa, kita gunakan commandline atau langsung ke Windows HPC Server. Berikut ini contoh hasil kompilasinya

Platform Linux
Pada platform Linux, saya akan menggunakan Linux Ubuntu. Untuk menjalankan MPI dan C++, pastikan compiler C++ sudah terinstall. Caranya cukup yaitu
sudo apt-get install build-essential
Selanjutnya kita menulis kode program MPI dengan C++. Tulis kode program dibawah ini.
#include "mpi.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int numberOfProcessors;
int rank;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);
cout<<"Hello MPI\r\n";
MPI_Comm_size(MPI_COMM_WORLD,&numberOfProcessors);
cout<<"Jumlah processor = " <<numberOfProcessors <<endl;
MPI_Get_processor_name(processor_name, &namelen);
cout<<"Nama Processor = "<< processor_name <<endl;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
cout<<"Proses pada " << rank <<endl;
MPI_Finalize();
return 0;
}
Simpan dengan file mympi.cpp
Untuk kompilasi dengan MPI kita tidak menggunakan mpicc tapi mpic++ sedangkan untuk menjalankan aplikasi sama seperti biasa yaitu mpiexec.
Berikut ini contoh kompilasi dan cara mengeksekusinya:

Semoga informasi ini berguna. Selamat ber “coding ria”. 
Referensi
Informasi artikel ini didasarkan pengembangan dari buku Pemrograman Parallel Dengan MPI dan C oleh Agus Kurniawan, penerbit Andi Publisher, 2011.
