MPICH是MPI標準的一種最重要的實現,可以免費從網上下載。MPICH的開發與MPI規範的制訂是同步進行的,因此MPICH最能反映MPI的變化和發展。
基本介紹
- 中文名:MPICH
- 釋義:MPI標準的一種最重要的實現
- 特點:可以免費從網上下載
- 性質:MPICH最能反映MPI的變化和發展
簡介,功能,安裝,測試運行,單機測試,在線上測試,編譯,
簡介
MPICH是MPI標準的一種最重要的實現,可以免費從網上下載。MPICH的開發與MPI規範的制訂是同步進行的,因此MPICH最能反映MPI的變化和發展。
MPICH的開發主要是由Argonne National Laboratory和Mississippi State University共同完成的,在這一過程中IBM也做出了自己的貢獻,但是MPI規範的標準化工作是由MPI論壇完成的。MPICH是MPI最流行的非專利實現,由Argonne國家實驗室和密西西比州立大學聯合開發,具有更好的可移植性,現階段多流行的是MPICH2.
功能
通過安裝MPICH構建MPI編程環境,從而進行並行程式的開發。MPICH是MPI(Message-Passing Interface)的一個套用實現,支持最新的MPI-2接口標準,是用於並行運算的工具。
安裝
Windows環境下的安裝
1 準備工作:
- 作業系統分別為 Win XP 和 Win 2003 server;
- Microsoft .NET Framework 2.0 :必需;
- vcredist_x86.exe :可能會用得到。筆者在安裝時碰到需要安裝visual c++ 2005 sp1 的提示,此時安裝該 vcredist 程式即可。
- mpich2-1.0.6p1-win32-ia32.msi :mpich2的安裝檔案;
- mpich2 主頁:網上可以輕易搜到mpi主頁,從這裡可以下載所需 mpich2 程式和相應文檔。
2 環境搭建
2.1 在兩台機器上分別安裝Microsoft .NET Framework 2.0和vcredist_x86.exe;
2.2 在兩台機器上分別安裝mpich2-1.0.6p1-win32-ia32.msi;
將.../MPICH2/bin(即安裝目錄,如:D:/Program Files/MPICH2/bin)添加至系統環境變數path中。
我用的參與計算的系統都是WindowsXP Pro SP2,安裝的過程沒什麼太特別的,一般就是默認就可以,只是其中有個地方要填一個什麼passphrase,上面提示說所有系統都要用相同的passphrase,照做就是了,在所有參與計算的結點機器上都填一樣的passphrase就好了。另外就是需要.net framework 2的運行環境。
默認安裝的位置是C:\Program Files\MPICH2,下面的bin目錄下是系統配置運行需要的程式,為了方便在控制台使用,可以把C:\Program Files\MPICH2\bin加到系統的PATH變數中去。Include是頭檔案,開發的時候用,lib是連結程式的時候用的庫檔案。同時,安裝程式還會自動向系統註冊一個服務MPICH2 Process Manager,我們從控制臺-管理工具-服務里就能找到,這是管理運行MPI程式的一個服務,安裝好後就是自動啟動的,所以一般也就不用動它。
安裝完畢後開始選單-程式中就添加了一個MPICH2目錄,其中就有上面提到的Jumpshot,另外wmpiconfig.exe是用來配置運行環境的。wmpiregister.exe則是用來註冊用戶的,使用MPI之前需要在這個程式里註冊一個系統里已經存在的用戶,而且這個用戶必需擁有管理員許可權,擁有運行我們安裝了的MPI系統的能力。比如我就在所有參與運算的機器上添加了一個管理員mpi,密碼也是mpi。
測試運行
(windows)
.
單機測試
測試前首先需要註冊一個用戶,具體操作如下:開始-->所有程式-->MPICH2-->wmpiregister.exe:
有一點需要說明:該用戶名須為有效的作業系統管理員賬戶,密碼對應為系統登錄密碼。接下來,測試時有兩種方式可供選擇:GUI界面和命令行。
- GUI方式:開始-->所有程式-->MPICH2-->wmpiexec.exe;
- 命令行方式:mpiexec n 2 D:/Program Files/MPICH2/examples/cpi.exe。
在線上測試
要點:
-參加並行計算的機器須至少註冊一個相同的賬戶,如筆者兩台PC上都註冊了一個 mpi 帳號;這些賬戶最好位於同一工作組,當然不在同一工作組也可以,筆者作過測試,沒有問題。
-創建JOB目錄。每台機器上須有一個路徑相同的目錄,用於存放待執行的JOB(即 exe 程式),筆者創建的目錄是 d:/mpi/ ,並將測試用的 cpi.exe 檔案copy至該目錄下;
-在線上執行命令:mpiexec -hosts n Node_1 Node_2 ... Node_n .../***.exe 。“-hosts”表示要在線上運行,n 表示有兩台機器參加運算,Node_1(及Node_2 ...)為各機器的計算機名或IP。".../***.exe" 必須位於前面設定的目錄中。
編譯
安裝MPICH並測試成功之後,就可以利用MPI進行編譯和運行程式:
這裡假定 MPI 程式的開發分為兩個階段:
-使用 visual studio 編譯MPI程式,將其debug為exe檔案;
-將exe檔案copy到上面環境搭建過程中創建的JOB目錄下,在線上運行。
環境搭建好之後,接下來的編譯和運行就非常簡單。編譯MPI程式前,創建一個c++工程,MPI代碼放於工程中的cpp檔案中,build,start debuging...,OK,編譯完成。copy exe檔案至每台機器的JOB目錄,進入任何一台機器的cmd下,執行在線上運行命令即可。
示例(visual studio 2005):