createTask

Создайте новую задачу в задании

Синтаксис

t = createTask(j, F, N, {inputargs})
t = createTask(j, F, N, {C1,...,Cm})
t = createTask(..., 'p1',v1,'p2',v2,...)
t = createTask(...,'Profile', 'ProfileName',...)

Аргументы

t

Объект задачи или вектор объектов задачи.

j

Задание, в котором создается объект задачи.

F

Указатель на функцию, которая вызвана, когда задача оценена, или массив указателей на функцию.

N

Количество выходных аргументов, которые будут возвращены в выполнение функции задачи. Это - двойное, или массив удваивается.

{inputargs}

Массив ячейки строки, задающий входные параметры, которые будут переданы функциональному F. Каждый элемент в массиве ячеек будет передан как отдельный входной параметр. Если это - массив ячеек массивов ячеек, задача создается для каждого массива ячеек.

{C1,...,Cm}

Массив ячеек массивов ячеек, задающих входные параметры к каждой из задач m.

p1, p2

Свойства объекта задачи сконфигурированы при создании объекта.

v1, v2

Начальные значения для соответствующих свойств объекта задачи.

Описание

t = createTask(j, F, N, {inputargs}) создает новый объект задачи в задании j и возвращает ссылку, t, к добавленному объекту задачи. Эта задача выполняет функцию, заданную указателем на функцию или именем функции F, с данными входными параметрами {inputargs}, возвращая выходные аргументы N.

t = createTask(j, F, N, {C1,...,Cm}) использует массив ячеек массивов ячеек m, чтобы создать объекты задачи m в задании j и возвращает вектор, t, ссылок на новые объекты задачи. Каждая задача выполняет функцию, заданную указателем на функцию или именем функции F. C1 массива ячеек предоставляет входные параметры первой задаче, C2 к второй задаче, и так далее, так, чтобы была одна задача на массив ячеек. Каждая задача возвращает выходные аргументы N. Если F является массивом ячеек, каждый элемент F задает функцию для каждой задачи в векторе; это должно иметь элементы m. Если N является массивом, удваивается, каждый элемент задает количество выходных аргументов в пользу каждой задачи в векторе. Поддерживаются многомерные матрицы входных параметров F, N и {C1,...,Cm}; если массив ячеек используется для F или двойного массива для N, его размерности должны совпадать с теми из массива ячеек входных параметров массивов ячеек. Вывод t будет вектором с тем же числом элементов как {C1,...,Cm}. Обратите внимание на то, что, потому что связывающееся задание имеет только одну задачу, эта форма векторизованного создания задачи не подходит для таких заданий.

t = createTask(..., 'p1',v1,'p2',v2,...) добавляет объект задачи с заданными значениями свойств. Для списка допустимых свойств созданного объекта смотрите страницу ссылки на объект parallel.Task. Имя свойства должно быть вектором символов со значением, являющимся соответствующим типом для того свойства. Значения, заданные в этих парах значения свойства, заменяют значения в профиле. Если недопустимое имя свойства или значение свойства будут заданы, объект не будет создан.

t = createTask(...,'Profile', 'ProfileName',...) создает объект задачи со значениями свойств, заданными в кластерном профиле ProfileName. Для получения дополнительной информации об определении и применении кластерных профилей, смотрите, Обнаруживают Кластеры и Профили Кластера Использования.

Примеры

 Пример 4. Создайте задание с одной задачей

Создайте объект задания.

c = parcluster(); % Use default profile
j = createJob(c);

Добавьте объект задачи, который генерирует 10 10 случайную матрицу.

t = createTask(j, @rand, 1, {10,10});

Запустите задание.

submit(j);

Ожидайте задания, чтобы закончить запуститься и получать вывод от оценки задачи.

wait(j);
taskoutput = fetchOutputs(j);

Покажите 10 10 случайную матрицу.

disp(taskoutput{1});
 Пример 5. Создайте задание с тремя задачами

Этот пример создает задание с тремя задачами, каждая из которых генерирует 10 10 случайную матрицу.

c = parcluster(); % Use default profile
j = createJob(c);
t = createTask(j, @rand, 1, {{10,10} {10,10} {10,10}});
 Пример 6. Создайте задачу с различными значениями свойств

Этот пример создает задачу, которая получает дневник рабочего, независимо от установки в профиле.

c = parcluster(); % Use default profile
j = createJob(c);
t = createTask(j,@rand,1,{10,10},'CaptureDiary',true);

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

| | |

Представлено до R2006a