2010-06-17 31 views
4

我寫了一些MPI代碼,可以在大型羣集上完美地工作。集羣中的每個節點具有相同的CPU架構,並且可以訪問聯網(即「公用」)文件系統(以便每個節點可以優先於實際的二進制文件)。但考慮這種情況:是否可以在互聯網上而不是在LAN羣集內分發MPI(C++)程序?

  • 我有一臺機器在我的辦公室與雙核心處理器(英特爾)。
  • 我有一臺雙核處理器(amd)在家裏的機器。

兩臺機器都運行linux,兩臺機器都可以在本地成功編譯和運行MPI代碼(即使用2個內核)。

現在,是否有可能通過MPI將兩臺機器連接在一起,以便我可以利用所有4個內核,並考慮到不同的體系結構,同時考慮到沒有共享(聯網)文件系統的事實?

如果是這樣,怎麼樣?

感謝, 奔。

回答

5

它可能做到這一點。大多數MPI實現允許您指定要在不同機器上運行的二進制文件的位置。或者,確保它位於兩臺機器上的路徑中。由於兩臺機器具有相同的字節順序,所以這應該不成問題。您將必須確保單個進程讀取的任何輸入數據在兩個位置都可用。

這樣做有很多併發症。您需要確保系統之間的防火牆允許進程啓動和通信。機器之間的通信會慢得多,所以如果你的代碼是通信量大或者不能容忍的話,它可能會很慢。運行在所有4個內核上的執行時間很可能會比在單個機器上運行2個更長。

+0

謝謝,我會去的,如果我遇到任何問題,將回到你身邊:-) – 2010-06-17 16:09:45

0

過程所處的位置沒有地理限制。正如KeithB所說,兩臺機器都不需要共用路徑或者甚至是相同的二進制文件。根據您使用的MPI實施情況,您甚至不需要相同的排序。

您可以在每臺機器上精確指定二進制文件的路徑,並且還有兩個獨立的二進制文件。但是,您應該注意,如果兩個節點之間的通信基礎架構不夠快,程序將運行緩慢。

相關問題