Опции установлены для 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.