gpt4 book ai didi

c++ - Condor 输出文件更新

转载 作者:太空狗 更新时间:2023-10-29 20:44:30 25 4
gpt4 key购买 nike

我正在使用 Condor 运行多个模拟程序,并已对程序进行编码,以便它在控制台中输出进度状态。这是在循环结束时完成的,它只是打印当前时间(这也可以是百分比或耗时)。代码看起来像这样:

printf("START");while (programNeedsToRum) {   // Run code repetitive code...   // Print program status update   printf("[%i:%i:%i]\r\n", hours, minutes, seconds);}printf("FINISH");

当正常执行时(即在终端/cmd/bash 中)这工作正常,但 condor 节点似乎没有 printf() 状态。只有在模拟完成后,所有的状态更新才会输出到文件中,但随后就不再使用了。我提交给 condor 的 *.sub 文件如下所示:

universe = vanillaexecutable = programoutput = out/out-$(Process)error = out/err-$(Process)queue 100

提交后程序执行(这在 condor_q 中得到确认)并且输出文件包含以下内容:

START

只有在程序完成运行后,其相应的输出文件才会显示(示例):

START[0:3:4][0:8:13][0:12:57][0:18:44]FINISH

程序执行时,输出文件仅包含START 文本。所以我得出结论,如果节点执行程序很忙,文件不会更新。所以我的问题是,有没有一种方法可以手动更新输出文件或以更好的方式收集有关程序进度的任何信息?

已经谢谢了

最大

最佳答案

您要做的是使用流式输出选项。查看可以传递给 condor_submitstream_errorstream_output 选项,如下所述:http://research.cs.wisc.edu/htcondor/manual/current/condor_submit.html

默认情况下,HTCondor 将 stdout 和 stderr 本地存储在执行节点上,并在作业完成时将它们传输回提交节点。将 stream_output 设置为 TRUE 将要求 HTCondor 将输出流式传输回提交节点。然后您可以在它发生时对其进行检查。

关于c++ - Condor 输出文件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13157442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com