簡體   English   中英

可以在互聯網上而不是在LAN群集中分發MPI(C ++)程序嗎?

[英]Possible to distribute an MPI (C++) program accross the internet rather than within a LAN cluster?

我寫了一些MPI代碼,可以在大型集群上完美運行。 集群中的每個節點都具有相同的cpu體系結構,並且可以訪問聯網(即“公共”)文件系統(這樣每個節點都可以超越實際的二進制文件)。 但請考慮這種情況:

  • 我的辦公室里有一台配有雙核處理器(intel)的機器。
  • 我家里有一台帶雙核處理器的機器(amd)。

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

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

如果是這樣,怎么樣?

謝謝,本。

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

這樣做有很多並發症。 您需要確保系統之間的防火牆允許進程啟動和通信。 機器之間的通信速度會慢得多,因此如果您的代碼是通信繁重或延遲不容忍,那么它可能會非常慢。 很可能在所有4個內核上運行的執行時間比在單個機器上運行2更長。

流程的位置沒有地域限制。 正如KeithB所說,兩台機器上都沒有共同的路徑甚至是相同的二進制路徑。 根據您使用的MPI實現,您甚至不需要相同的字節序。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM