createCommunicatingJob

Создайте связывающееся задание на кластере

Синтаксис

job = createCommunicatingJob(cluster)
job = createCommunicatingJob(...,'p1',v1,'p2',v2,...)
job = createCommunicatingJob(...,'Type','pool',...)
job = createCommunicatingJob(...,'Type','spmd',...)
job = createCommunicatingJob(...,'Profile','profileName',...)

Описание

job = createCommunicatingJob(cluster) создает связывающийся объект задания для идентифицированного кластера.

job = createCommunicatingJob(...,'p1',v1,'p2',v2,...) создает связывающийся объект задания с заданными значениями свойств. Для списка допустимых свойств созданного объекта смотрите страницу ссылки на объект parallel.Job. Имя свойства должно быть вектором символов со значением, являющимся соответствующим типом для того свойства. В большинстве случаев значения, заданные в этих парах значения свойства, заменяют значения в профиле. Но когда вы задаете AttachedFiles или AdditionalPaths во время создания задания, настройки объединены с заданными в применимом профиле. Если недопустимое имя свойства или значение свойства будут заданы, объект не будет создан.

job = createCommunicatingJob(...,'Type','pool',...) создает связывающееся задание типа 'pool'. Это - значение по умолчанию, если 'Type' не задан. Задание 'pool' запускает заданную функцию задачи с параллельным пулом, доступным, чтобы запустить тело циклов parfor или блоков spmd. Обратите внимание на то, что только один рабочий запускает функцию задачи, и остальная часть рабочих в кластере формирует параллельный пул. Таким образом на кластере рабочих N для задания типа 'pool', только N-1 рабочие формируют фактический пул, который выполняет spmd и код parfor, найденный в функции задачи.

job = createCommunicatingJob(...,'Type','spmd',...) создает связывающееся задание типа 'spmd', где заданные выполнения функции задачи одновременно на всех рабочих и функциях lab* могут использоваться для связи между рабочими.

job = createCommunicatingJob(...,'Profile','profileName',...) создает связывающийся объект задания со значениями свойств, заданными в профиле 'profileName'. Если никакой профиль не задан, и кластерному объекту задали значение в его свойстве 'Profile', профиль кластера автоматически применяется.

Примеры

 Пример 1. Объедините задание передачи типа

Рассмотрите функциональный 'myFunction', который использует цикл parfor:

function result = myFunction(N)
    result = 0;
    parfor ii=1:N
        result = result + max(eig(rand(ii)));
    end
end

Создайте связывающийся объект задания оценить myFunction на кластере по умолчанию:

myCluster = parcluster;
j = createCommunicatingJob(myCluster,'Type','pool'); 

Добавьте задачу в задание, предоставив входной параметр:

createTask(j, @myFunction, 1, {100});

Определите номер рабочих, требуемых для параллельного выполнения:

j.NumWorkersRange = [5 10];

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

submit(j);

Ожидайте задания, чтобы закончить и получить его результаты:

wait(j)
out = fetchOutputs(j)

Удалите задание из кластера.

delete(j);

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

| | | | |

Представленный в R2012a