我们的目标是在集群上实现一个分布式系统,该系统将执行具有大量存储 I/O 的基于图像的资源消耗计算,具有以下特点:
- 有一个专用的管理器计算机节点和多达 100 个计算节点。集群必须易于扩展。
- 它是围绕工作任务概念构建的。一个作业可能有 1 到 100,000 个任务。
- 由用户在管理节点上发起的作业会导致在计算节点上创建任务。
- 任务动态创建其他任务。
- 一些任务可能会运行几分钟,而另一些可能需要几个小时。
- 任务根据依赖层次结构运行,可以动态更新。
- 该作业可能会暂停并稍后恢复。
- 每个任务都需要特定的资源,如 CPU(内核)、内存和本地硬盘空间。经理在安排任务时应该意识到这一点。
- 这些任务将他们的进度和结果告诉经理。
- 经理知道任务是活动的还是挂起的。
我们发现 Windows HPC Server 2008 (HPCS) R2 在概念上非常接近我们的需求。但是,有一些关键的缺点:
- 随着任务数量的增加,任务的创建速度呈指数级增长。提交超过数千个任务在时间上是难以忍受的。
- 任务无法将其进度报告给经理,只有作业可以。
- 在任务运行期间没有与任务通信,这使得无法检查任务是否正在运行或可能需要重新启动。
- HPCS 只知道节点、CPU 内核和内存作为资源单元。我们不能引入我们自己的资源单元(如可用磁盘空间、自定义硬件设备等)。
这是我的问题:是否有人知道和/或有分布式计算框架的经验可以帮助我们?我们正在使用 Windows。