【发布时间】:2013-01-24 16:33:28
【问题描述】:
我正在使用基于 PBS 的集群并在一组节点上并行运行 IPython,每个节点具有 24 或 32 个内核和从 24G 到 72G 的内存;这种异质性是由于我们的集群有它的历史。此外,我有一些作业要发送到 IPython 集群,这些作业具有不同的资源要求(内核和内存)。我正在寻找一种将作业提交到 ipython 集群的方法,该集群了解它们的资源需求和可用引擎的资源需求。我想有一种方法可以使用 IPython 功能优雅地处理这种情况,但我还没有找到。关于如何进行的任何建议?
【问题讨论】:
-
您的任务是独立的,还是需要在特定节点上维护一系列任务?
-
我正在运行一个生物信息学管道,所以这些任务是原子的,但有依赖关系。许多任务只是对第三方软件的 subprocess.calls,其中一些可能需要多个内核并且需要大量内存。
-
什么样的依赖?您的意思是某些任务必须先在节点上运行,还是只有某些节点才能运行某些任务?
-
感谢耐心和有用的问题。一项工作依赖于一个或多个其他工作。否则,作业独立于节点分配。特别是,所有作业都会生成文件;先前作业的输出文件是相关作业的输入。作业依赖部分在 IPython 并行中有很好的记录。我的主要问题是管理系统资源。
-
好的,那么我想我已经准备好给出一个答案了 - 你想根据节点资源 (cpu/mem) 指定这些初始任务的去向吗?
标签: python parallel-processing cluster-computing ipython