4

我目前正在集群上运行一段 Python 代码。slurm 对我实施的部分规则是我的代码的挂钟运行时间有时间限制。大多数时候这并不是一个真正的问题,因为我可以简单地使用 pickle 检查我的代码,然后重新启动它。

然而,在代码的最后,我需要写出我的所有数据(在所有计算完成之前我不能写),这可能需要一些时间,因为可以收集非常大的数据。

我现在的问题是,在某些情况下,代码会被 slurm 终止,因为它超出了运行时间限制。

有没有办法中断写操作,停止代码,然后从我离开的地方重新开始?

4

1 回答 1

0

假设您将数据放在列表或元组中。也许是生成器功能?

#Create generator function
def Generator():
    data=['line1','line2','line3','line4']:
    for i in data:
        yield i    
output=Generator() #reference it
.......
......

if [time conditions is true]:   
     file-open("myfile","a")
     file.write(str(next(output))
else:
     [Do something]

您还可以使用尝试捕获异常并重新启动您的主要功能

try:
    MainFunction() #main function with generator next calls
except [you error Error]:
    MainFunction() #restart main function
于 2015-09-14T10:51:38.857 回答