日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows系统下搭建MPI环境

發布時間:2025/3/21 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows系统下搭建MPI环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Windows系統下搭建MPI環境

MPI的全稱是Message Passing Interface即標準消息傳遞界面,可以用于并行計算。MPI的具體實現一般采用MPICH。下面介紹如何在Windows XP系統下VC6中搭建MPI環境來編寫MPI程序。

一.準備工作

1.1?? 安裝MPI的SDK——MPICH2。

mpich2-1.4.1p1-win-ia32安裝程序的下載地址:

http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi

本文以設置安裝在C:\Program Files\MPICH2目錄下為例。

測試所安裝的MPICH2

測試前首先需要注冊一個用戶,具體操作如下:“開始”按鈕-->所有程序-->MPICH2-->wmpiregister.exe。輸入用戶名、密碼。有一點需要說明:該用戶名須為有效的操作系統管理員賬戶,密碼對應為系統登錄密碼。如圖所示:

接下來選擇開始-->所有程序-->MPICH2-->wmpiexec.exe;

選擇Application為 c:\program files\mpich2\examples\cpi.exe (就是自帶的一個計算圓周率的例子程序)。在Number of processes的數量選擇2表示用二個進程來協同完成。選中“run in separate windw”選項。再點擊Excute就可以執行了。

然后在控制臺窗口下提示輸入number of intervals ,隨便輸入個大點的數字(500005000000)就可以看到求的的圓周率值。如下圖:

注意到上圖中的Show Comman中的字符串,可以在控制臺下輸入應該字符串得到類似結果,這里就不再介紹了。

1.2 在VC6中添加MPICH2

先在VC6.0中加入mpi的include和lib。VC6.0程序菜單中“Tools”?--> “Optains”-->“Directories”然后添加,如下圖所示:

?

?

?

?

二.第一個MPI程序

加入之后,新建Win32 Console Application工程,加入如下代碼:

[cpp]?view plain?copy
  • #include?<mpi.h>??
  • #include?<stdlib.h>??
  • #include?<stdio.h>??
  • #include?<conio.h>??
  • ??
  • #pragma?comment?(lib,?"mpi.lib")???
  • ??
  • int?main(int?argc,?char*?argv[])??
  • {??
  • ????int?myid,numprocs;??
  • ????int?namelen;??
  • ????char?processor_name[MPI_MAX_PROCESSOR_NAME];??
  • ??????
  • ????MPI_Init(&argc,?&argv);??
  • ??
  • ????//用MPI_Comm_rank?獲得進程的rank,該rank值為0到p-1間的整數,相當于進程的ID??
  • ????MPI_Comm_rank(MPI_COMM_WORLD,?&myid);??
  • ????//用MPI_Comm_size?獲得進程個數??int?MPI_Comm_size(MPI_Comm?comm,?int?*size);??
  • ????MPI_Comm_size(MPI_COMM_WORLD,?&numprocs);??
  • ??
  • ????MPI_Get_processor_name(processor_name,?&namelen);??
  • ??????
  • ????printf("Hello?World!?by?MoreWindows\nProcess?%d?of?%d?on?%s\n",?myid,?numprocs,?processor_name);??
  • ??????
  • ????MPI_Finalize();??
  • ??????
  • ????if?(myid?==?1)??
  • ????{??
  • ????????printf("\nPress?a?key?and?exit.\n");??
  • ????????getch();??
  • ????}??
  • ????return?0;??
  • }??
  • 編譯運行,第一個MPI程序就誕生了。下面是我電腦上的運行結果:

    ?

    ?

    ?

    三.多臺電腦上協同運行MPI

    只有多臺電腦集群后才能更好的發揮并行計算的威力,當然由于MPI的幫助,這個工作將變得異常簡單。下面以二臺PC協同運行前面提到過的cpi.exe為例。

    3.1 多臺電腦運行MPI的條件

    第一.參加并行計算的機器須至少注冊一個相同的賬戶,如兩臺PC上都注冊了一個 mpi 帳號。

    第二.創建JOB目錄。每臺機器上須有一個路徑相同的目錄,用于存放待執行的JOB(即 exe 程序),如創建的目錄是 d:\MPI\,再將測試用的可執行文件復制到二臺PC的該目錄下。

    ?

    3.2 聯機執行命令解釋

    可以在控制臺下輸入"C:\Program Files\MPICH2\bin\mpiexec.exe" -help2來查看其所以參數,這里不一一介紹了,重點介紹下用于聯機操作的命令:

    聯機執行命令: -hosts n Node_1 Node_2??... ?Node_n? -noprompt ExePath

    “-hosts”表示要聯機運行,n 表示有n臺機器參加運算,Node_1(及Node_2 ...)為各機器的計算機名或IP。ExePath為exe的文件路徑如d:\MPI\cpi.exe。

    3.3 聯機效果示范

    可以這個結果與上面單機運行的結果作個比較。

    ?

    不難發現,由于MPI的幫助,使用多臺電腦來進行并行計算其實也是一件比較容易的事件。

    ?

    ?

    轉載請標明出處,原文地址:http://blog.csdn.net/morewindows/article/details/6823436

    總結

    以上是生活随笔為你收集整理的Windows系统下搭建MPI环境的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。