6

我们的目标是在集群上实现一个分布式系统,该系统将执行具有大量存储 I/O 的基于图像的资源消耗计算,具有以下特点:

  1. 有一个专用的管理器计算机节点和多达 100 个计算节点。集群必须易于扩展。
  2. 它是围绕工作任务概念构建的。一个作业可能有 1 到 100,000 个任务。
  3. 由用户在管理节点上发起的作业会导致在计算节点上创建任务。
  4. 任务动态创建其他任务。
  5. 一些任务可能会运行几分钟,而另一些可能需要几个小时。
  6. 任务根据依赖层次结构运行,可以动态更新。
  7. 该作业可能会暂停并稍后恢复。
  8. 每个任务都需要特定的资源,如 CPU(内核)、内存和本地硬盘空间。经理在安排任务时应该意识到这一点。
  9. 这些任务将他们的进度和结果告诉经理。
  10. 经理知道任务是活动的还是挂起的。

我们发现 Windows HPC Server 2008 (HPCS) R2 在概念上非常接近我们的需求。但是,有一些关键的缺点:

  1. 随着任务数量的增加,任务的创建速度呈指数级增长。提交超过数千个任务在时间上是难以忍受的。
  2. 任务无法将其进度报告给经理,只有作业可以。
  3. 在任务运行期间没有与任务通信,这使得无法检查任务是否正在运行或可能需要重新启动。
  4. HPCS 只知道节点、CPU 内核和内存作为资源单元。我们不能引入我们自己的资源单元(如可用磁盘空间、自定义硬件设备等)。

这是我的问题:是否有人知道和/或有分布式计算框架的经验可以帮助我们?我们正在使用 Windows。

4

8 回答 8

6

我会看看Condor高吞吐量计算项目。它支持 Windows(以及 linux 和 OSX)客户端和服务器,使用DAGman处理任务之间的复杂依赖关系,并且可以暂停(甚至移动)任务。我体验过基于 Condor 的系统,它可以扩展到大学校园内的数千台机器。

于 2010-06-30T12:57:22.353 回答
3

平台 LSF将满足您的一切需求。它在 Windows 上运行。它是商业的,可以在支持下购买。

是的。 1. 有一个专用的管理器计算机节点和最多100个计算节点。集群必须易于扩展。

的 2. 它是围绕工作任务概念构建的。一个作业可能有 1 到 100,000 个任务。

3. 由用户在管理节点上发起的作业会导致在计算节点上创建任务。

4. 任务动态创建其他任务。

5. 一些任务可能会运行几分钟,而另一些可能需要几个小时。

6. 任务根据依赖层次结构运行,可以动态更新。

7. 该作业可能会暂停并稍后恢复。

8. 每个任务在 CPU(内核)、内存和本地硬盘空间方面都需要特定的资源。经理在安排任务时应该意识到这一点。

9. 任务将进度和结果反馈给经理。

10. 经理知道任务是活动的还是挂起的。

于 2010-07-13T14:26:11.893 回答
0

我会推荐 Beowulf,因为 Beowulf 的行为更像是一台机器,而不是许多工作站。

于 2010-07-01T09:15:49.367 回答
0

如果您不介意在云中托管您的项目,您可能想看看Windows Azure / Appfabric。AFAIK 它允许您通过工作流分配工作,并且随着负载的增加,您可以动态添加更多工作机器来处理您的工作。

于 2010-07-11T10:48:04.363 回答
0

您绝对可以使用Data Synapse Grid Server解决此类问题。

  1. 有一个专用的管理器计算机节点和多达 100 个计算节点。集群必须易于扩展。是的,Broker 可以轻松处理 2000 个引擎。
  2. 它是围绕工作任务概念构建的。一个作业可能有 1 到 100,000 个任务。是的,我已经排了超过 250,000 个任务而没有问题。最终你会耗尽内存。
  3. 由用户在管理节点上发起的作业会导致在计算节点上创建任务。是的
  4. 任务动态创建其他任务。可以,虽然我不推荐这种模型
  5. 一些任务可能会运行几分钟,而另一些可能需要几个小时。是的
  6. 任务根据依赖层次结构运行,可以动态更新。是的,但我会在网格计算基础架构之外进行管理
  7. 该作业可能会暂停并稍后恢复。是的
  8. 每个任务都需要特定的资源,如 CPU(内核)、内存和本地硬盘空间。经理在安排任务时应该意识到这一点。是的
  9. 这些任务将他们的进度和结果告诉经理。是的

` 10. 经理知道任务是存活还是挂起。是的

于 2010-08-04T22:25:35.123 回答
0

你看过贝奥武夫吗?有很多发行版可供选择,还有很多自定义选项。您应该能够找到满足您需求的东西...

于 2010-06-30T12:41:39.010 回答
0

试试gridgain 。这应该使运行时添加节点变得非常容易,并且您可以使用 jmx 接口监视/管理集群

于 2010-07-07T13:22:23.943 回答
-1

您检查过SunGrid Engine吗?我已经很久没有使用它了,我从来没有使用过它的全部功能,但这是我的理解。

  1. 有一个专用的管理器计算机节点和多达 100 个计算节点。集群必须易于扩展。是的
  2. 它是围绕工作任务概念构建的。一个作业可能有 1 到 100,000 个任务。没有把握
  3. 由用户在管理节点上发起的作业会导致在计算节点上创建任务。是的
  4. 任务动态创建其他任务。我认同?
  5. 一些任务可能会运行几分钟,而另一些可能需要几个小时。是的
  6. 任务根据依赖层次结构运行,可以动态更新。没有把握
  7. 该作业可能会暂停并稍后恢复。没有把握
  8. 每个任务都需要特定的资源,如 CPU(内核)、内存和本地硬盘空间。经理在安排任务时应该意识到这一点。很确定
  9. 这些任务将他们的进度和结果告诉经理。很确定

` 10. 经理知道任务是存活还是挂起。是的

于 2010-07-09T21:59:33.950 回答