歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> MPICH2安裝與運行報告(Win7和Ubuntu)

MPICH2安裝與運行報告(Win7和Ubuntu)

日期:2017/2/28 16:09:43   编辑:Linux教程

這學期選的一門課的一個小作業,《計算科學與工程中的並行編程技術》;配環境的時候走了一些意想不到的彎路,貼出來給大家分享:

MPI安裝於運行報告

學號:** 姓名:**

本機運行環境:

機器型號:聯想ideapad Y460

CPU:Intel Core i5 M430主頻:2.27Ghz (雙核四線程)

運行內存(RAM):2GB

操作系統:Windows 7(32位)

程序開發環境:Visual Studio 2008

MPI版本:

直接使用老師給的mpich2-1.3.2p1-win-ia32安裝程序。

詳細安裝步驟:

1、運行mpich2-1.3.2p1-win-ia32.msi。

安裝過程中,會要求設置一個passphrase。我的機器上默認的passphrase是beHappy,很有意思的密碼。設置這個東西很重要,一定要記住;下面會說到為什麼。

2、 安裝完之後,不知道下一步怎麼進行了。打開剛才安裝的MPICH2的快捷方式目錄,發現了一個README文件。打開之後,發現了MPICH2的使用方法介紹,於是按照其中的指示,我進行了第一個MPI並行程序的編寫。

我使用的是VC++2008。首先創建一個新的工程,取名為MPITest。

添加MPI庫的支持:

按照README中的指導,應該首先將MPI的頭文件目錄包含到項目中去。結果在項目屬性中找了半天,也沒有找到添加頭文件目錄的位置,只找到了包含庫文件的位置,我安裝MPICH2的目錄為D:\Program Files\MPICH2,將MPICH2的庫文件添加到如下面圖1所示的位置即可。

最後才反應過來,這個工程還是空的,沒有任何文件,可能跟這個有關系吧。於是,馬上新建了一個Cpp文件main.cpp,將老師PPT中的例子程序拷貝進去。

圖 1

果然,新建了這個cpp文件之後,項目屬性中多出了C/C++這樣一項,於是,就可以在其中設置包含文件的目錄了,相應的配置如下面圖2所示。

圖 2

設置好這些文件之後,編譯程序,結果在連接的時候報錯,類似於“main.obj : error LNK2019: 無法解析的外部符號_MPI_Finalize,該符號在函數_main中被引用”,這樣的錯誤出現了六個。再看README文檔,發現了這樣一句話:

For C applications add mpi.lib to your target link command.

於是想到,可能需要在工程中顯式添加mpi庫的支持。在下面圖3所示的位置設置響應的lib之後,重新編譯、連接程序,順利通過。

圖 3

然後直接編譯運行程序,出現了如下面圖4所示的界面,表明該程序只在本機進行了運行,尚未真正並行執行。

圖 4

然後按照README和網上的指示,安裝完MPICH2之後,系統中應該會出現一個名為smpd的服務進程。我多次重新安裝了MPICH2,用任務管理器查看系統中的進程,始終沒有發現smpd這個進程;在安裝目錄下找到該程序,直接雙擊運行也失敗。在此情況下,運行並行程序時,會出現如下的錯誤提示:”Error: No smpd passphrase specified through the registry or .smpd file, exiting.”,如下面圖5所示。

圖 5

由於交作業時間緊迫,白天還要工作,我實在是沒有時間研究解決問題了。於是臨時決定轉戰Linux,下載並用Wubi安裝了Ubuntu 10.10。具體安裝步驟見後面的部分。後來上課的時候,清華的一個同學成功在Win7環境下把MPICH2配好了,我就去討教了一下。原來,這個是需要用管理員賬戶,啟動命令行(“以管理員身份”運行cmd.exe),然後輸入smpd –install –phrase ******,星號部分就是你先前設置的passphrase。終於搞定!如下面圖6所示

圖6

再次用MPIEXEC wrapper來運行並行程序,終於出現了正確的結果!太艱辛了……如下面圖7所示。

圖7

Copyright © Linux教程網 All Rights Reserved