2014-09-25 77 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

回答