码迷,mamicode.com
首页 > 其他好文 > 详细

MPI库安装、配置及测试程序

时间:2016-04-29 17:03:41      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

由于项目需求,最近一段时间学习了MPI,零星的资料拼拼凑凑,终于成功搭好了~ 
详细过程记录如下,方便日后参考~

一、安装


【1】首先从官方网站下载MPI下载官方网站相应版本的源文件mpich-3.2,并解压缩
【2】在/tmp/下创建目录(如/tmp/yangrui/mpich-3.2)保存安装log
【3】在/opt/下创建目录/opt/mpich-install,作为安装目录
【4】在/tmp/yangrui/mpich-3.2下执行安装命令:
技术分享
出现Configuration completed.
【5】执行make 2>&1 | tee m.txt ;
【6】执行make install |& tee mi.txt ;
【7】配置环境变量:
执行命令vim /etc/profile
#set MPI path
MPI_HOME=/opt/mpich-install/bin
PATH=${PATH}:${MPI_HOME}
export MPI_HOME
如图:
技术分享
【8】验证安装成功:
技术分享

二、授权

在每台服务器的/etc/下创建hosts.equiv文件:
技术分享
文件内容:
 技术分享
含义:
① dell-3 user:代表允许dell-3服务器上的用户user本地执行远程命令而无须提供口令;
② amax user:代表允许dell-3服务器上的用户user本地执行远程命令而无须提供口令;
③+ user:代表允许用户user从任何远程计算机在本地执行远程命令而无须提供口令。

三、测试命令及程序

3.1 命令

[1]编译命令
mpicc –o test test.c  或 mpicxx –o test test.cpp
[2]运行命令
单机服务器
mpiexec –n 6 ./test   或 mpirun –np 6 ./test
说明:mpiexec 和 mpirun为运行命令,-n或-np指定运行的进程个数
=============================================================================
集群环境下
编辑machinefile文件,内容为服务器名称及其运行的进程个数
mpiexec –machinefile mf –n 6 ./test   或 mpirun –machinefile mf –np 6 ./test

3.2 测试程序

#include <math.h>

void main(argc,argv)
int argc;
char *argv[]; 
	{
		/*myid 和 numprocs分别记录某一个并行执行进程的标识和所有参加计算的进程的个数*/
		int myid, numprocs;
		int namelen;
		
		/*MPI_MAX_PROCESSOR_NAME为MPI预定义的宏,代表MPI的具体实现中允许机器名字的最大长度*/
		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);
		//机器名存在processor_name中,namelen是实际机器名的长度
		MPI_Get_processor_name(processor_name, &namelen);
		
		fprintf(stderr , "Hello world! Process %d of %d on %s \n", 
				myid, numprocs, processor_name);
				
		MPI_Finalize();
	}

3.3 测试结果

1台服务器:
 技术分享
技术分享
集群环境下执行:
技术分享




MPI库安装、配置及测试程序

标签:

原文地址:http://blog.csdn.net/fly_yr/article/details/51251679

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!