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 4
Hello world from process 0 of 4
Hello world from process 3 of 4
Hello 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的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...
随机推荐
- 算法练习:寻找最小的k个数
参考July的文章:http://blog.csdn.net/v_JULY_v/article/details/6370650 寻找最小的k个数题目描述:查找最小的k个元素题目:输入n个整数,输出其中 ...
- UGUI与DOtween的坑
在使用ugui和dotween做动画时,如使用transform.DoMoveX,.DoLocalMoveX,.DoMove,.DoLocalMove等方法时,动画效果有可能是错误的,什么时候错误呢? ...
- 使用easeui dialog弹出框中使用CKeditor多次加载后无法编辑问题
问题呈现:弹出框页面 <tr class="addtr"> <th>内容</th> <td> <!-- <textare ...
- 库函数API和C语言汇编语言混合式编程
C语言代码内嵌汇编的方法: 在C语言文件中以如下格式加入汇编代码 __asm__( “汇编语句模板” :输出部分 :输入部分 :“破坏描述部分” ) asm可以由__asm__代替,为其别名. 可加上 ...
- PR视屏剪切
一款常用的视频编辑软件,由Adobe公司推出.现在常用的有CS4.CS5.CS6.CC.CC 2014及CC 2015版本.是一款编辑画面质量比较好的软件,有较好的兼容性,且可以与Adobe公司推出的 ...
- C# 字符编码类Encoding
在网络通信中,很多情况下都是将字符信息转成字节序列进行传输.将字符序列转为字节序列的过程称为编码.当这些字节传送到接收方,接收方需要逆向将字节序列转为字符序列.这个过程就是解码. 常见编码有ASCII ...
- 判断安卓和IOS
var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > - ...
- Python 基礎 - 字典的操作使用
接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...
- CKEditor使用配置方法
一.使用方法: 1.在页面<head>中引入ckeditor核心文件ckeditor.js <script type="text/javascript" src= ...
- 升级OpenSSh到 7.3p1
1.开启 telnet 服务 Linux yum install -y telnet-server telnet /etc/xinet.d/telnet 中的yes 修改为no service xin ...