Condor,OGE和Torque都可以帮助您实现这一目标,但只有Condor的DAGMan工具具有内置的依赖性管理。DAGMan使您可以建立一个有向的无环图来描述您的工作流程,而经理则负责在工作流程中移动作业并评估流程中每个步骤的通过/失败结果。Condor与平台无关,这意味着DAGMan也是如此,并且当父级在Linux或Windows上运行时,您当然可以在AIX上运行一个子步骤。DAGMan并不关心作业在哪里运行,只是退出代码是通过还是失败。
选择软件的任何技巧,或者开源或商业化是否更好?
有一些警告,我认为这个领域的自由社区非常值得研究。
OGE现在处于一个怪异的空间。运行Oracle生产的GE变种不再是免费的,并且Oracle不再提供它将其写回到GE SCC的代码,但是存在着大量的代码分支,它们试图作为免费的开放源代码项目来使用。特别是Univa领导了这项工作,雇用了前Sun GE开发人员继续致力于开源,免费提供的GE变体。Grid Engine有两个作用:易于设置,它可以处理短时间(少于2分钟)的作业,而不会在作业上增加大量的调度开销,从而降低了吞吐量。很大的缺点是对Windows的支持不是很好。我们中的一些人在很多年前就努力将其移植到Cygwin上,但是可以肯定的是它不如原生。
现在,Condor是您提到的三种技术的我的最爱。Condor周围有一个强大的社区,该软件非常成熟(现在已有20多年的历史了)。Windows和POSIX OS的本机支持意味着它可以在整个地方很好地运行。前面提到的DAGMan只是Condor随附的众多出色作品之一。设置起来可能有些复杂,但是一旦启动并运行,它就会变得坚如磐石。它具有一种非常灵活的语言,用于进行作业<->机器匹配并为您的资源建立使用规则。它还支持在计算机上进行动态预配置,让作业选择所需的计算机资源量,然后将差异重新广告化为仍然可用。它支持全局资源计数器,因此您可以限制诸如软件许可证之类的事情。而且当然,它具有DAGMan,这是用于工作流管理的功能强大的工具。Condor的缺点是短时间作业的调度开销可能很麻烦。理想情况下,您希望作业的运行时间超过2分钟,否则调度将开始成为系统中作业时间的很大一部分。
扭矩有点小众。我恐怕对此一无所知。与Grid Engine相比,它比Condor更具优势。@warren提到了付费的附加组件,可以扩展基本的免费Torque的功能。
如果您想尝试这三种技术并查看它们如何与您的特定工作负载一起使用,CycleCloud可以启动使用Condor,GridEngine或Torque预先配置的安全,虚拟化池,因此无需花费时间来找出这些东西就你而言。旋转每种技术的小池并在具有代表性的工作负载下进行尝试,将花费数美元。(免责声明:我为Cycle Computing工作,我们制作CycleCloud)