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 страница ссылки на объект. Имя свойства должно быть вектором символов со значением, являющимся соответствующим типом для того свойства. В большинстве случаев значения, заданные в этих парах значения свойства, заменяют значения в профиле.

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

  • Если файлы находятся в папке, которая не доступна на рабочих, установите AttachedFiles свойство. Кластер копирует каждый файл, который вы задаете от клиента рабочим.

  • Если файлы находятся в папке, которая доступна на рабочих, можно установить AdditionalPaths свойство вместо этого. Используйте AdditionalPaths свойство добавить пути к MATLAB каждого рабочего® путь поиска файлов и старается не копировать файлы излишне от клиента рабочим.

Если вы задаете 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