Запуск кода в параллельных пулах

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

Параллельный пул является набором 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)

Параллельный пул можно запускать в различных параллельных окружениях. Для получения дополнительной информации см. раздел «Выбор между окружениями на основе потоков и процессами».

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

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;

См. также

| | | | | | |

Похожие примеры

Подробнее о