1.首先下载MPI
mpich2-1.4.1p1-win-ia32安装程序的下载地址:
http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi
本文以设置安装在C:\Program Files\MPICH2目录下为例。
2.安装完成后,打开“开始-所有程序-MPICH-wmpiregister.exe” ,在Account中输入本机用户名,在password中输入本机密码,点击Register按钮注册并按OK按钮退出。
3.在VS2010中,VC++ 目录配置位置较以往发生了变化。VC++目录改在项目配置中,在项目名称上右键选择属性,即进入属性页。
4.展开左边配置属性,选中其中的VC++ 目录,在右边“包含目录”加入“C:\ProgramFiles\MPICH2\include;”
5.展开左边配置属性,选中其中的VC++ 目录,在右边“库目录”加入“C:\ProgramFiles\MPICH2\lib;”
6.展开左边配置属性中的C/C++,如果没有这个选项,需要在项目中新建一个cpp文件则会出现该选项,选中其中的“预处理器”,在右边的“预处理器定义”中加入“MPICH_SKIP_MPICXX;”。
7.同样展开C/C++,选中“代码生成”,把右边的“运行库”更改为“Multi-threaded Debug(/MTd)”(此外有下拉菜单可选到它)。
8.展开左边的链接器,选中“输入”,在右边“附加依赖项”中加入“mpi.lib;”。
至此,配置完成。
9.运行示例
#include <mpi.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #pragma comment (lib, "mpi.lib") int main(int argc, char* argv[]) { int myid,numprocs; int namelen; char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc, &argv); //用MPI_Comm_rank 获得进程的rank,该rank值为0到p-1间的整数,相当于进程的ID MPI_Comm_rank(MPI_COMM_WORLD, &myid); //用MPI_Comm_size 获得进程个数 int MPI_Comm_size(MPI_Comm comm, int *size); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Get_processor_name(processor_name, &namelen); printf("Hello World! by MoreWindows\nProcess %d of %d on %s\n", myid, numprocs, processor_name); MPI_Finalize(); if (myid == 1) { printf("\nPress a key and exit.\n"); getch(); } return 0; }
编译运行,第一个MPI程序就诞生了。
10.如何运行MPI程序?
打开“开始-所有程序-MPICH-wmpiexec.exe”,在Applicationd右边浏览找到你在VS2010中生成的exe文件,(在项目目录里的debug里)设置Number of processes(即进程数目,用来模拟并行计算的CPU数目)。再按Execute按钮运行。