首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制condor调度的并发进程数

限制condor调度的并发进程数
EN

Stack Overflow用户
提问于 2015-11-26 06:33:18
回答 2查看 400关注 0票数 1

我正在使用condor在几个小时内完成大约100个进程的批处理。在这些过程完成之后,我需要用第一批的结果开始下一批的运行,这个过程重复了几十次。我的condor池>100个核心,我想限制我的condor集群一次只能处理100个进程,这样condor只在第一个进程中的一个进程完成后才开始处理下一个进程。这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2015-11-26 07:38:00

这听起来像是你正在运行一个检查点的作业,然后下一个作业读入那个检查点,做一些事情,写出一个新的检查点,等等10次。我不知道为什么你需要这样分解它,为什么不用一个包装器脚本来查找并使用一个检查点文件,或者从头开始呢?

另一种选择是在提交文件中使用“要求”,并仅列出可运行作业的100台计算机或核心。类似于:

代码语言:javascript
复制
Requirements =  (machine == "astrolab01") || (machine == "astrolab02") || (machine == "astrolab03") 

将确保您不会一次运行3个以上的作业。除非这些机器具有多个内核,否则您需要执行以下操作:

代码语言:javascript
复制
Requirements =  (name == "slot1@astrolab01") || (name == "slot1@astrolab02")
票数 1
EN

Stack Overflow用户

发布于 2016-02-11 02:37:58

您需要使用DAG管理器-它允许您定义作业之间的父子关系,以便您可以在启动第二个作业之前等待第一个作业的结果。

DAGman还有一个MAX_JOBS_RUNNING设置,可以限制活动作业的总数。

这些都记录在8.4手册的2.10节中。您可能需要使用某种类型的脚本来构建DAG文件,并有一个位置可用于存储运行的中间结果-作业不可能直接将数据从父级传递到子级。第一次运行的输出被收集到工作目录中,然后发送到工作目录中的下一个作业。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33927592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档