Matlab 如何在发生错误或异常时处理并行池
我正在使用并行计算工具箱。当我的matlab代码在并行工作程序运行时由于异常/错误而终止时(例如在无限循环内),我必须通过Matlab 如何在发生错误或异常时处理并行池,matlab,Matlab,我正在使用并行计算工具箱。当我的matlab代码在并行工作程序运行时由于异常/错误而终止时(例如在无限循环内),我必须通过delete(gcp)重新启动池,然后重新运行gcp。否则,以下运行将始终冻结。但是重新启动并行池需要太多时间 当我手动取消未来对象取消(futureObject)时,不会发生这种情况,但我不希望每次程序意外终止时都这样做 我可以在matlab脚本开始时取消futureObject,但当我不小心执行clear all时,该对象会被删除,我没有办法只能执行delete(gcp)
delete(gcp)
重新启动池,然后重新运行gcp
。否则,以下运行将始终冻结。但是重新启动并行池需要太多时间
当我手动取消未来对象取消(futureObject)
时,不会发生这种情况,但我不希望每次程序意外终止时都这样做
我可以在matlab脚本开始时取消
futureObject
,但当我不小心执行clear all
时,该对象会被删除,我没有办法只能执行delete(gcp)
。是否有一种方法可以在每次重新启动matlab脚本时自动取消所有futureobject(即使它不再在基本工作区中)?我刚刚决定在脚本的顶层使用try/catch
block和cancel(futureobject)
。听起来像是onCleanup
的用例。您是否尝试过在脚本范围内使用onCleanup
自动取消futureObject
s?您是如何意外地清除所有的?你永远不应该打那个,永远!在任何情况下,解决问题的最简单方法是使代码不抛出错误。例如,看看try
/catch
。