前阵子忙着看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根目录下
下载mpich2- 1.0.7-win32-ia32.msi,这是专门为的x86-windows-32实现,默认安装在这里C:\Program Files\MPICH2。
3.基本编程现在可以在本机上进行,当然还有mpi对于节点的一些配置,不需要在本机上编写一个简单的程序
4.写最简单的 mpi "hello world"程序
#include "mpi.h"
#include
#include
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设置的意义
如何简化编程过程?