2017-02-21 24 views
0

我在我的電腦上運行得非常頻繁使用MCC編譯MATLAB程序,我在其中執行PARFOR。每個程序的啓動時間都很慢,我想是因爲創建了並行工作池(啓動並行池需要大約20秒)。如果游泳池在後臺始終保持開放狀態,那對我來說會更有效率。例如,在matlab界面中打開parpool時,它說parpool將保持打開30分鐘,因此不需要爲每個matlab腳本打開parpool。當代碼被編譯時,是否也可以這樣做,或者有其他解決方案嗎?可以PARFOR在MATLAB編譯的代碼訪問本地工人池

+0

我認爲在編譯後的代碼停止它的一個壞主意後打開一個池! –

回答

0

你可以增加池被打開的時間。在測試過程中,您可以鍵入

>> preferences 

,並選擇左側菜單中的並行計算工具箱設置。 Preferences Menu

可以達到同樣的效果添加到代碼

p = parpool 
p.IdleTimeout = 120 %minutes 

如果有游泳池開放更長的時間,你應該能夠無需打開運行多個腳本和關閉它的多個倍。

我會避免離開它永久打開。

+0

嗯,好吧,這工作在Matlab工作。編譯代碼後出現問題。如果您編譯代碼並在終端上啓動代碼,則每次啓動代碼時都必須打開一個新的parpool,因爲代碼執行後它不會保持打開狀態,並且每次至少需要20秒才能打開池。你能解決這個問題嗎?我需要的是當代碼使用mcc編譯時,parpool也保持打開狀態。 – David

+0

你的程序的結構是什麼? 您提到了多個腳本,嘗試在單獨的腳本中打開一個更長的持續parpool,在parpool仍處於打開狀態時調用所有其他腳本。 – roadRunner

+0

對我來說這是不可能的,因爲我已經分別啓動每個腳本。即使腳本結束,游泳池也必須保持打開狀態。這在Matlab接口中工作,但在編譯代碼時不起作用。 – David

相關問題