Проблемы с использованием пакета с Matlabpool - PullRequest
2 голосов
/ 08 января 2012

Я хочу использовать некоторые параллельные функции в Matlab. И выполните следующую команду.

matlabpool open local 12;
batch(funcname,1,{arg},'PathDependencies',p,'Matlabpool',1);

Тогда все процессы молчат до конца времени ... Но без открытия матлаббула. Это закончилось бы нормально. Есть ли конфликты между использованием matlabpool и batch?

Ответы [ 2 ]

1 голос
/ 29 мая 2012

, если вы хотите выполнять пакетирование и анализ одновременно, откройте на один рабочий меньше с помощью matlabpool, чем в противном случае. итак 11 в вашем случае. если вы сначала выполните пакет, а затем Matlabpool, он сделает это автоматически, но не наоборот.

чтобы увидеть очередь:

c=parcluster
c.Jobs

интересно, если вы откроете второй экземпляр Matlab, вы можете получить еще 12 рабочих. но, как ни странно, не с третьим. имеет смысл, хотя я думаю, как будто вы на самом деле используете их все это будет трэш.

1 голос
/ 09 января 2012

Команда matlabpool запускает параллельное задание в локальном планировщике, чтобы дать вам рабочих, на которых можно запускать тело ваших parfor циклов и spmd блоков. Это означает, что, хотя matlabpool открыто, количество рабочих мест, доступных локальному планировщику, уменьшается. Затем, когда вы пытаетесь запустить задание batch, оно может выполняться только при наличии свободных работников.

Вы можете узнать, сколько запущенных заданий у вас есть в локальном планировщике, используя «монитор заданий» из пункта меню «Параллельно» на рабочем столе (ваш сеанс matlabpool будет отображаться там как задание в состоянии running с 12 задачами), или выполнив следующий фрагмент кода:

s = findResource( 'scheduler', 'Type', 'local' );
[pending, queued, running, finished] = findJob(s);
running
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...