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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!