You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Condor新手求助:提交.sub文件后任务进入HOLD状态排查

分析你的Condor提交脚本问题

刚接触Condor遇到这种问题很正常,你的.sub文件里有几个典型的新手误区,我帮你逐一拆解清楚:

1. Executable参数指定错误

你写的executable = Train.cxx是C++源代码文件,但Condor的executable要求必须是编译完成的可执行二进制文件(比如Linux下编译后生成的Train或者Train.out)。Condor不会帮你编译代码,你得先在本地把Train.cxx编译成可执行程序,再把这个二进制文件作为executable的值。

2. Transfer_input_files的冗余设置

你传输的TMVA/Factory.h等头文件是编译阶段的依赖,不是程序运行时需要的文件。当你已经编译好可执行程序后,运行时完全不需要这些头文件,所以这部分可以直接删掉,没必要徒增文件传输的负担。

3. Output参数的用途混淆

output = TMVA-top.root是错误的用法!Condor里的output参数是用来捕获程序运行时的标准输出(stdout)日志(比如程序打印的调试信息、运行状态),不是用来指定你的程序生成的ROOT文件。你应该把它改成类似output = Train_run.log的日志文件名,而TMVA-top.root会由你的程序本身生成,之后通过transfer_output_files指定传输回本地。

4. Transfer_output_files的注意事项

你指定了transfer_output_files = Likelihood_Classification/,要注意两个关键点:

  • 确保你的程序确实在任务运行的当前工作目录下生成了这个目录,Condor只会传输任务执行目录下的文件/目录;
  • Condor传输目录时要求目录必须存在,否则会直接触发任务HOLD,所以要保证程序能正确生成这个目录。

修正后的示例.sub文件

executable = Train  # 替换成你编译好的可执行文件名
output = Train.stdout
error = Train.stderr
log = Train.log
# 如果程序运行时需要其他依赖库/数据文件,再在这里添加transfer_input_files
transfer_output_files = TMVA-top.root, Likelihood_Classification/
queue

另外,你可以用condor_q -hold <你的任务ID>命令查看具体的HOLD原因,这能帮你更精准地定位问题哦!

内容的提问来源于stack exchange,提问作者Bianca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:22:29