群集中的扭矩作业之间的消息传递

时间:2015-06-16 16:35:43

标签: hpc pbs torque

所以,我需要将计算密集型作业(深度神经网络训练)提交给一个可以延长计算时间的扭矩集群,并且我需要在活动节点之间每隔几分钟交换一些大型浮点阵列,如节点需要在最新版本的神经网络上工作才能很好地训练它。

我想知道是否有任何良好的沟通选择,至少要告诉每个活跃的工作其姐妹的工作'因此它可以通过tcp连接到它们。节点无法访问互联网,我们也无法让守护进程在作业提交服务器上工作。

我看到的唯一选择是:

  • Torque上的一些消息传递选项(我在扭矩方面是相当的noob)
  • 使用文件进行通信时非常容易出错的选项,我讨厌。
  • 从服务器查询活动节点的ips的方法。

1 个答案:

答案 0 :(得分:0)

根据群集的体系结构,有多种方法可以在群集上的节点之间交换信息。 Torque是一个资源管理器,因此如果使用批处理脚本将作业提交到集群,则有一些环境变量应该能够为您提供作业中使用的节点的主机名或IP地址。

查找IP地址和/或主机名的确切语法取决于群集上与Torque一起使用的调度程序/工作负载管理器。此链接包含PBS Works工作负载管理器的文档。

节点之间的并行通信可以通过多种方式实现,并且部分取决于群集中可用的硬件。使用MPI是并行化代码以在群集上使用的最常用方法之一,许多实现支持多个高性能结构/互连系统,如Infiniband。可以找到对不同类型的并行性的一些有用的介绍here

作为MPI的替代方案,远程直接内存访问(RDMA)可用于在节点之间传递和访问信息。如果群集具有Infiniband网络适配器,则从供应商处查看IB-Verbs API将是在节点之间传递数据的附加选项。