所以,我需要将计算密集型工作(深度神经网络训练)提交到一个扭矩集群,这个集群会占用计算时间,而且我需要每几分钟交换几个大浮点数组因为节点需要在最新版本的神经网络上工作以训练它。群集中的扭矩工作之间的消息传递
我想知道是否有任何良好的沟通选择,至少要告诉每个活跃的工作姐妹工作'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中公开这些机制。 –