Windows系统下搭建MPI(并行计算)环境
来源:互联网 发布:ac68u 网络设置 编辑:程序博客网 时间:2024/05/24 03:23
第一篇:
转自:http://www.2cto.com/os/201109/105812.html
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工程,加入如下代码:view plain
#include
#include
#include
#include
#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的帮助,使用多台电脑来进行并行计算其实也是一件比较容易的事件。
作者“MoreWindows”
第二篇:
转自:
Romi-知行合一
http://www.cnblogs.com/Romi/archive/2012/05/28/2522401.html
准备软件:官网上下载对应的版本http://www.mcs.anl.gov/research/projects/mpich2/index.php。这里采用的是win32版本。
设备:电脑若干台,均为windows操作系统
环境配置过程如下:
1.安装软件
2.添加新的管理员账户
3.注册账户
4.配置
下面依次说明。
一.安装软件
在每台电脑上安装好mpi的安装包,安装的路径任意选择,没必要每台计算机都是相同路径。
安装过程中在使用者那选择everyone,安装好后,目录如下
然后将MPICH2的bin目录添加进系统环境变量Path中。
注意:安装好后,在资源管理器的进程内会有smpd.exe的进程,要进行MPI计算,必须要有这个进程,没有的话尝试重新安装。
二.添加新的用户账户
为了是计算机群能使用MPI,应该给每个安装了MPI的计算机添加一个相同的账户,账户密码也必须相同,账户要求是管理员身份。这里分别为每台计算机创建一个名为mpi的账户,密码随便设,假设就是123.
这里要注意:如果原来使用的是Administrator账户,创建mpi账户后每次开机只有mpi账户可供选择。实际上Administrator账户既然存在,只不过是被隐藏了,要是开始时可以选择使用Administrator还是mpi账户登录,可以修改注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\SpecialAccounts\UserList ,然后在右侧的窗口中找到以Administrator命名的Dword键(如果没有可以自己建立),双击,将键值由0改为1,退出后重新启动计算机。
还有一点,要进行mpi计算,没有必要非要使用mpi账户登录计算机,即只要计算机上存在mpi这个账户即可进行mpi的并行计算,与用户选择是否利用mpi账户登录计算机没有关系(很多文章没有阐释清楚这个问题)。
三.注册账户
点击开始——MPICH2——wmpiregister.exe。将mpi账户和密码123添加进去,注册,然后确定。
四.配置
测试前需要在每台计算机上创建一个路径相同的文件夹,比如在D盘根目录下创建一个mpi的文件夹,将编译成功需要执行的.exe文件放入mpi文件夹内。
注意将各计算机的防火墙关了。各计算机在同一个项目组内,这里我使用的个计算机都是在一个路由器内,都在WORKGROUP工作组内。
选择开始——MPICH2——wmpiconfig.exe,如下图,如果安装了MPI的计算机连接成功会高亮显示(如下图绿色)。如果有连接不成功的,请按以上步奏仔细检查。
测试
利用安装文件的求π值示例进行测试(在examples内)。
测试1:单机测试
在本台计算机上直接运行cpi.exe,输入一个比较大的值800 000 000,如下
这里只使用了单个cpu核,如果计算机cpu是多核的,要使用cpu的多个核,可以选择开始——MPICH2——wmpiexec.exe,在Application中选择cpi.exe,处理器选择2个,然后执行,如下图
执行结果如下:
可以看到,速度提高了将近一倍,因为使用了2个cpu核。程序运行时可以打开资源和管理器查看,对于双核cpu来说,单核时cpu使用率是50%,双核时cpu使用率是100%。
测试2:机群测试
利用机群进行计算时,在cmd下采用命令行进行。
命令行格式类似:mpiexec -hosts n ip1 ip2 ... d:/mpi/cpi.exe
n是要利用的计算机节点个数,ip1/ip2是计算机的ip地址。如下采用2个计算机节点(算上本机):
可以看到与使用双核效果差不多。
当采用3个计算机节点时,结果如下:
可以看到,使用的时间将近是单机使用单cpu核心的1/3,可以说机群中计算机节点越多,处理越快,效率几乎是线性增长。
- Windows系统下搭建MPI(并行计算)环境
- Windows 7系统下搭建MPI(并行计算)环境
- Windows系统下搭建MPI(并行计算)环境<转>
- Windows系统下搭建MPI(并行计算)环境
- Windows 7系统下搭建MPI(并行计算)环境
- Windows系统下搭建MPI(并行计算)环境
- Windows系统下搭建MPI(并行计算)环境
- 【并行计算】Windows系统下搭建MPI环境
- ubuntu下搭建MPI并行计算环境
- Ubuntu下搭建MPI并行计算环境
- 并行环境搭建:Windows环境下的vs2013配置MPI
- VMware下CentOS MPI并行计算环境搭建
- Windows环境下MPI并行计算联机测试配置
- Windows系统下搭建MPI环境
- Windows系统下搭建MPI环境
- Windows系统下搭建MPI环境
- windows visual studio 2012下MPI并行环境搭建
- MPI并行编程基础小结(window下搭建MPI环境,vs配置mpi)
- HDU 1176(动态规划)
- PHP分析工具安装
- selenium处理上传控件、不能操作的windows控件
- 三子棋(贼菜的算法)
- 堆溢出、栈溢出
- Windows系统下搭建MPI(并行计算)环境
- 基础知识总结:小数计算为什么不精确?
- PL/SQL批量运行SQL语句
- 内部类
- 电器的好基友,还带多种玩法,0元送云合智能插座
- Linux系统如何正确的开机关机及快捷键的使用
- Android Camera2 Opengles2.0 图像实时滤镜 显示 视频编码
- LeetCode.532 K-diff Pairs in an Array
- Android studio 升级3.0后ReactNative 打包报错 Could not find com.android.tools.build:gradle:3.0.0.