Udah lama gak nge-blog..maklum lagi ngejar setoran dan terus sibuk dengan ujian akhir semester :p. Selain itu ada kesibukan penelitian yang berbasis Artificial intelligence based on inspiring by bio-computing. Gw memfokuskan diri bagaimana membangun aplikasi cerdas yang diinspirasi oleh biologi seperti bagaimana otak kita melakukan recognition ataupun classification atau bagaimana mata kita melihat suatu benda 3D menjadi 2D atau melakukan analisa apa yang dilihat...it's computer vision. Let see dengan kemampuan computer vision dan artificial intelligent akan tercipta aplikasi yang smart alias dapat melihat layaknya manusia dan bagaimana make decision layaknya human.
Selain itu, gw sibuk di area parallel computing, jadi demen menjadi dapat mata kuliah ini. So kali ini gw mau sharing knowledge bagaimana kita membangun aplikasi parallel computing di area OS Windows, siapa bilang hanya area Linux atau Unix yg bisa parallel computing. I will show you how your Visual C++ 2005 under IDE Visual Studio 2005 compile your MPI code!. Next sharing knowledge, gw mau nunjukkan bagaimana kita clustering OS Windows dengan melakukan parallel computing dengan beberapa OS Windows melalui library MPI...it's a great knowledge.
Getting Started
Untuk memulai parallel computin, hal-hal yang dipersiapkan antara lain
- Visual C++ 2005 under IDE Visual Studio 2005 (bisa pakai Visual C++ 2005 Express Edition)
- Download MPI Library yang terdapat didalam Microsoft Compute Cluster Pack SDK, download di http://www.microsoft.com/downloads/details.aspx?familyid=d8462378-2f68-409d-9cb3-02312bc23bfd&displaylang=en , download file sdk_x86.msi untuk mesin 32-bit atau sdk_x64.msi untuk mesin 64-bit
- OS Windows 2000/XP/2003
Untuk demo disini, gw pakai Visual C++ 2005 under IDE Visual Studio 2005 Team Suite dan OS Windows 2003 Enterprise Edition.
Instalasi MPI
Untuk dapat coding parallel computing kita memperlukan library nya. Yang gw ketahu dan pernah coba ada MPI dan OpenMP. Sedangkan untuk session ini, gw akan jelasin pakai MPI library untuk membuat code parallel computing. Setelah anda download Microsoft Compute Cluster Pack SDK maka langsung diinstall file *.MSI nya yang tampilannya seperti gambar dibawah ini

Ikuti petunjukan instalasi dan diingat directory instalasinya
Starting Coding
Selanjutnya kita mulai coding MPI, lakukan langkah-langkah dibawah ini
- Jalan Visual Studio 2005
- Buat project Visual C++ dengan template Win32 seperti gambar dibawah ini

- Berikan nama project sesuai dengan keinginan dan tekan ok kalau udah
- Untuk feature project Win32 pastikan precompiled header di unchecked seperti gambar dibawah ini

- Nah, sekarang kita baru melakukan konfigurasi dari compiler kita
- Lakukan klik kanan dibagian project dan pilih menu Properties sehingga akan muncul kotak dialog properties dari project kita
- Pertama-tama kita konfigurasi dibagian C/C++ --> General, tulis path dari header MPI kita, misalkan kalau install di D, maka maka biasanya diisi d:\Program Files\Microsoft Compute Cluster Park\Include , yang dapat digambar seperti gambar dibawah ini

- Kemudian kita konfigurasi C/C++ --> Advanced, kita pilih Compile As C Code (/TC) gunanya supaya compiler hanya compile code C kita bukan c++ karena MPI code nya menggunakan C. Lihat gambar dibawah untuk lebih jelasnya

- Selanjutnya kita konfigurasi Linker --> General, dibagian Additional Library Directories tambahkan library MPI kita, untuk processor Intel kita dapat menggunakan x86, contoh d:\Program Files\Microsoft Compute Cluster Park\Lib\i386 , contohnya seperti gambar dibawah ini

- Konfigurasi yang terakhir kita lakukan adalah menambahkan msmpi.lib dibagian Linker-->Input pada Additional Dependencies seperti yang tergambar dibawah ini

Coding Parallel Computing
Kalau sudah selesai konfigurasinya maka selanjutnya kita code MPI, kalau ada perhatikan di template Win32, seperti code dibawah ini
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
Ini harus diganti untuk comply dengan initialisasi dari MPI sehingga menjadi
int main(int argc, char* argv[])
{
return 0;
}
ok, selanjutnya kita mulai coding deh. Contoh sample codenya:
#include "stdafx.h"
#include <mpi.h>
int main(int argc,char* argv[])
{
int id;
int p;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&id);
MPI_Comm_size(MPI_COMM_WORLD,&p);
printf("Rank = %d , Size = %d\r\n",id,p);
MPI_Finalize();
return 0;
}
Running MPI Code
Untuk menjalankan aplikasi MPI kita dapat memanfaatkan mpiexec.exe yang ada didalam Microsoft Compute Cluster Pack SDK yang ada didalam folder bin, sintaknya:
mpiexec -n 5 "c:\mympi.exe"
Keterangan, -n 5 ----> menunjukkan jumlah processor yang kita miliki sedangkan "c:\mympi.exe" adalah file EXE dari code MPI kita. Lakukan ini commandline, kalau tidak kenali mpiexec maka arahkan CMD anda ke directory dimana file mpiexec.exe berada. Contoh hasil running dapat dilihat pada gambar dibawah ini:

Next Sharing Knowledge
Selanjutnya nanti gw coba memaparkan bagaimana menerapkan MPI dalam beberapa kasus dan sekalian gw tunjukkan bagaimana kita konfigurasi clustering OS Windows untuk melakukan parallel computing dengan beberapa PC.
Kalau ada komentar atau pertanyaan, langsung put disini aja 