2014-09-25 54 views
1

我有一个matlab处理脚本位于在linux上运行的长处理流水线的中间。超时并杀死并行matlab执行

matlab脚本通过parfor在(8个核心)上并行应用数据集D_i (i=1,2,...,N)的数字N的相同操作。通常,处理整个数据集大约需要2小时(8个核心)。

不幸的是,有时看起来像一个matlab子进程随机崩溃。这使得工作无法完成(并且管道无法完成)。

我确定这不依赖于数据,就好像我特别重新处理进程崩溃的D_i,它的执行没有问题。而且,到目前为止,我已经处理了数千个上述数据集。


如何我现在处理问题(手动......):

后,我开始MATLAB的工作,我定期地(通过一个简单的top)检查计算机上的进程列表;每当我在两个小时的工作后都有一个matlab进程存在时,我肯定知道它已经崩溃了。然后我简单地杀掉它并处理尚未分析过的数据集的一部分。


问:

我期待的建议,关于如何超时ALL MATLAB的进程中运行,并杀死他们,只要他们还活着超过例如2小时CPU。

+0

http://en.wikipedia.org/wiki/Cron – rwong 2014-09-25 10:52:45

+0

@rwong,谢谢。这个过程应该根据CPU的时间而被杀死......虽然我能做到吗? – Acorbe 2014-09-25 10:54:04

+0

cron作业,编写一个脚本从上面解析CPU时间。你可以用脚本做很多事情。 – rwong 2014-09-25 10:56:29

回答