Konfigurasi MPI Dan C++ Pada Platform Windows dan Linux

by Agus Kurniawan 21. August 2011 18:28

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

vs1

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

vs2

Klik tombol Next.

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

vs3

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

vs4

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.

vs5

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

vs6

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

vs7

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 Winking smile.

Untuk menjalankan seperti biasa, kita gunakan commandline atau langsung ke Windows HPC Server. Berikut ini contoh hasil kompilasinya

mpi_win

 

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:

lin1

Semoga informasi ini berguna. Selamat ber “coding ria”. Smile

Referensi

Informasi artikel ini didasarkan pengembangan dari buku Pemrograman Parallel Dengan MPI dan C oleh Agus Kurniawan, penerbit Andi Publisher, 2011.

ak_buku

Tags:

C/C++ | Linux | Windows

blog comments powered by Disqus

About Agus Kurniawan

Agus Kurniawan

For more detail about me click here [V]

Please entry your name into my guestbook [V]

If you want to contact me, please go here [V]

Go here for my professional services [V]

My Books

HP and SQL Server Programming By Example AngularJS Programming by Example

jQuery Programming by Example Getting Started with Arduino and Ruby

Raspberry Pi Command Line for Beginner Getting Started with Arduino and Python

MSP430 LaunchPad Programming TypeScript Programming by Example

Getting Started with Matlab Simulink and Arduino SQL Server for Node.js

Pocket Reference: Netduino for Beginner Database Programming using Matlab

Pocket Reference: Basic Sensors in Windows 8 Getting Started with Matlab Simulink and Raspberry Pi

Getting Started with Arduino and Java  Pocket Reference: Raspberry Pi Programming

Getting Started with Arduino and Matlab Getting Started with Arduino and .NET

Pocket Reference: Raspberry Pi Getting Started with Arduino and Node.js

MongoDB for VB.NET Panduan Praktis Windows Azure

Network Forensics: Panduan Analisis Dan Investigasi Paket Data Jaringan Menggunakan Wireshark Object-Relational Mapping (ORM): MongoDB, Mongoosejs and Node.js By Example

Nodejs Programming by Example MongoDB for by Example

Pemrograman Parallel Dengan MPI dan C Panduan Lengkap iPad 2 Untuk Pemula

Pemrograman Jaringan Dengan Java Aplikasi Pilihan iPad Untuk Anak-Anak

Buku lainnya [V]

Agus Kurniawan is Microsoft MVP (Most Valuable Professional)

Agus Kurniawan- Github Profile

Agus Kurniawan- Codeplex Profile

Follow Me

Follow agusk2010 on Twitter

Month List