所以,我需要將計算密集型工作(深度神經網絡訓練)提交到一個扭矩集羣,這個集羣會佔用計算時間,而且我需要每幾分鐘交換幾個大浮點數組因爲節點需要在最新版本的神經網絡上工作以訓練它。羣集中的扭矩工作之間的消息傳遞
我想知道是否有任何良好的溝通選擇,至少要告訴每個活躍的工作姐妹工作'ips,所以它可以連接到他們通過tcp。節點無法訪問互聯網,我們無法在作業提交服務器上運行守護進程。
,我看到的唯一的選擇是:
- 一些消息傳遞轉矩選擇(我是相當小白在轉矩)
- 使用的文件進行溝通的非常容易出錯的選擇,這我恨。
- 一種查詢服務器上活動節點ips的方法。
這個問題非常廣泛(可能與觀點相符)!我認爲你應該看看消息傳遞接口(MPI)。這是集羣通信的標準化方式,並得到Torque的很好支持。它適用於C/C++和Fortran(可能還有其他)。不需要重新發明輪子。 –
傳統的MPI在這裏沒有幫助。他需要TCP或MPI的連接 - 接受語義。 – Jeff
這對Open MPI來說絕對是可能的。你必須運行全局可達的(通過TCP/IP)名稱服務器('orte-server')或啓動一個「主」作業,並讓它的「mpiexec」作用,然後爲每個實例提供名稱服務器的URI 'mpiexec'。然後作業可以利用'MPI_Publish_name' /'MPI_Lookup_name'和'MPI_Comm_connect'找到彼此並建立通信。 Torque不提供interjob通信機制,或者至少不在API中公開這些機制。 –