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文件,代碼如下

 
 
 
         
  1. #include "mpi.h"
  2. #include <iostream>
  3. int main(int argc, char* argv[])
  4. {
  5. int rank;
  6. int size;
  7. MPI_Init(0,0);//MPI環境初始化
  8. MPI_Comm_rank(MPI_COMM_WORLD, &rank); //獲取當前進程號
  9. MPI_Comm_size(MPI_COMM_WORLD, &size); //獲取進程總數
  10. std::cout<<"Hello world from process "<<rank<<" of "<<size<<std::endl;
  11. MPI_Finalize();
  12. return 0;
  13. }
  • 將編譯得到的 exe文件放在安裝的MS-MPI的bin目錄下(和sdk不在一個安裝包)
  • 按住shift鍵在bin文件夾空白處右鍵單擊,選擇命令行窗口
  • 輸入 smpd -d 運行MPI進程
  • 輸入 mpiexec -n 4 test.exe 得到運行結果如下
       
       
       
               
    1. Hello world from process 1 of 4
    2. Hello world from process 0 of 4
    3. Hello world from process 3 of 4
    4. Hello world from process 2 of 4





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM