Создайте параллельный пул на кластере
parpool
запускает параллельный пул рабочих, использующих кластерный профиль по умолчанию, с размером пула, заданным вашими параллельными настройками и профилем по умолчанию. parpool
создает пул на кластере по умолчанию с его NumWorkers
в области значений [1, preferredNumWorkers]
для идущих параллельно функций языка. preferredNumWorkers
значение, заданное в ваших параллельных настройках.
parpool
добавляет полную функциональность функций языка параллельного программирования в MATLAB® путем создания специального задания на пуле рабочих и подключения клиента MATLAB с параллельным пулом. Функции языка параллельного программирования включают parfor
, parfeval
, parfevalOnAll
SPMD
, и distributed
. Если возможно, рабочая папка на рабочих собирается совпадать с тем из клиентского сеанса MATLAB.
parpool(
создает и возвращает пул с конкретным количеством рабочих. poolsize
)poolsize
может быть положительное целое число или диапазон, указанный как вектор с 2 элементами целых чисел. Если poolsize
область значений, получившийся пул имеет размер как можно больше в области значений, которую требуют.
Определение poolsize
заменяет количество рабочих, заданных в настройках или профиле, и запускает пул точно, что количество рабочих, даже если это должно ожидать их, чтобы быть доступным. Большинство кластеров имеет максимальное количество рабочих, которых они могут запустить. Если профиль задает кластер Планировщика Задания MATLAB, parpool
резервирует его рабочих из числа тех, которые уже запускаются и доступный под тем Планировщиком Задания MATLAB. Если профиль задает локальный или сторонний планировщик, parpool
дает планировщику команду запускать рабочих для пула.
parpool(
или profilename
)parpool(
запускает пул рабочего с помощью кластерного профиля, идентифицированного profilename
,poolsize
)profilename
.
parpool(___,
применяет заданные значения для определенных свойств при запуске пула.Name,Value
)
возвращает параллель. Объект пула к клиентской рабочей области, представляющей пул на кластере. Можно использовать объект пула программно удалить пул или получить доступ к его свойствам. Используйте poolobj
= parpool(___)delete(pool)
закрывать параллельный пул.
Удалите любой startup.m
от вашего пути MATLAB, если вы хотите запустить какой-либо параллельный код включая parpool
. Если вы испытываете затруднения при запуске параллельного пула, смотрите эту страницу MATLAB Answers: https://uk.mathworks.com/matlabcentral/answers/92124-why-am-i-unable-to-use-parpool-with-the-local-scheduler-or-validate-my-local-configuration-of-par все
Индикатор состояния пула в нижнем левом углу рабочего стола показывает клиентское соединение на время сеанса с пулом и состоянием пула. Кликните по значку для меню поддерживаемых действий пула.
С выполнением пула: Без выполнения пула:
Если вы устанавливаете свои параллельные настройки автоматически создавать параллельный пул при необходимости, вы не должны явным образом вызывать parpool
команда. Вы можете явным образом создать пул, чтобы управлять, когда вы подвергаетесь служебному времени подготовки его, таким образом, пул готов к последующим построениям языка параллельного программирования.
delete(poolobj)
закрывает параллельный пул. Ни с чем не сравнимый пул, spmd
и parfor
запуститесь как один поток в клиенте, если ваши параллельные настройки не собираются автоматически запустить параллельный пул для них.
Когда вы используете редактор MATLAB, чтобы обновить файлы на клиенте, которые присоединены к параллельному пулу, те обновления автоматически распространяют рабочим в пуле. (Это автоматическое обновление не применяется к файлам модели Simulink®. Чтобы распространить обновленные файлы модели рабочим, используйте updateAttachedFiles
функция.
Если возможно, рабочая папка на рабочих первоначально собирается совпадать с тем из клиентского сеанса MATLAB. Впоследствии, следующие команды, вводимые в клиентском Командном окне также, выполняются на всех рабочих в пуле:
Это поведение позволяет вам устанавливать рабочую папку и путь поиска файлов команды на всех рабочих, так, чтобы последующие действия пула, такие как parfor
- циклы выполняются в соответствующем контексте.
При изменении папок или добавлении пути с cd
или addpath
на клиентах с операционными системами Windows® значение, отправленное рабочим, является путем UNC для папки, если это возможно. Для клиентов с операционными системами Linux® это - абсолютное местоположение папки.
Если какая-либо из этих команд не работает над клиентом, это не выполняется на рабочих также. Например, если addpath
задает папку, к которой клиент не может получить доступ, addpath
команда не выполняется на рабочих. Однако, если рабочая папка может быть установлена на клиенте, но не может быть установлена, как задано ни на одном из рабочих, вы не возвратили сообщение об ошибке в клиентское Командное окно.
Остерегайтесь этих незначительных различий в поведении в среде смешанной платформы, где клиент не является той же платформой как рабочие, где папки, локальные для или сопоставленный от клиента, не доступны таким же образом для рабочих, или где папки находятся в неразделяемой файловой системе. Например, если у вас есть клиент MATLAB, работающий на операционной системе Windows Microsoft®, в то время как работники MATLAB все работают на операционных системах Linux, том же аргументе к addpath
не может работать над обоими. В этой ситуации можно использовать функциональный pctRunOnAll
гарантировать, что команда работает на всех рабочих.
Другое различие между клиентом и рабочими то, что любой addpath
аргументы, которые являются частью matlabroot
папка не установлена на рабочих. Предположение - то, что основа установки MATLAB уже включена в пути рабочих. Правила для addpath
относительно рабочих в пуле:
Подпапки matlabroot
папка не отправляется рабочим.
Любые папки, которые появляются перед первым вхождением matlabroot
папка добавляется к верхней части пути на рабочих.
Любые папки, которые появляются после первого вхождения matlabroot
папка добавляется после matlabroot
группа папок на путях рабочих.
Например, предположите тот matlabroot
на клиенте C:\Applications\matlab\
. С открытым параллельным пулом выполните следующее, чтобы установить путь на клиенте и всех рабочих:
addpath('P1', 'P2', 'C:\Applications\matlab\T3', 'C:\Applications\matlab\T4', 'P5', 'C:\Applications\matlab\T6', 'P7', 'P8');
Поскольку T3
, T4
, и T6
подпапки matlabroot
, они не установлены на путях рабочих. Таким образом на рабочих, подходящая часть пути, следующего из этой команды:
P1 P2 <worker original matlabroot folders...> P5 P7 P8
Если вы используете Macintosh или Linux, и видите проблемы во время большого параллельного создания пула, смотрите Рекомендуемые Системные Пределы для Macintosh и Linux.
Composite
| delete
| distributed
| gcp
| parallel.defaultClusterProfile
| parallel.pool.Constant
| parcluster
| parfeval
| parfevalOnAll
| parfor
| pctRunOnAll
| spmd