3

我正在寻找的是以下任何/所有内容:

  • 工人故障的自动发现(例如计算机关闭)
  • 检测给定IP地址范围内所有正在运行的(linux)PC(计算机开启)
  • ...和汽车工人产卵(ping + ssh?)
  • 负载平衡,以便工作人员不会减慢其他进程(很好?)
  • 某种形式的消息传递

...并且不想重新发明轮子。

C++ 库、bash 脚本、独立程序……都欢迎。

如果您举一个软件示例,请告诉我们它具有上述哪些功能。

4

5 回答 5

4

查看Spread Toolkit,一个 C/C++ 组通信系统。它将允许您以允许您重新平衡分布式工作负载的方式检测节点/进程故障和恢复/启动。

于 2009-05-30T09:26:29.190 回答
2

您正在寻找的东西称为“作业调度程序”。市场上有很多作业调度器,这些是我熟悉的:

  • SGE处理与多台机器上的作业调度相关的所有问题(恢复、监控、优先级、排队)。您的软件不必支持 SGE,因为 SGE 只是提供了一个您提交批处理作业的环境。
  • LSF是一个更好的选择,但不是免费的。

要支持消息传递,请参阅MPI规范。SGE 完全支持基于 MPI 的分发。

于 2009-05-30T14:32:39.163 回答
1

根据您的应用要求,我会查看 BOINC 基础架构。他们在最新版本中实现了一种客户端/服务器通信形式,目前尚不清楚您需要哪种形式的通信。他们的 API 是用 C 语言编写的,我们很容易用 C++ 为它编写了包装器。

BOINC 的另一个优点是它旨在为大型分布式计算项目(如 SETI 或 Rosetta@Home)进行扩展,因此它支持验证、作业分配和管理不同平台的不同应用程序版本等内容。

这是链接:

BOINC 网站

于 2009-05-30T09:43:53.087 回答
1

Hadoop。它有 Map Reduce,但我不确定它是否有我需要的任何其他功能。有人知道吗?

于 2009-05-30T10:15:10.963 回答
0

您确实在寻找“作业调度程序”。节点“静态”注册到作业调度程序。这允许作业调度程序检查节点并确定核心数、RAM、可用暂存盘空间、操作系统等等。所有这些信息都可用于选择工作所需的资源。

作业调度程序还提供集群的基本健康监控。关闭的节点会自动从可用节点列表中删除。正在运行作业的节点(通过调度程序)也会从可用节点列表中删除。

SLURM是您可能会考虑的资源管理器和作业调度程序。SLURM 具有 LSF 和 PBSPro 的集成挂钩。一些 MPI 实现是“SLURM 感知”的,并且可以使用/设置环境变量,这些环境变量将允许 MPI 作业在 SLURM 分配给它的节点上运行。

于 2009-06-23T19:36:21.810 回答