我正在编写一个应用程序,可以使用非常基本的function在任何集群资源调度程序( SGE , LSF或SLURM等)上运行。
我想知道是否存在一个框架/抽象层与产品不可知的方式与这些工具交互?
所有主要资源调度程序直接或通过附加的libray支持DRMAA API。 大多数产品都支持v1 API,但其范围相当有限,基本上只处理作业提交,并且只提供一个通用的function子集。 v2 API提供了作业控制和监视function,但据我所知还没有被广泛采用。
由于大多数集群之间不共享用户和资源,因此没有抽象层型软件被采纳为分布式计算的主stream。 有一些例外,例如一些大学和学术机构雇用Condor来利用遍布整个校园的台式机,但是对于某些types的工作并不适合。
如果您使用的不是PBS变体,甚至是调度程序之间的某些东西,在尝试利用某些特性时可能会出现一些奇怪的不一致,但是调度程序有时可能会相当复杂。