Опции установлены для parfor
создает набор опций для opts
= parforOptions(pool
)parfor
использование объекта pool
пула.
Когда вы создадите несколько пулов, используйте этот синтаксис, чтобы задать который пул запустить parfor
- цикл на.
Совет
Когда вы запускаете parfor
- цикл, MATLAB® автоматически использует параллельный пул, чтобы запустить цикл, если вы доступны.
Если только необходимо запустить parfor
- цикл с помощью кластерного профиля по умолчанию или доступного параллельного пула, рассмотрите использование parfor loopVar=initVal:endval; statements; end
синтаксис вместо того, чтобы использовать parforOptions
.
создает набор опций для opts
= parforOptions(___,Name,Value
)parfor
использование одних или нескольких аргументов name-value. Например, используйте parforOptions(pool,"MaxNumWorkers",M)
запускать parfor
- цикл с помощью объекта pool
пула и максимум
M
рабочие. Задайте аргументы name-value после всех других входных параметров.
parfor
на кластерном ни с чем не сравнимом пулеСоздайте кластерный объект с помощью parcluster
функция, и создает набор parfor
опции с ним. По умолчанию, parcluster
использует ваш кластерный профиль по умолчанию. Проверяйте, что ваш профиль по умолчанию на вкладке Home MATLAB®, параллельно> Выбирают Default Cluster.
cluster = parcluster; opts = parforOptions(cluster);
Запускать parfor
расчеты непосредственно в кластере, передайте parfor
опции как второй входной параметр к parfor
.
Когда вы используете этот подход, parfor
может использовать всех доступных рабочих в кластере, и рабочие становятся доступными, как только цикл завершается. Этот подход также полезен, если ваш кластер не поддерживает параллельные пулы.
values = [3 3 3 7 3 3 3]; parfor (i=1:numel(values),opts) out(i) = norm(pinv(rand(values(i)*1e3))); end
Используйте этот синтаксис, чтобы запустить parfor в большом кластере, не используя рабочих для дольше, чем необходимый.
parfor
Разделение области значенийМожно управлять как parfor
делит итерации на подобласти значений для рабочих с parforOptions
. Управление разделением области значений может оптимизировать эффективность parfor
- цикл. Для лучшей эффективности попытайтесь разделить в подобласти значений, которые являются:
Достаточно большой, что время вычисления является большим по сравнению с издержками планирования подобласти значений
Достаточно маленький, что существует достаточно подобластей значений, чтобы заставить всех рабочих напряженно трудиться
К итерациям раздела в подобласти значений фиксированного размера создайте набор parfor
опции, набор 'RangePartitionMethod'
к 'fixed',
и задайте размер подобласти значений с 'SubrangeSize'
.
opts = parforOptions(parcluster,'RangePartitionMethod','fixed','SubrangeSize',2);
Передайте parfor
опции как второй входной параметр к parfor
. В этом случае, parfor
делит итерации на три группы 2
итерации.
values = [3 3 3 3 3 3]; parfor (i=1:numel(values),opts) out(i) = norm(pinv(rand(values(i)*1e3))); end
К итерациям раздела в подобласти значений различного размера передайте указатель на функцию 'RangePartitionMethod'
пара "имя-значение". Эта функция должна возвратить вектор из размеров подобласти значений, и их сумма должна быть равна количеству итераций. Для получения дополнительной информации об этом синтаксисе смотрите RangePartitionMethod.
opts = parforOptions(parcluster,'RangePartitionMethod', @(n,nw) [2 1 1 2]);
Передайте parfor
опции как второй входной параметр к parfor
. В этом случае, parfor
делит итерации на четыре группы 2
, 1, 1
, и
2
итерации.
values = [3 3 7 7 3 3]; parfor (i=1:numel(values),opts) out(i) = norm(pinv(rand(values(i)*1e3))); end
parfor
на параллельных опциях пула и управленияМожно использовать parforOptions
запускать parfor
на рабочих параллельного пула. Используйте этот подход, когда это необходимо, чтобы зарезервировать постоянное число рабочих для parfor-
цикл. Можно также иметь более прекрасный контроль на как parfor
делит итерации для рабочих.
Создайте параллельный пул с помощью parpool
функция. По умолчанию, parpool
использует ваш кластерный профиль по умолчанию. Проверяйте, что ваш профиль по умолчанию на вкладке MATLAB Home, параллельно> Выбирают Default Cluster. Создайте набор parfor
опции с параллельным объектом пула, и задают опции. Например, задайте подобласти значений фиксированного размера 2
как метод разделения.
p = parpool;
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).
opts = parforOptions(p,'RangePartitionMethod','fixed','SubrangeSize',2);
Передайте parfor
опции как второй входной параметр к parfor
функция. parfor
запускает тело цикла на параллельном пуле и делит итерации согласно opts
.
values = [3 3 3 3 3 3]; parfor (i=1:numel(values),opts) out(i) = norm(pinv(rand(values(i)*1e3))); end
parfor
РабочиеКогда вы запускаете parfor
с или ни с чем не сравнимый пул, по умолчанию, MATLAB выполняет автоматический анализ зависимостей на теле цикла. MATLAB передает требуемые файлы рабочим прежде, чем запустить операторы. В некоторых случаях необходимо явным образом передать те файлы рабочим. Для получения дополнительной информации смотрите, Идентификация программных зависимостей.
Если вы используете parfor
ни с чем не сравнимый пул, используйте parforOptions
передавать файлы. Создайте кластерный объект с помощью parcluster
опция. Создайте набор parfor
опции с кластерным объектом с помощью parforOptions
функция. Чтобы передать файлы рабочим, используйте 'AttachedFiles'
пара "имя-значение".
cluster = parcluster; opts = parforOptions(cluster,'AttachedFiles',{'myFile.dat'});
Передайте parfor
опции как второй входной параметр к parfor
функция. Рабочие могут получить доступ к необходимым файлам в теле цикла.
parfor (i=1:2,opts) M = csvread('myFile.dat',0,2*(i-1),[0,2*(i-1),1,1+2*(i-1)]); out(i) = norm(rand(ceil(norm(M))*1e3)); end
cluster
— Кластерparallel.Cluster
объектКластер в виде parallel.Cluster
объект. Чтобы создать кластерный объект, использовать parcluster
.
Пример: parcluster("local");
pool
— Пулparallel.Pool
объектОбъедините в виде parallel.Pool
объект.
Чтобы создать параллельный пул, использовать parpool
.
Чтобы получить фоновый пул, использовать backgroundPool
.
Пример: parpool("local");
Пример: backgroundPool;
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
opts = parforOptions(cluster,"AttachedFiles","myFile.dat");
RangePartitionMethod
— Метод для разделения итераций в подобласти значений"auto"
(значение по умолчанию) | "fixed"
| указатель на функциюМетод для разделения итераций в подобласти значений в виде "auto"
, "fixed"
, или указатель на функцию. Подобласть значений является непрерывным блоком итераций цикла это parfor
запуски как группа на рабочем. Используйте этот аргумент, чтобы оптимизировать эффективность вашего parfor
- цикл путем определения, как итерации распределяются на рабочих.
Если RangePartitionMethod
"auto"
или если вы не задаете значение, parforOptions
делит parfor
- итерации цикла в подобласти значений различных размеров, чтобы искать хорошую эффективность для разнообразия parfor
- циклы.
Если RangePartitionMethod
"fixed"
, parforOptions
делит parfor
- итерации цикла в подобласти значений фиксированных размеров. Когда вы используете этот метод, необходимо также использовать SubrangeSize
аргумент значения имени, чтобы задать размеры подобласти значений.
Если RangePartitionMethod
указатель на функцию, parforOptions
использует указатель на функцию, чтобы разделить parfor
- итерации цикла в подобласти значений фиксированных размеров.
Функция запускает указатель на функцию как sizes = customFcn(n,nw)
.
n
количество итераций в parfor
- цикл.
nw
количество рабочих, доступных, чтобы запустить цикл.
Когда вы используете пул, чтобы запустить цикл, nw
количество рабочих в параллельном пуле. Когда вы используете кластер, чтобы запустить цикл без пула, nw
NumWorkers
свойство кластера.
sizes
целочисленный вектор из размеров подобласти значений. Для любого значения n
и nw
, сумма векторного sizes
должно быть равно n
.
Пример: parforOptions(cluster,"RangePartitionMethod","auto")
Пример: parforOptions(cluster,"RangePartitionMethod",@(n,nw) ones(1,n))
SubrangeSize
— Максимальное количество итераций в подобласти значенийМаксимальное количество итераций в подобласти значений в виде положительного целочисленного скаляра. Подобласть значений является непрерывным блоком итераций цикла это parfor
запуски как группа на рабочем.
Когда вы используете этот аргумент, необходимо задать RangePartitionMethod
аргумент как "fixed"
.
Пример: parforOptions(cluster,"RangePartitionMethod","fixed","SubrangeSize",5)
AdditionalPaths
— Папки, чтобы добавить к пути поиска файлов MATLAB каждого рабочегоПапки, чтобы добавить к пути поиска файлов MATLAB каждого рабочего, запускающего parfor
- цикл в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов.
Значением по умолчанию является массив пустой ячейки.
Папки добавляются к пути поиска файлов рабочих, когда вы запускаете parfor
- цикл. Когда parfor
- концы цикла, эти папки удалены из пути поиска файлов рабочих.
Если клиент и рабочие имеют различные пути к той же папке, задают папку с помощью пути на рабочих. Например, если путем к папке является /shared/data
на клиенте и /organization/shared/data
на рабочих задайте "/organization/shared/data"
.
Если вы задаете относительные пути, такие как "../myFolder"
, пути разрешены относительно текущей рабочей директории на рабочих.
Задайте AdditionalPaths
постараться не копировать файлы излишне от клиента рабочим. Задайте AdditionalPaths
только, когда файлы доступны на рабочих. Если файлы не доступны, используйте AttachedFiles
отправить файлы рабочим.
Пример: opts = parforOptions(cluster,"AdditionalPaths",["/additional/path1","/additional/path2"])
AttachedFiles
— Файлы и папки, чтобы отправить каждому рабочемуФайлы и папки, чтобы отправить каждому рабочему, запускающему parfor
- цикл в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов.
Значением по умолчанию является массив пустой ячейки.
Файлы и папки отправляются рабочим, когда вы запускаете parfor
- цикл. Когда parfor
- концы цикла, эти файлы и папки удалены из файловой системы каждого рабочего.
Если вы задаете относительные пути, такие как "../myFolder"
, пути разрешены относительно текущей рабочей директории на клиенте.
Если файлы доступны на рабочих, задают AdditionalPaths
вместо этого. Когда вы задаете AdditionalPaths
, вы стараетесь не копировать файлы излишне от клиента рабочим.
AutoAddClientPath
— Отметьте, чтобы отправить клиентский путь рабочимtrue
(значение по умолчанию) | false
Отметьте, чтобы отправить клиентский путь рабочим в виде true
или false
.
Если вы задаете AutoAddClientPath
как true
, добавленные пользователями записи добавляются к пути каждого рабочего, когда вы запускаете parfor
- цикл. Когда parfor
- концы цикла, эти записи удалены из пути каждого рабочего.
AutoAttachFiles
— Отметьте, чтобы скопировать файлы в рабочих автоматическиtrue
(значение по умолчанию) | false
Отметьте, чтобы скопировать файлы в рабочих автоматически в виде true
или false
.
Когда вы разгружаете расчеты рабочим, любые файлы, которые требуются для расчетов на клиенте, должны также быть доступными на рабочих. Если вы задаете AutoAttachFiles
как true
, клиент пытается автоматически обнаружить и присоединить такие файлы. Если вы задаете AutoAttachFiles
как false
, вы выключаете автоматическое обнаружение на клиенте. Если автоматическое обнаружение не может найти все файлы, или если отправка файлов от клиента рабочему является медленной, используйте следующие аргументы.
Если файлы находятся в папке, которая не доступна на рабочих, задайте файлы с помощью AttachedFiles
аргумент. Кластер копирует каждый файл, который вы задаете от клиента рабочим.
Если файлы находятся в папке, которая доступна на рабочих, можно использовать AdditionalPaths
аргумент вместо этого. Используйте AdditionalPaths
аргумент, чтобы добавить пути к пути поиска файлов MATLAB каждого рабочего и постараться не копировать файлы излишне от клиента рабочим.
Автоматически обнаруженные файлы отправляются рабочим, когда вы запускаете parfor
- цикл. Когда parfor
- концы цикла, эти файлы и папки удалены из файловой системы каждого рабочего.
MaxNumWorkers
— Максимальное количество рабочихМаксимальное количество рабочих в виде положительного целочисленного скаляра.
Значением по умолчанию является Inf
.
Если вы задаете MaxNumWorkers
как конечное положительное целое число, ваш parfor
- цикл запустится имеющий до MaxNumWorkers
рабочие.
Если вы задаете MaxNumWorkers
как Inf
, ваш parfor
- цикл запустится со столькими рабочими, сколько доступны.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.