2010-02-19 176 views
3

我是並行計算領域的新手。你能告訴我是否有可能運行一個c + +代碼在我的雙核心筆記本電腦中使用MPI例程,或者是否有任何模擬器/模擬器來做到這一點?在我的筆記本電腦上運行MPI代碼

回答

6

大多數MPI實現使用共享內存進行位於同一主機上的等級之間的通信。在設置筆記本電腦方面沒有什麼特別的要求。

使用雙核筆記本電腦,您可以運行兩個等級,操作系統調度程序將傾向於將它們放置在單獨的核心上。 WinXP調度程序傾向於強制執行某種程度的「cpu綁定」,因爲默認情況下,作業往往會安排在上次運行的核心上。但是,大多數MPI實現還允許顯式的「cpu綁定」,這將迫使排名被安排在一個特定的核心上。這個語法是非標準的,必須從特定的實現文檔中獲得。

您應該嘗試在大學計算機正在運行的筆記本電腦上使用「相同」版本和MPI實施。這將有助於確保MPI運行時標誌相同。

大多數MPI實現附帶某種「編譯器封裝」或至少一組用於構建將包括MPI庫的應用程序的指令。要麼使用這些包裝,要麼遵循這些說明。

1

MPI消息通過TCP網絡傳輸(還有其他高性能的可能性,如共享性能,但網絡是默認的)。因此,只要節點可以相互連接,應用程序就運行在哪裏都沒有關係。我猜你想在筆記本電腦上測試應用程序,所以節點都在本地運行,並且可以通過回送網絡輕鬆連接到對方。

+0

謝謝。我如何創建本地節點?我的筆記本電腦是雙核心,這意味着我可以將工作分配到兩個處理單元中嗎?我想要做的就是在我的機器上測試我的應用程序,然後將其提交給大學超級計算機。 作爲Windows XP用戶應該怎麼做? – SRec0 2010-02-19 20:53:57

+0

-1所有主要的MPI實現默認使用共享內存在同一節點上的隊列之間傳遞消息。 – 2010-02-19 23:19:57

1

我不太清楚如果我理解你的問題,但是筆記本電腦就像其他任何電腦一樣。如果您已經正確設置了MPI庫並設置了路徑,那麼您當然可以在您的筆記本電腦上使用MPI例程。

就我而言,我使用Debian Linux(http://www.debian.org)來處理所有並行的東西。我寫了一篇關於HowTo get MPI run on debian machines的文章。你可能想參考它。

+0

謝謝S.Tayefeh,當我將作品提交給Linux-Unix機器時,我將使用您的經驗,真實的。但是,現在我只是在我的筆記本電腦上測試我的應用程序,卻沒有連接到任何其他機器。任何建議? – SRec0 2010-02-19 20:56:23

4

如果您對MPI應用程序模擬器感興趣,您應該檢查SMPI。

這個開源模擬器(我參與其中)可以運行許多MPI C/C++/Fortran應用程序,並且可以準確地預測應用程序的運行時間,前提是您準確描述了您的硬件平臺。在線和離線研究都是可能的。

有使用模擬器來研究MPI應用等諸多優勢:

  • 重現:多次運行,導致完全相同的行爲,除非您指定如此。你不會有任何heisenbugs添加一些更多的跟蹤更改應用程序的行爲;
  • 假設分析:能夠在無法訪問或尚未構建的平臺上進行測試;
  • Clairevoyance:即使在網絡核心,您也可以觀察系統的每個部分。

欲瞭解更多信息,請參閱this presentationthis article

SMPI框架甚至可以通過詳盡的測試正式研究MPI應用程序的修正,如that presentation所示。

相關問題