【并行计算】Windows系统下搭建MPI环境
Windows系统下搭建MPI环境
MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows XP系统下VC6中搭建MPI环境来编写MPI程序。
一.准备工作
1.1 安装MPI的SDK——MPICH2。
mpich2-1.4.1p1-win-ia32安装程序的下载地址:
本文以设置安装在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工程,加入如下代码:
#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程序就诞生了。下面是我电脑上的运行结果:
三.多台电脑上协同运行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环境的更多相关文章
- Windows系统下搭建WAMP环境
Wamp就是Windos Apache Mysql PHP集成安装环境,即在window下的apache.php和mysql的服务器软件.其中php环境配置是至关重要的一部分,本文就针对php在本地的 ...
- Windows系统下搭建Jenkins环境
1. 安装JDK JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...
- windows系统下ruby开发环境的搭建方法
ruby是一种简单快捷的面向对象的脚本语言,非常直观.下面说一下windows系统下ruby开发环境的搭建方法. 工具/原料 rubyinstaller.exe 方法/步骤 1 到如下网站去下载最新的 ...
- Windows系统下Android开发环境搭建
“工具善其事,必先利其器”.要想学好Android,搭建好Android开发环境是一个良好的开端. Windows系统下Android开发环境主要有4个大的步骤.分别是: 1.JDK的安装 2.ecl ...
- Windowns系统下搭建python环境
本文介绍下在windows系统下安装python和python环境搭建. 安装PYTHON 首先,我们去python的官方网站下载python安装包.官网地址:https://www.python.o ...
- linux系统下搭建php环境之-Discuz论坛
1.安装搭建论坛必要的软件 apache php mysql CentOS系统我们可以直接使用 yum install 的方式进行软件安装,腾讯云有提供软件安装源,是同步CentOS官方的安装源,包涵 ...
- 如何Windows系统中搭建php环境
PHP介绍: PHP 独特的语法混合了C.Java.Perl以及PHP自创的语法.它可以比CGI或者Perl更快速地执行动态网页.用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTM ...
- Mac之OS系统下搭建JavaEE环境 <一> 之JDK的安装配置
这篇文章介绍了如何在Mac下搭建我们的JavaEE工作环境,对于初学者来说还是比较通俗易懂的. 一.JDK的安装及配置 1.首先我们到Oracle官网下JDK http://www.oracle.co ...
- windows系统下搭建linux
1.先装虚拟机VMware Workstation(步骤参照度娘) 2.在虚拟机上装CentOS6.5Linux系统(步骤参照度娘) 3.安装SecureCRT终端仿真程序,用来登录Linux服务 ...
随机推荐
- pro git 读书笔记 2
Git 2 - Git Basics 1 add github 上建立新的 repository,命名 demo git clone 到本地 github 目录 将自己之前的项目 copy 到该 de ...
- abd常用命令
1.adb install -r 包名 ----------安装包,-r 替换原有apk安装 2.adb uninstall -k 包名 ---------------卸载包, ...
- Spring Batch 4.2 新特性
Spring Batch 4.2 的发行版主要增强了下面的改进: 使用 Micrometer 来支持批量指标(batch metrics) 支持从 Apache Kafka topics 读取/写入( ...
- 二进制上的数位dpPOJ 3252
Round number POJ - 3252 题目大意:一个"round number" 数的定义是,将它转化成2进制后,0的个数大于等于1的个数,要求的就是在[s,f]范围内& ...
- nginx配置跨域问题
1.跨域指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制. 2.浏览器在执行脚本的时候,都会检查这个脚本属于哪个页面,即检查是否同源,只 ...
- mac 强行关掉php
sudo pkill -INT -o php-fpm//重启php sudo php-fpm //mac brew安装的php可以使用这个开启brew services start homebrew/ ...
- VMware中出现物理内存不足,无法使用配置的设置开启虚拟机解决方案
前几天给大家分享了如何在VMware中安装CentOS系统,后来有小伙伴在群里咨询,当新建虚拟机之后,打开虚拟机会弹出“物理内存不足,无法使用配置的设置开启虚拟机”的问题,如下图所示.这里会给出提示, ...
- [洛谷P3942]:将军令(贪心)
题目传送门 题目背景 历史/落在/赢家/之手至少/我们/拥有/传说谁说/败者/无法/不朽拳头/只能/让人/低头念头/却能/让人/抬头抬头/去看/去爱/去追你心中的梦 题目描述 又想起了四月.如果不是省 ...
- Alpha冲刺(3/6)
队名:new game 组长博客:戳 作业博客:戳 组员情况 鲍子涵(队长) 燃尽图 过去两天完成了哪些任务 才两天,也就是实现一些功能而已 复习 接下来的计划 实现更多的功能 为下周的比赛准备 还剩 ...
- LeetCode 42. 接雨水(Trapping Rain Water)
题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况 ...