Windows系统下搭建MPI环境

MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows XP系统下VC6中搭建MPI环境来编写MPI程序。

一.准备工作

1.1   安装MPI的SDK——MPICH2。

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目录下为例。

测试所安装的MPICH2

测试前首先需要注册一个用户,具体操作如下:“开始”按钮-->所有程序-->MPICH2-->wmpiregister.exe。输入用户名、密码。有一点需要说明:该用户名须为有效的操作系统管理员账户,密码对应为系统登录密码。如图所示:

接下来选择开始-->所有程序-->MPICH2-->wmpiexec.exe;

选择Application为 c:\program files\mpich2\examples\cpi.exe (就是自带的一个计算圆周率的例子程序)。在Number of processes的数量选择2表示用二个进程来协同完成。选中“run in separate windw”选项。再点击Excute就可以执行了。

然后在控制台窗口下提示输入number of intervals ,随便输入个大点的数字(50000,5000000)就可以看到求的的圆周率值。如下图:

注意到上图中的Show Comman中的字符串,可以在控制台下输入应该字符串得到类似结果,这里就不再介绍了。

1.2 在VC6中添加MPICH2

先在VC6.0中加入mpi的include和lib。VC6.0程序菜单中“Tools” --> “Optains”-->“Directories”然后添加,如下图所示:

二.第一个MPI程序

加入之后,新建Win32 Console Application工程,加入如下代码:

[cpp] view plain copy
  1. #include <mpi.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #pragma comment (lib, "mpi.lib")
  6. int main(int argc, char* argv[])
  7. {
  8. int myid,numprocs;
  9. int namelen;
  10. char processor_name[MPI_MAX_PROCESSOR_NAME];
  11. MPI_Init(&argc, &argv);
  12. //用MPI_Comm_rank 获得进程的rank,该rank值为0到p-1间的整数,相当于进程的ID
  13. MPI_Comm_rank(MPI_COMM_WORLD, &myid);
  14. //用MPI_Comm_size 获得进程个数  int MPI_Comm_size(MPI_Comm comm, int *size);
  15. MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
  16. MPI_Get_processor_name(processor_name, &namelen);
  17. printf("Hello World! by MoreWindows\nProcess %d of %d on %s\n", myid, numprocs, processor_name);
  18. MPI_Finalize();
  19. if (myid == 1)
  20. {
  21. printf("\nPress a key and exit.\n");
  22. getch();
  23. }
  24. return 0;
  25. }

编译运行,第一个MPI程序就诞生了。下面是我电脑上的运行结果:

三.多台电脑上协同运行MPI

只有多台电脑集群后才能更好的发挥并行计算的威力,当然由于MPI的帮助,这个工作将变得异常简单。下面以二台PC协同运行前面提到过的cpi.exe为例。

3.1 多台电脑运行MPI的条件

第一.参加并行计算的机器须至少注册一个相同的账户,如两台PC上都注册了一个 mpi 帐号。

第二.创建JOB目录。每台机器上须有一个路径相同的目录,用于存放待执行的JOB(即 exe 程序),如创建的目录是 d:\MPI\,再将测试用的可执行文件复制到二台PC的该目录下。

3.2 联机执行命令解释

可以在控制台下输入"C:\Program Files\MPICH2\bin\mpiexec.exe" -help2来查看其所以参数,这里不一一介绍了,重点介绍下用于联机操作的命令:

联机执行命令: -hosts n Node_1 Node_2  ...  Node_n  -noprompt ExePath

“-hosts”表示要联机运行,n 表示有n台机器参加运算,Node_1(及Node_2 ...)为各机器的计算机名或IP。ExePath为exe的文件路径如d:\MPI\cpi.exe。

3.3 联机效果示范

可以这个结果与上面单机运行的结果作个比较。

不难发现,由于MPI的帮助,使用多台电脑来进行并行计算其实也是一件比较容易的事件。

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/6823436

