高性能计算

第一个mpi程序in windows

2008年10月16日 阅读(842)

前阵子忙着看solaris,买了书,看了一阵,后来重新安排让搞异构编程环境,于是看交叉编译,最近老师安排熟悉mpi编程环境。。。

异构的话,还是先在windows,linux下用用吧,first step starts from windows.

1.需要有c,c++ or fortan的编译器,在这里我采用的是dev-cpp里的g++编译器,可以去迅雷上下,搜dev cpp即可,有的版本比较按照默认安装路径,否则会出现build错误,还是老实点吧

我用的是dev-c++ 4.9.4.1 ,默认安装到了c根目录下

2,下载mpi的实现,这里采用mpich版本2.0,到http://www.mcs.anl.gov/research/projects/mpich2/

下载mpich2- 1.0.7-win32-ia32.msi,这个是专门为x86-windows-32实现的,这里采用默认安装到C:\Program Files\MPICH2。

3.现在已经可以在本机进行基本的编程了,当然还有mpi的一些对于节点的配置,不过对于编写一个简单的在本机运行的程序是不必要的

4.写一个最简单的 mpi "hello world"程序

#include "mpi.h"
#include <stdio.h>
#include <math.h>
void main(int argc,char ** argv)
{
    int myid, numprocs;
    int  namelen;
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&myid);
    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
    MPI_Get_processor_name(processor_name,&namelen);
    fprintf(stderr,"Hello World! Process %d of %d on %s\n",
    myid, numprocs, processor_name);
    MPI_Finalize();
}
5.编译执行

注意要想在cmd里,可以直接调用g++,mpiexec命令,需要现在系统的环境变量里设置path的值,这样系统就知道去那个路径寻找下面要使用的命令了。

编译命令:

g++ test.cpp -I C:\PROGRA~1\MPICH2\include -L C:\PROGRA~1\MPICH2\lib -lmpi -o test.exe

运行命令:

mpiexec -n 4 -localonly test.exe

这样就可以看到运行结果了,以上 命令均在cmd里执行,结果显示也是

 

好啦,这样最简单的mpi程序的编译运行过程就完成了

 

为了避免每次敲入重复的编译,运行命令,我把他们保存到.bat文件,并且,将保存bat文件的路径,添加到path里,这样以后直接运行这个.bat文件,就可以自动执行上述编译,运行命令了。

 

待解决问题:

异构环境下编程 程序的异机运行 熟悉mpi高级编程 熟悉mpiconfig 和mpiregister的各项设置的意义 

 如何简化编程过程?

 

You Might Also Like