Запустите код по параллельным пулам

Что такое параллельный пул?

Параллельный пул является группой рабочих MATLAB® в вычислить кластере или рабочем столе. По умолчанию параллельный пул запускает автоматически при необходимости функциям языка параллельного программирования такой как parfor. Можно задать размер пула по умолчанию и кластер в параллельных настройках. Панель настроек отображает ваш размер пула и кластер, когда вы выбираете Parallel Preferences в меню Parallel. Можно изменить размер пула и кластер в меню Parallel. В качестве альтернативы можно выбрать кластер и объединить использование размера parcluster и parpool соответственно, на командной строке MATLAB. Смотрите изображение для большего количества детали.

Рабочие в параллельном пуле могут использоваться в интерактивном режиме и связаться друг с другом в течение времени жизни задания. Можно просмотреть ваш parpool задания в Мониторе Задания. В то время как эти рабочие пула резервируются для вашего интерактивного использования, они не доступны для других пользователей. У вас может быть только один параллельный пул за один раз от клиентского сеанса MATLAB. В MATLAB текущий параллельный пул представлен parallel.Pool объект.

Автоматически запустите и остановите параллельный пул

По умолчанию параллельный пул запускается автоматически при необходимости определенным функциям языка параллельного программирования. Много функций могут автоматически запустить параллельный пул, включая:

Ваши параллельные настройки задают, которые кластеризируются, пул работает, и предпочтительное количество рабочих в пуле. Чтобы получить доступ к вашим настройкам, на вкладке Home, в разделе Environment, нажимают Parallel> Parallel Preferences.

Альтернативные способы запуститься и остановить пулы

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

Управляйте параллельным пулом с рабочего стола MATLAB

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

В MATLAB Online параллельный индикатор состояния не отображается по умолчанию. Необходимо запустить параллельный пул сначала при помощи parpool или любая из функций, которые автоматически запускают параллельный пул.

Кликните по значку индикатора и выберите Start Parallel Pool. Размер пула и кластер заданы вашими параллельными настройками и кластером по умолчанию. Ваш кластер по умолчанию обозначается галочкой в меню Parallel> Default Cluster.

Пункты меню отличаются, когда пул запускается. Вы можете:

  • Просмотрите количество рабочих и кластерного имени

  • Измените время до автоматического завершения работы

  • Закройте параллельный пул

Чтобы остановить пул, можно также выбрать Shut Down Parallel Pool.

Интерфейс программирования

Запустите Параллельный Пул.  Можно запустить и остановить параллельный пул программно при помощи альтернатив определения или настроек по умолчанию.

Открыть параллельный пул на основе ваших настроек настройки:

parpool

Открыть пул определенного размера:

parpool(4)

Чтобы использовать кластер кроме вашего значения по умолчанию и задать, куда пул запускается:

parpool('MyCluster',4)

Можно запустить параллельный пул на различных параллельных средах. Для получения дополнительной информации смотрите, Выбирают Between Thread-Based и Process-Based Environments.

Закройте Параллельный Пул.  Чтобы получить текущий параллельный пул и использование, которые возражают, когда это необходимо, чтобы закрыть пул:

p = gcp;
delete(p)

Убедитесь, что Никакой Параллельный Пул не Запускается.  Когда вы даете команду gcp без аргументов вы можете непреднамеренно открыть пул. Избегать этой проблемы:

delete(gcp('nocreate'))

Объедините размер и кластерный выбор

Существует несколько мест, чтобы задать размер пула. Несколько факторов могут ограничить размер пула. Фактический размер вашего параллельного пула определяется комбинацией следующего:

  1. Лицензирование или размер кластера

    Максимальный предел на количестве рабочих в пуле ограничивается количеством рабочих в вашем кластере. Этот предел может быть определен количеством доступных лицензий MATLAB Parallel Server™. В случае Планировщика Задания MATLAB предел может быть определен количеством рабочих, запускающихся в кластере. Локальный кластер, работающий на клиентской машине, не требует никакого лицензирования вне того для Parallel Computing Toolbox™. Предел на количестве рабочих достаточно высок, чтобы поддержать область значений известного настольного оборудования.

  2. Кластерное количество профиля рабочих (NumWorkers)

    Кластерный объект может установить жесткий предел для количества рабочих, которых вы задаете в кластерном профиле. Даже если вы запрашиваете больше рабочих в командной строке или в ваших настройках, вы не можете превысить предельный набор в применимом профиле. Попытка превысить этот номер генерирует ошибку.

  3. Параметр командной строки

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

  4. Параллельные настройки

    Если вы не задаете размер пула в командной строке, MATLAB пытается начать пул с размера, определенного вашими параллельными настройками. Это значение является настройкой, не требованием или запросом об определенном количестве рабочих. Таким образом, если пул не может запуститься со стольких же рабочих, сколько требуется в ваших настройках, вы получаете меньший пул без любых ошибок. Можно установить значение Preferred number of workers к большому количеству, так, чтобы это никогда не ограничивало размер пула, который создается. Если вы нуждаетесь в точном количестве рабочих, задаете номер в командной строке.

Для выбора кластера, в котором запускается пул, приоритет определяется следующим.

  1. Аргумент объекта кластера командной строки заменяет установку профиля по умолчанию и использует кластер, идентифицированный профилем 'MyProfile'.

    c = parcluster('MyProfile');
    p = parpool(c);
  2. Кластер задан в профиле по умолчанию.

    p = parpool;

Смотрите также

| | | | | | |

Связанные примеры

Больше о