win2k adv svr + vc6
「我的電腦」path中設定mpich2的bin目錄(%mpich2%\bin)以便執行mpiexec程式。我的具體設定如下:
vc6開發環境中包含mpich2開發包的include目錄和lib目錄。具體步驟:開啟vc6,選擇」tools->options」,在彈出的「options」對話方塊中選擇directories選項卡,分別設定如下圖:
(設定include目錄%mpich2%/include)
(設定lib目錄%mpich2%/lib)
mpich2環境配置。執行%mpich2%/lib下wmpiregister,在註冊介面輸入本機器使用者名稱和密碼以便mpiexec執行程式。
經過上面的步驟,mpich2開發環境已經建立好,下面便可以步入mpich2的大殿了。開始最簡單也是最經典程式「hello world」,在過程中倒是遇到不少麻煩。
開啟vc6,建立乙個控制台應用程式,如下圖:
依照課本,包含標頭檔案且把**敲入main函式中。
#include "mpi.h"
#include
int main(int argc, char* argv)
編譯程式,發現出現很多編譯錯誤,一時間不知道怎麼辦好。在細看錯誤,都是一些函式過載錯誤。原本想修改**,但是沒有全部源**。再進一步,發現全部是mpicxx.h檔案導致的錯誤,於是想是否mpi_init等函式與此檔案有關。通過搜尋包含文字,發現mpi_init等函式只在mpi.h中定義,於是想辦法不包含mpicxx.h檔案以避開問題。在mpi.h中發現**:
#if !defined(mpich_skip_mpicxx)
#include "mpicxx.h"
#endif
#endif
這下有辦法,在程式中定義巨集mpich_skip_mpicxx,然後重新編譯程式(注意在包含mpi.h前定義)。哈哈,果然避開了mpicxx.h檔案,有出現幾個為定義錯誤,包含lib檔案就ok!如下圖:
有個建議,既然包含標頭檔案必須連線庫的話,可以在標頭檔案中指定庫。本人在開發過程中一直這樣做,感覺很好。這樣可以避免入門者不會設定庫。
下面是執行。執行命令列,輸入:
e:\myproject\mpipractice\helloworld\debug>mpiexec -np 4 helloworld
輸出結果:
hello world!
hello world!
hello world!
hello world!
這樣便完成第乙個mpi程式,下面的任務就是依據並行演算法思想解決複雜問題,留帶大家自己解決。
耗費一下午重新安裝系統和各種軟體,大約乙個小時編制及除錯「hello world」程式,儘管簡單,但是畢竟對於mpi程式設計入門,感覺良好。耗費一小時書寫文件,總結問題,以便其他同學遇到麻煩好解決,希望互相學習進步。
萬連文2005/10/19晚於寢室
MPI並行程式設計
了解並熟悉mpi並行程式開發環境,學會並行程式編譯方法,並行程式作業提交方法,並行程式執行狀態觀察與分析方法,本實驗的內容主要包括學習如何編譯執行mpi程式以及通過較簡單的 helloworld.c 程式的實際執行來進一步的熟悉 實驗一,本實驗的內容主要包括學習如何編譯執行mpi程式以及通過較簡單的...
MPI與OpenMP並行程式設計
1.openmp openmp是一種用於共享記憶體並行系統的多執行緒程式設計的庫 compiler directive 特別適合於多核cpu上的並行程式開發設計。它支援的語言包括 c語言 c fortran 不過,用以上這些語言進行程式開發時,並非需要特別關注的地方,因為現如今的大多數編譯器已經支援...
MPI 並行解方程
基本演算法 逐步縮小函式值異號的範圍 最後逼近最終解 所有執行緒計算中地位相同 計算範圍與self號相應的區段值 把x較小值做為解 只支援單個解 lx做為計算範圍和終止條件 最後 由主線程顯示結果 include mpi.h include include define end 999999 def...