1

考虑下面的代码,它在一个有壁挂时间的集群上运行(#BSUB -W 10:00):

pdf("myPlots.pdf")
for(i in 1:300){
# a lot of data processing, unfortunately no data is being saved...
# ...

# then plot output
plot(1)
}
dev.off()

上面的代码在竞争 for 循环之前退出,(因为 walltime)并且 PDF 不完整。然后,我用这个网站恢复,所以绘图数据在文件中,只是不完整。

有没有其他方法可以恢复?也许在 PDF 文件中添加一些文本(使用文本编辑器)以使 PDF 文件完整?

4

1 回答 1

0

我建议要么抬高桥,要么降低河流。

也就是说,我会考虑对您的算法进行两种可能的修改之一,具体取决于您正在做什么(这里没有太多细节,所以我正在考虑):要么让你的每次迭代循环一个完整的任务,以防它是你的挂钟时间到期之前的最后一个循环,或者调整你的循环计数或挂钟限制,让工作更频繁地完成。

如果你不能改变你的循环计数或walltime,看看你是否可以修改你的循环过程,以便每次迭代都附加到前一个迭代,这样任何循环都以完整的输出结束,因此是否会有另一个循环并不重要迭代跟随。

否则,要么将循环限制降低到可以可靠完成的某个计数(例如 200 或 250),要么将 walltime 限制扩展到某个值,以使任务在正常系统负载下完成。现在你正把自己置于一个艰难的境地之间;一个或另一个将不得不移动。

于 2016-08-10T15:08:12.740 回答