2014-10-17 59 views
0

我是集羣技術領域的新人,我正在測試我公司的MPICH2集羣解決方案。單進程的MPI

我們有交流的程序,實際上以這種方式行事:

  • 有一個連接到數據庫的廣告準備數據
  • 主進程創建不同的命令行參數的一些子進程的主進程(使用fork()命令創建從屬進程)

是否可以在不修改的情況下在MPICH2集羣上運行這些進程? 否則,在羣集上運行此程序需要進行哪些修改?

感謝所有

回答

0

不要在一臺計算機和分佈式處理上(通過MPI)獲得並行進程之間的困惑,因爲他們是不一樣的東西。今天又問了另外一個問題,它有同樣的問題,所以我會把你的答案轉給你:https://stackoverflow.com/a/26428033/491687

調用fork()只會在與主進程相同的機器上創建更多進程。如果你只打算使用共享內存和一些進程,那很好。但是,如果需要使用大量進程(進程數量>內核數量,大致)來處理大量數據,那麼MPI會很有幫助,因爲它允許您將多臺計算機連接在一起並在它們之間傳遞數據。

所以簡短的回答是:不,你不能不修改就使用MPI。將fork/join程序轉換爲MPI程序需要進行大量的修改。這是設計。他們不試圖解決同樣的問題。

+0

謝謝,您的回覆非常有幫助 – bdn02 2014-10-20 07:51:04