微磁学模拟|6-OOMMF——续算
写文章,写代码,最害怕的是辛辛苦苦写了1个小时,却因为断电、或者其他异常等等,刚写完东西丢失了。所以,经常Ctrl +S是一个好习惯。但是在计算过程中,如果遇到断电或者服务器异常、系统崩溃等不可抗因素,导致计算终止,如果计算体系小,重新计算也不费事。当然,辛辛苦苦计算大半天,如果能够续算当然是更好的。续算在理论计算中起着关键作用,尤其当模拟体系较大时,下面就简单介绍一下oommf续算的功能。
1.Oxsii启动时选项
Oxsii启动,加载问题时(图1),可以直接读取mif文件,或者勾选restart命令,则在计算时将在查找检查点checkpoint文件,重新启动模拟计算,如在mif文件的同一目录下,查找不到重启文件的restart文件,则模拟计算重启将会失败,提示错误信息,如图2。
2.加载问题Oxsii窗口
Options选项菜单有三个选项:Clear Schedule,checkpoint Control 和 Restart Flag。
Clear Schedule
Clear Schedule 将禁用所有当前活动的输出内容:清理所有选择的步骤step和阶段stage,也就是全部删除输出计划,就像通过单击step和stage的复选框按钮,单击一次修改一个输出目标。这个控制命令可以在加载问题后使用,以覆盖mif文件中任何时间表schedule的命令。
Checkpoint Control
Checkpoint Control 将用于控制求解器状态保存到磁盘;这些保存由oxsii和boxsi重新启动时使用。检查点文件选项的值是要用于求解器状态文件的名称。默认是base file_name.restart。默认情况下,oxsii和boxsi每15分钟向磁盘写入检查点文件,且在检查点时间过后,才会写入检查点文件中,检查点写入发生在求解器迭代之间,所以实际的间隔时间可能比15分钟稍长一些;检查点间隔分钟数是0,那么每个step步骤都会保存,同时会产生restart文件和tmp临时文件;检查点间隔设置为-1,则禁用此功能。如果模拟被中止,例如由于系统崩溃,则可以使用检查点文件重新启动模拟。标准情况下,正常结束模拟,检查点文件自动删除。如果设置为done_only,只有在问题达到终点,才会删除。如果Disposal处理行为改为never永不,则不会删除检查点文件,使用者/用户可以自己手动删除。
Restart Flag
Restart Flag 控制问题加载行为。在一般情况下,重启标志没有选中,所选择的问题会从头开始加载和运行。相反,如果重启标志被设置,那么当一个问题加载后时,会检查是否有重启(检查点)文件。如果没有找到检查点信息,就会出现错误。否则,检查点信息将被用于从保存在该信息中的状态恢复问题。重启标志可以在选项菜单中设置,也可以在加载问题的时勾选restart复选框。
3.Error
遇到检查点写入失败,首先要查看模拟任务是否存放在中文路径下,如图6,放在程序路径中,就会提示图7所示的检查点错误的信息。为避免这种情况发生,应将模拟程序存放在英文路径下更妥当。与此同时,检查点写入失败还会生成一个检查点失败的tmp临时文件,测试结果为更改英文路径即可成功保存检查点文件。
4.续算
此时模拟任务为1,生成了对应的odt数据,且保存了restart文件,续算任务开始时,重新启动mmLaunch,勾选restart,当然mif文件和restart必须是对应的,即可提交续算任务。
总结
之前提过使用 OOMMFLink,但是Flink 不会自动创建保存点,因此读者/用户必须手动执行保存检查点,总之,检查点还是比较强大一个功能。除了故障恢复外,检查点还可以用于暂停和重启应用,等等。当然,也可以禁用检查点,这样的话,少占用内存。读者可以根据自己的需要自行设置。