回复 1楼miked的帖子 给的信息太少,但至少你可以自己估算一下时间分几批,比如先跑个1:100000 nedwed2004 发表于 2022-02-22 11:47
不能分批的话,保存结果,后面再算的话,前面算完的结果就已知 程序最前面加一个check结果就行,有了就不用重新算 perch88 发表于 2022-02-22 11:56
主要是如何保存1:100000这个批次的运行结果呢? 存在硬盘的文件里? 但是我的循环是在并行上的。如何在好几个并行运行的cores上对同一个文件进行写操作呢? miked 发表于 2022-02-22 12:26
一个程序,在High performance computer上运行。但是每48小时,就被管理员中断。 这个程序需要运行7天左右。 请问,如何断点恢复?就是每次程序从上次的运行断点处接着运行。
程序是下面这样的。实际程序是并行的。下面的是串行的。
for (i in 1:1450818000 ) { out[i, ] = f(i) }
给的信息太少,但至少你可以自己估算一下时间分几批,比如先跑个1:100000
主要是如何保存1:100000这个批次的运行结果呢? 存在硬盘的文件里?
但是我的循环是在并行上的。如何在好几个并行运行的cores上对同一个文件进行写操作呢?
谢谢。
关键是保存已经算好的结果。
这些已经算好的结果来自于不同的处理器,怎么才能做到,不同的处理器,对同一个文件进行写操作?
分几个文件存,回头再合并就是了。
https://access.redhat.com/articles/2455211
https://arxiv.org/abs/2103.03311