MPI (Message Passing Interface) là một thư viện chứa các hàm được viết sẵn nhằm hỗ trợ cho việc viết các chương trình chạy song song. MPI có thể sử dụng trong chương trình C/C++ hoặc Fortran để chia nhỏ phần tính toán nào đó cho nhiều máy tính cùng thực hiện. Bài này hướng dẫn dùng Visual Studio 2008 để viết và debug một chương trình MPI.
Bước 1: vào trang http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads để download gói MPICH2 phù hợp. Ví dụ tôi đang xài Win7 32bits thì down gói MPICH2 Windows IA32 (binary) (8M)
Bước 2: cài đặt gói vừa down, thư mục mặc định là C:\Program Files\MPICH2, cài xong filesmpd.exe sẽ tự động chạy và hỏi bạn fire wall có cho access không thì bạn chọn yes nhé, nếusmpd.exe không tự chạy thì bạn tự khởi động nó lên (nó nằm trong folder bin đó)
Bước 3: chạy file wmpiregister.exe nhập vào account trong máy bạn (ví dụ Administrator) và password, sau đó click nút register
Bước 4: Trong Visual Studio 2008 chọn Tools–>Options, thiết lập như 2 hình sau:
Hình trên là Include files, hình dưới là library files.
Bước 5: Tạo 1 New empty project (Win32 Console Application), tạo 1 file main.cpp với nội dung như sau:
#include <stdio.h>
#include <mpi.h>int main(int argc, char *argv[]) {
int numprocs, rank, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Get_processor_name(processor_name, &namelen);printf(“Process %d on %s out of %d\n”, rank, processor_name, numprocs);MPI_Finalize();
}
Bước 6: vào Project–>Properties, thiết lập như các hình sau:
Dòng -np 2 “$(TargetPath)” > “$(OutDir)\out.txt” có nghĩa là sẽ có 2 process cùng chạy song song với nhau, kết quả sẽ ghi vào file out.txt nẳm trong folder Debug chung với file exe của chương trình (trong VS 2008, khi bạn chọn Debug chương trình, khi chạy xong cmd sẽ tự động exit, do đó không thể thấy được cái mình càn in ra màn hình)
Bước 7: chọn Debug–>Start debugging, mở file out.txt xem kết quả (CAT ở đây là tên máy tính của tui)
http://cat123vn.wordpress.com/2012/01/02/ch%E1%BA%A1y-ch%C6%B0%C6%A1ng-trinh-mpi-v%E1%BB%9Bi-visual-studio-2008/Process 0 on CAT out of 2
Process 1 on CAT out of 2