windows visual studio 2012下MPI并行环境搭建
2020-11-25 05:54
标签:mpi 并行 visual studio 2012 windows 每天编程一小时 因为课程作业的缘故需要编写并行计算的程序,准备写一下MPI程序,MPI的全称是Message
Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows 8系统下visual studio 2012中搭建MPI环境来编写MPI程序。 MPICH官网上给出了windows下的下载地址。可以看出链接到了微软的官网,根据我的版本下载并安装了HPC
Pack 2012 SDK。然而在网上查找资料发现都是关于MPICH2的,所以又下载安装了这个,并根据博客的内容进行了配置。后文的结果是我写的hello
world程序能够成功运行,但前面安装了两次这个过程却给我后面工作带来了很大麻烦。
加入代码:
使用控制台命令调用上面的helloworld.exe程序,得到并行运算结果。输入命令: mpiexec -n 4 helloworld.exe 结果出现了下面的问题: ERROR:unable to read the cmd header on the pmi context, Error = -1 stackoverflow上的大牛说明产生这个问题的原因在于系统中安装了两个版本的mpi,分别是c:\program files\mpich2\bin和c:\program
files\microsoft hpc pack 2012\bin. 根据上面的方法,我将hpc pack 2012卸载了(因为到处都是MPICH的使用,所以就卸载了微软提供的了),重新运行上面的命令,又产生了问题: Please specify an authentication passphrase for smpd: stackoverflow上提供的解决方法是使用wmpiregister进行注册,具体方法参考资料1中提供了,但仍然没有解决该问题。又卸载并重新安装了MPICH这次,直接提示没有mpiexec命令了。我猜想MPICH是由第三方库提供的,而hpc pack 2012是微软自己的东西,因此使用MPICH时需要进行一些环境上的配置,而hpc
pack 2012不需要,所以又卸载了MPICH并安装会pc pack 2012。这次再运行mpiexec命令竟然成功了!得到运行10次结果如下:
从上面结果还可以看出,系统调用不同线程的顺序由系统随机决定的,线程的结束时间无法确定。 一点感想:编程不光是个技术活也是个体力活,很多时候遇到一个问题需要不停的去google寻找解决方法,但我们平时遇到的大部分问题都是有很多人遇到过的,这个过程就要求我们不急不躁,仔细去查找前人的解决方案了。 windows visual studio 2012下MPI并行环境搭建,搜素材,soscw.com windows visual studio 2012下MPI并行环境搭建 标签:mpi 并行 visual studio 2012 windows 每天编程一小时 原文地址:http://blog.csdn.net/angelazy/article/details/25552947安装MPI实现库
实现第一个MPI程序
#include "stdafx.h"
#include "mpi.h"
#include
运行得到:
说明程序正确运行。但是从程序运行中看到只运行了一个进程,没有看到所谓的并行运算呀。别着急下一节进行介绍。MPI并行运算
参考资料:
文章标题:windows visual studio 2012下MPI并行环境搭建
文章链接:http://soscw.com/index.php/essay/22592.html