2017-02-21 19 views
0

Я часто запускаю на своем компьютере программы Matlab, скомпилированные с использованием mcc, в котором я выполняю parfor. Я думаю, что каждая программа имеет медленное время запуска, потому что создается параллельный рабочий пул (для запуска параллельного пула требуется около 20 секунд). Для меня было бы более эффективным, если бы пул мог оставаться открытым все время в фоновом режиме. Например, при открытии parpool в интерфейсе matlab он говорит, что паркур будет оставаться открытым в течение 30 минут, и поэтому нет необходимости открывать парку для каждого скрипта matlab. Возможно ли подобное, когда код компилируется или существуют другие решения?Может parfor в matlab скомпилированный код доступа к локальному рабочему пулу

+0

Я думаю, оставляя пул открытым после того, как скомпилированный код остановит его плохую идею! –

ответ

0

Вы можете увеличить время открытия бассейна. Во время тестирования вы можете ввести

>> preferences 

и выберите «Настройки параллельных вычислений» в меню слева. Preferences Menu

Вы можете достичь того же результата, добавив к коду

p = parpool 
p.IdleTimeout = 120 %minutes 

Если у вас есть бассейн открыт в течение более длительного времени, вы должны быть в состоянии запускать несколько сценариев без необходимости открытия и закрытия его множественным раз.

Я бы не оставил его открытым навсегда.

+0

Хорошо, да, это работает при работе в Matlab. Проблема возникает после компиляции кода. Если вы скомпилируете код и запустите его на терминале, каждый раз, когда вы запускаете код, вам нужно открыть новый парпус, потому что он не останется открытым после выполнения кода, и он занимает каждый раз не менее 20 секунд, чтобы открыть пул , Можете ли вы решить это? Мне нужно, чтобы parpool оставался открытым, когда код скомпилирован с использованием mcc. – David

+0

Какова структура вашей программы? Вы упомянули несколько сценариев, попытайтесь открыть более продолжительный паркур в отдельном скрипте, вызовите всех остальных, пока паркур все еще открыт. – roadRunner

+0

Это невозможно для меня, потому что я запускаю каждый скрипт отдельно. Пул должен оставаться открытым, даже когда скрипт заканчивается. Это работает в интерфейсе Matlab, но не при компиляции кода. – David