我正在使用 Condor 运行几个模拟,并对程序进行了编码,以便它在控制台中输出进度状态。这是在循环结束时完成的,它只是打印当前时间(这也可以是百分比或经过的时间)。代码看起来像这样:
printf("开始"); 而(programNeedsToRum){ // 运行代码重复代码... // 打印程序状态更新 printf("[%i:%i:%i]\r\n", 小时, 分钟, 秒); } printf("完成");
正常执行时(即在终端/cmd/bash 中)这工作正常,但秃鹰节点似乎没有printf()
状态。仅在模拟完成后,所有状态更新都已输出到文件中,但不再使用。我提交给 condor 的 *.sub 文件如下所示:
宇宙=香草 可执行文件 = 程序 输出 = out/out-$(进程) 错误 = out/err-$(进程) 队列 100
提交后,程序执行(在 中确认condor_q
)并且输出文件包含以下内容:
开始
只有在程序完成运行其相应的输出文件后才会显示(示例):
开始 [0:3:4] [0:8:13] [0:12:57] [0:18:44] 结束
在程序执行时,输出文件只包含START
文本。所以我得出的结论是,如果节点执行程序很忙,文件不会更新。所以我的问题是,有没有办法手动更新输出文件或以更好的方式收集有关程序进度的任何信息?
已经谢谢了
最大限度