我们的目标是在集群上实现一个分布式系统,该系统将进行资源密集型的基于图像的计算并具有重型存储I/O,具有以下特点:
- 有一个专用的管理计算机节点和多达100个计算节点。集群必须易于扩展。
- 它是围绕作业任务概念构建的。一个作业可能有1到100,000个任务。
- 由用户在管理节点上启动的作业会在计算节点上创建任务。
- 任务会即时创建其他任务。
- 一些任务可能运行几分钟,而其他任务可能需要几个小时。
- 任务按照依赖层次结构运行,该结构可以即时更新。
- 作业可以暂停并稍后恢复。
- 每个任务都需要特定的资源,包括CPU(核心)、内存和本地硬盘空间。当调度任务时,管理器应该知道这一点。
- 任务向管理器报告其进度和结果。
- 管理器知道任务是否存活或挂起。
- 随着任务数量的增加,任务创建变得越来越慢。提交超过数千个任务在时间上是难以承受的。
- 任务无法向管理器报告其进度,只有作业可以。
- 在任务运行期间没有与任务通信,这使得检查任务是否正在运行或可能需要重新启动变得不可能。
- HPCS只知道节点、CPU核心和内存作为资源单位。我们无法引入我们自己的资源单位(如可用磁盘空间、自定义硬件设备等)。