Windows系统下搭建MPI环境相关推荐

  1. Windows系统下搭建MPI(并行计算)环境

    Windows系统下搭建MPI环境 MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算.MPI的具体实现一般采用MPICH.下面介绍如何在Window ...

  2. Windows 系统下搭建 WAMP 环境

    Wamp就是Windos Apache Mysql PHP集成安装环境,即在window下的apache.php和mysql的服务器软件.其中php环境配置是至关重要的一部分,本文就针对php在本地的 ...

  3. 在Windows系统中搭建PHP环境,PHP环境搭建-Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  4. Windows系统下搭建NFS服务器

    Windows系统下搭建NFS服务器       在windows系统中采用NFS功能实现文件共享,让Linux系统来访问. 首先在windows系统中安装一个实现NFS功能的第3方软件haneWin ...

  5. windows系统下的python环境的搭建

    windows系统下如何搭建python环境呢? 方法一: 首先,去python的官方网站上下载python 我就随便选择了一个最新版,你们需要特定版本的就下载特定版本的 链接地址:https://w ...

  6. 在Windows系统下搭建ELK日志分析平台

    2018年07月11日 22:29:45 民国周先生 阅读数:35 再记录一下elk的搭建,个人觉得挺麻烦的,建议还是在linux系统下搭建,性能会好一些,但我是在windows下搭建的,还是记录一下 ...

  7. linux 打印当前系统环境_Linux系统下搭建python环境

    首先linux系统下一般是自带python2环境的,但是目前大多数项目工程python2是不适用的,今天我们就来讲解下如何在linux系统下搭建python3! 以上是自带的python2,接下来搭建 ...

  8. Java windows系统下JDK开发环境配置和环境变量配置

    一.JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.Ecli ...

  9. windows系统下搭建 ZeroTier moon服务器

    ZeroTier 是一个虚拟局域网软件,局域网内的机器,流量不走公网,降低了风险和费用.而且软件开源,同一子网下免费使用100个机器,然而在国内如果要用好ZeroTier,最好搭建MOON转发服务器. ...

最新文章

  1. ue4 导出模型_UE4构建光照后模型变黑,二套UV解决办法
  2. linux shell 脚本 2,理解Linux Shell和基本的Shell脚本(2)
  3. 浅谈虚拟化技术下的云安全如何处置
  4. Hybris产品主数据的价格维护
  5. 生活中c语言排序案例,C语言之数字排序-基于冒泡排序法的一些案例(对未知数量的数字进行排序)...
  6. 超详细的Java面试题总结之JavaWeb基础知识总结,java开发面试笔试题
  7. P2P流媒体直播点播(带宽节约95%以上)
  8. 有关php链接MySql数据库的总结
  9. 数学建模-10.聚类
  10. 爬虫实战—模拟登陆oschina
  11. Python爬虫代理池搭建
  12. 搜狗输入法关闭快捷键
  13. VO,DTO,PO 的个人见解
  14. JQuery 网页选项卡制作
  15. gis里创建要素面板怎么打开_简单又高效 —— 用GIS快速完成控规编制
  16. 免费电子书 工具 开发工具包 各类资源 下载
  17. Go 让 Apache APISIX 如虎添翼
  18. php7.4安装配置,CentOS环境下安装配置PHP 7.4的方法
  19. 我从停电一个月中学到了什么
  20. 2021年中国葡萄酒行业发展现状分析,产业技术不断升级,需求量有望持续增长「图」

热门文章

  1. 1. Nest Js
  2. 满城尽带比特币:程序员如何发布自己的 ICO?
  3. 解密谷歌机器学习工程最佳实践——机器学习43条军规 翻译 2017年09月19日 10:54:58 98310 本文是对Rules of Machine Learning: Best Practice
  4. Yann LeCun:掌舵Facebook人工智能 | 完美人物志
  5. 为什么说在KMP算法中文本串中的每个字符都是需要进行比较操作的?
  6. Tomcat - Tomcat 8.5.55 启动过程源码分析阶段一_init实例化Bootstrap
  7. Spring OXM-XStream注解
  8. Spring JDBC-事务方法嵌套调用解读
  9. Python 循环控制语句-break/continue
  10. 避障机器人程序c语言,基于51单片机小车寻迹、避障源程序(注释很详细)