workflow - 使用 DAG 的 Condor 作业以及一些需要运行同一主机的作业

标签 workflow distributed cluster-computing hpc condor

我有一个计算任务,它被分成几个具有依赖性的单独程序执行。我使用 Condor 7 作为任务调度程序(使用 Vanilla Universe,由于对程序的限制超出了我的能力范围,因此不涉及检查点),因此 DAG 看起来像是一个自然的解决方案。然而,有些程序需要在同一主机上运行。我在 Condor 手册中找不到有关如何执行此操作的引用。

DAG 文件示例:

JOB  A  A.condor 
JOB  B  B.condor 
JOB  C  C.condor    
JOB  D  D.condor
PARENT A CHILD B C
PARENT B C CHILD D

我需要表达的是B和D需要运行在同一个计算机节点上,并且不破坏B和C的并行执行。

感谢您的帮助。

最佳答案

Condor 没有任何简单的解决方案,但至少有一个可行的办法:

让 B 在执行节点上留下一些状态,可能以文件的形式,显示类似 MyJobRanHere=UniqueIdentifier" 的内容。使用 STARTD_CRON support 检测到这一点并在其中通告它机器 ClassAd。让 D 使用 Requirements=MyJobRanHere=="UniqueIdentifier"。D 最终清理的一部分,或者可能是新节点 E,它会删除状态。如果您正在运行大量工作完成后,您可能需要偶尔清理剩余的状态。

关于workflow - 使用 DAG 的 Condor 作业以及一些需要运行同一主机的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2340004/

相关文章:

redis - Predis - 从连接池中删除服务器

apache-spark - Spark 2.2 Join 因庞大的数据集而失败

php - 什么是从开始(计划)到结束(测试和生产)的良好、组织良好的 Web 开发工作流程?

python - 在 Django Admin 中实现工作流程 - Django

python - 如何在 snakemake 中引用规则的输出

distributed - 如何阻止 mesos 向框架提供资源?

mysql - CouchDB 与关系数据库的分布式一致性?

mysql - 需要在 ubuntu 中配置 mysql 集群的教程 (lucid)

node.js - 如何在 socket.io-client 上使用集群?

visual-studio - Sharepoint 工作流程开发(2 部分问题)