那麼,你實際上並沒有確切地說明你的目標硬件是什麼,如果它是共享內存的機器,那麼OpenMP是一個選項。大多數並行程序員認爲使用OpenMP進行並行化比使用MPI的任何形式更容易。我還建議,將OpenMP改裝爲現有代碼比MPI更容易。從表現最好的角度來看,最好的MPI程序是從頭開始設計並與消息傳遞並行的程序。
此外,最佳順序算法可能並不總是最有效的算法,一旦它被平行化。有時候,一個簡單但順序次優的算法是更好的選擇。
您可以訪問到共享內存的計算機:
- 所有多核CPU的有效共享內存的計算機;
- 在許多集羣上,節點通常是兩個或四個強的CPU,如果它們每個都有4個內核,那麼您的集羣上可能有一個16核共享內存計算機;
- 如果您有權訪問MPP超級計算機,您可能會發現其每個節點都是共享內存計算機。
如果你被卡住消息傳遞,那麼我強烈建議你堅持使用C++和的openmpi(或任何MPI已經安裝在系統上),你應該在BoostMPI無疑顯得太。我強烈建議這樣做,因爲一旦你走出高性能科學計算的主流,你可能會發現自己身處一場編程之中,擁有一套特殊的適合研究型圖書館和其他工具。 C++,OpenMPI和Boost已經被很好的使用,你可以把它們視爲'武器級'或者你喜歡的類比。例如,在MPI和OpenMP上流量很少,在您投注農場之前查看其他技術的統計數據。
如果您對MPI沒有經驗,那麼您可能需要查看一本名爲並行科學計算的書,C++和MPI由Karniadakis和Kirby編寫。 Gropp使用MPI等可以作爲參考,但它並不是初學者關於消息傳遞編程的文本。
嗨!非常感謝您的回覆。 – 2010-03-31 15:39:54