MS-MPI 的使用
MPI在windows上的扯淡
MPI的实现一般使用MPICH与OpenMPI,这两个库在12年的版本就已经停止了对windows的更新,不支持MPI的新特性(也不知道有没有bug方面的问题),配置的时候教程较少,配置也出现了一些不好解决的问题。
吐槽一下,MPICH官方不对Windows更新的原因是“开发人员精力不足”,也许在windows上使用MPI的人太少吧。。
MS-MPI (Microsoft MPI ) 现在更新到V7测试版 (2015年),微软基于MPICH向windows上的移植,实现了很多新的 MPI特性,主要用在 HPC Pack。使用全套系统需要一个windows server系统的电脑作为头结点,实现了完整的管理功能。不过MS-MPI也可以单独使用(没有界面)。
MS-MPI环境配置
微软官方教程多为HPC server的, 东西太多现在懒得配置。 MS-MPI的使用教程比较少,各种被坑之后得出下文:
下载安装包并安装
https://www.microsoft.com/en-us/download/details.aspx?id=47259 这是MS-MPI v6安装包,现在v7的测试版已出。安装完成后去SDK目录,找到include 与 lib 文件夹。
在visual studio中新建C++ win32 空项目,将项目编译改为x64(我的是64位 win7)
右键项目 -- 属性 -- vc++ 目录中 包含目录 添加 include 文件夹路径,库目录 中添加 lib 文件夹路径。
属性 -- 链接器 -- 输入 -- 附加依赖项中 添加 msmpi.lib;msmpifec.lib;msmpifmc.lib;新建cpp文件,代码如下
#include "mpi.h"#include <iostream>int main(int argc, char* argv[]){int rank;int size;MPI_Init(0,0);//MPI环境初始化MPI_Comm_rank(MPI_COMM_WORLD, &rank); //获取当前进程号MPI_Comm_size(MPI_COMM_WORLD, &size); //获取进程总数std::cout<<"Hello world from process "<<rank<<" of "<<size<<std::endl;MPI_Finalize();return 0;}
- 将编译得到的 exe文件放在安装的MS-MPI的bin目录下(和sdk不在一个安装包)
- 按住shift键在bin文件夹空白处右键单击,选择命令行窗口
- 输入 smpd -d 运行MPI进程
- 输入 mpiexec -n 4 test.exe 得到运行结果如下
Hello world from process 1 of 4Hello world from process 0 of 4Hello world from process 3 of 4Hello world from process 2 of 4
MS-MPI 的使用的更多相关文章
- ms mpi error: unable to allocate launching block
问题描述: 在VS 2015中使用Microsoft MPI(ms mpi)构建控制台应用,使用" mpiexec -n 4 myprog.exe"运行时退出并提示"un ...
- MPI 环境配置,MPICH,VisualStudio
▶ Visual Studio 下配置MPI环境 ● 参考资料:http://blog.csdn.net/z909768094/article/details/50926162 ● 如果使用 MPIC ...
- 《并行程序设计导论》——MPI(Microsoft MPI)(1):Hello
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- MPI n 体问题
▶ <并行程序设计导论>第六章中讨论了 n 体问题,分别使用了 MPI,Pthreads,OpenMP 来进行实现,这里是 MPI 的代码,分为基本算法和简化算法(引力计算量为基本算法的一 ...
- MPI 并行奇偶交换排序 + 集合通信函数 Sendrecv() Sendvecv_replace()
▶ <并行程序设计导论>第三章的例子程序 ● 代码 #include <stdio.h> #include <mpi.h> #include <stdlib. ...
- MPI 计时器函数 MPI_Wtime()
▶ 计时器函数 MPI_Wtime() 以及头文件 timer.h 中的宏函数 GET_TIME(),类似 time.h 中函数 clock() 的用法.注意 函数 clock() 记录的是CPU时间 ...
- Windows下用VC与QT编译MPI程序入门
MPI是信息传递接口的简称,常用来进行进程间.机器间的通信与并行计算.一般而言,MPI都会部署在*nix系统下,在Windows下面直接编译.配置MPI并不容易.本文利用MS提供的编译好的MPI的版本 ...
- MPI实现并行奇偶排序
奇偶排序 odd-even-sort, using MPI 代码在 https://github.com/thkkk/odd-even-sort 使用 MPI 实现奇偶排序算法, 并且 MPI 进程 ...
- ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus
ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus 本文承接我的上一篇博文: ASP.NET 5 Linux部署,那篇文章主要是针对最新的ASP. ...
- MS SQL巡检系列——检查外键字段是否缺少索引
前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...
随机推荐
- box-shadow中的理解(bootstrap)
刚研究了bootstrap中css里面的源码,找到了表单(form)中关于输入框的一些设置,根据要求,label标签和input标签需要一起使用,(屏幕阅读器中不能单独辨认input),如需隐藏lab ...
- 深入理解css系列:css定位
一.概述 1.默认文档流定位方式 (1).HTML默认文档以流模式定位,即内容元素按照先后顺序依次上下定位: (2).HTML标签元素总体分为块状元素.内联元素.内联块状元素,可通过该标签对应的DOM ...
- poj1741 (点分治)
Problem Tree 题目大意 给一棵树,有边权.求树上距离小于等于K的点对有多少. 解题分析 点分治.对每一棵子树进行dfs,求出每棵子树的重心,继而转化为子问题. 对于经过根的路径i--j,令 ...
- PowerDesigner自增列问题
- 让LinqToSQL使用Web.Config中的链接字符串(修改Settings.Designer.cs)
[global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.Debug ...
- Razor视图引擎-基础语法
所有以 @开头 或 @{ /* 代码体 */ } (在@与{直接不得添加任何空格) 的部分代码都会被ASP.NET引擎进行处理. 在 @{ /*代码体*/ } 内的代码每一行都必须以";& ...
- 数组循环:循环多个li 每个li 固定N条数据
PHP代码: $arr = array(1,2,3,4,5,6,7); $x = 1; $y = 0; foreach($arr as $k => $v){ $data[$y][] = $v; ...
- Mac安装GitLab CE记录
0 REF REF1 原始的GitLab Documentation REF2 Installation-guide-for-GitLab-on-OS-X REF3 如何在Mac 终端升级ruby版本 ...
- Ionic学习笔记三 Gulp在ionic中的使用
简介 Gulp是一个基于流的自动化构建器. 安装 npm config set registry http://registry.npm.taobao.org ---最好用国内源 npm instal ...
- Loadrunner进行接口自动化测试
我们以测试豆瓣api获取图书信息的接口为例 接口的信息如下: 接口ip:https://api.douban.com/v2/book/:id 接口返回值:status=200 返回数据: { - (图 ...