我有一個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。
http://en.wikipedia.org/wiki/Cron – rwong 2014-09-25 10:52:45
@rwong,謝謝。這個過程應該根據CPU的時間而被殺死......雖然我能做到嗎? – Acorbe 2014-09-25 10:54:04
cron作業,編寫一個腳本從上面解析CPU時間。你可以用腳本做很多事情。 – rwong 2014-09-25 10:56:29