Cluster computing 提交condor作业期间的代码更新

Cluster computing 提交condor作业期间的代码更新,cluster-computing,jobs,hpc,condor,Cluster Computing,Jobs,Hpc,Condor,当使用condor在专用计算机集群上分发作业时,首先将作业提交到集群,然后等待它们真正开始运行。取决于多种因素,它们可能会在空闲状态下停留相当长的时间,甚至数小时 假设我刚刚编译了将在作业中运行的代码。我可以通过condor提交文件提交作业。然后我意识到我想更改原始代码,要么是因为其中有一些bug,要么是因为我想尝试不同的参数。如果代码在作业仍处于空闲状态时完成编译,那么将在集群中运行哪个版本?换句话说,condor是在提交作业时以某种方式存储代码快照,还是在作业开始运行时仅拾取代码快照 尽管认

当使用
condor
在专用计算机集群上分发作业时,首先将作业提交到集群,然后等待它们真正开始运行。取决于多种因素,它们可能会在空闲状态下停留相当长的时间,甚至数小时

假设我刚刚编译了将在作业中运行的代码。我可以通过
condor
提交文件提交作业。然后我意识到我想更改原始代码,要么是因为其中有一些bug,要么是因为我想尝试不同的参数。如果代码在作业仍处于空闲状态时完成编译,那么将在集群中运行哪个版本?换句话说,
condor
是在提交作业时以某种方式存储代码快照,还是在作业开始运行时仅拾取代码快照


尽管认为第一个选项听起来更合理,但我从自己的工作中得到的证据表明,第二个选项是实际发生的。

当condor_submit运行时,可执行文件会复制到调度程序下的spool目录。这叫做假脱机。如果您希望能够在提交后更改可执行文件,那么最好的做法可能是将可执行文件制作为调用真实可执行文件的shell脚本,并将可执行文件放入传输输入文件列表中。

这很有意义;我错误地认为可执行文件所在的整个目录都会被传输。我的可执行文件实际上是一个shell脚本,它调用
C++
可执行文件。如果我正确理解了您的回答,为了清楚地定义将要运行的代码,我必须传输所有可执行文件、脚本以及最终由我的shell可执行文件使用的其他shell脚本(使用
输入
应传输文件
何时传输文件
命令)。