Eri*_*rik 8 c c++ hpc distributed-computing scheduled-tasks
我正在寻找一个在C++分布式数字运算应用程序中使用的框架.
设置如下:
有一个主节点将问题域划分为小的独立任务.任务分配给具有不同功能的工作节点(例如,CPU类型/ GPU启用).工作节点在可用时动态添加到计算网格中.也可能发生工作节点死亡,而没有说再见.
我正在寻找一个快速的C/C++框架来完成这个设置.
总结一下,我的主要要求是:
你当然可以用MPI做你想做的事。MPI-2 添加了动态进程管理功能,我认为当前广泛使用的大多数实现都提供了这些功能。
使用 C++ + MPI 的优点之一是这种组合在科学和技术计算中的应用相当广泛,尽管我的印象是在这个利基中动态进程管理使用得并不多。由于 MPI 用于解决计算科学前沿问题的最大型超级计算机,因此人们可能会猜测它对您的目的来说足够快。
使用 C++ + MPI 的缺点之一是 MPI 的设计不能容忍进程在执行期间的失败。关于动态进程管理功能是否允许您对自己的容错进行编程,关于 SO 存在争议。但没有争论说这可能很困难。
您将获得“开箱即用”的前 3 个要求。至于加密和身份验证的通信,您必须自己完成大部分工作,MPI 只是传递消息。我猜想,对于大多数 MPI 用户来说,在集群或超级计算机上运行并行应用程序具有私有互连(通常与公司或企业网络隔离)、加密和身份验证是很少关心的问题。