Поскольку задачи задания оценены на различных машинах, каждая машина должна иметь доступ ко всем файлам, должен был оценить его задачи. Основные механизмы для совместного использования кода объяснены в следующих разделах:
Примечание
Для примера, который показывает, как совместно использовать код с рабочими, использующими batch
, смотрите Пакетное задание Запуска и доступ к Файлам от Рабочих.
Если рабочие, у всех есть доступ к тем же дискам в сети, они могут получить доступ к необходимым файлам, которые находятся на этих совместно используемых ресурсах. Это - предпочтительный метод для обмена данными, когда это минимизирует сетевой трафик.
Необходимо задать каждый путь поиска файлов сеанса рабочего так, чтобы он искал файлы в нужных областях кадра. Можно задать путь:
При помощи AdditionalPaths
задания свойство. Это - предпочтительный метод для того, чтобы установить путь, потому что это характерно для задания.
AdditionalPaths
идентифицирует папки, которые будут добавлены к верхней части пути поиска файлов команды сеансов рабочего для этого задания. Если вы также задаете AttachedFiles
, AttachedFiles
выше AdditionalPaths
на пути рабочих.
Когда вы задаете AdditionalPaths
во время создания задания настройки объединены с заданными в применимом кластерном профиле. Установка AdditionalPaths
на объекте задания после того, как это будет создано, не комбинирует новую установку с настройками профиля, но перезаписывает существующие настройки для того задания.
AdditionalPaths
пусто по умолчанию. Для среды смешанной платформы векторы символов могут задать и UNIX® и пути к стилю Microsoft® Windows®; те, которые устанавливают, которые не являются соответствующими или не найденные для конкретной машины, генерируют предупреждения и проигнорированы.
Этот пример устанавливает путь рабочего MATLAB® в среде смешанной платформы, чтобы использовать функции в обоих центральный репозиторий /central/funcs
и отдел архивирует /dept1/funcs
, который у каждого также есть Windows UNC path.
c = parcluster(); % Use default job1 = createJob(c); ap = {'/central/funcs','/dept1/funcs', ... '\\OurDomain\central\funcs','\\OurDomain\dept1\funcs'}; job1.AdditionalPaths = ap;
Путем помещения path
команда в любом из соответствующих файлов запуска для рабочего:
matlabroot
\toolbox\local\startup.m
matlabroot
\toolbox\parallel\user\jobStartup.m
matlabroot
\toolbox\parallel\user\taskStartup.m
Доступ к этим файлам может быть передан рабочему AttachedFiles
задания или
AdditionalPaths
свойство. В противном случае версия каждого из этих файлов, который используется, является одним самым высоким на пути рабочего.
Доступ к файлам среди совместно используемых ресурсов может зависеть от полномочий на основе имени пользователя. Можно установить имя пользователя с который Планировщик Задания MATLAB и сервисы рабочего программного обеспечения MATLAB Parallel Server™, запущенного путем установки MJSUSER
значение в mjs_def
файл прежде, чем запустить сервисы. Для операционных систем Microsoft Windows существует также MJSPASS
для обеспечения пароля учетной записи для заданного пользователя. Для объяснения сервисных настроек по умолчанию и mjs_def
файл, смотрите, Задают Значения по умолчанию Скрипта (MATLAB Parallel Server) в Руководстве Системного администратора MATLAB Parallel Server.
Много свойств на задаче и объектах задания спроектированы для передающего кода или данных от клиента к планировщику рабочему, и назад. Эта информация могла включать код MATLAB, необходимый для оценки задачи или входных данных для обработки или выходных данных, следующих из оценки задачи. Следующие свойства упрощают эту коммуникацию:
InputArguments
— Это свойство каждой задачи содержит входные данные, которые вы задали при создании задачи. Эти данные передаются в функцию, когда рабочий выполняет ее оценку.
OutputArguments
— Это свойство каждой задачи содержит результаты оценки функции.
JobData
— Это свойство объекта задания содержит данные, которые отправляются каждому рабочему, который оценивает задачи для того задания. Это свойство работает эффективно, потому что данные передаются рабочему только однажды на задание, экономя время, если тот рабочий оценивает больше чем одну задачу для задания. (Примечание: не путайте это свойство с UserData
свойство на любых объектах в клиенте MATLAB. Информация в UserData
доступно только в клиенте и не доступен для планировщика или рабочих.)
AttachedFiles
— Это свойство объекта задания является массивом ячеек, в котором вы вручную задаете все папки и файлы, которые отправляются рабочим. На рабочем установлены файлы, и записи заданы в свойстве, добавляются к пути поиска файлов сеанса рабочего.
AttachedFiles
содержит список папок и файлов, к которым рабочий должен получить доступ для оценки задач задания. Значение свойства (пустой по умолчанию) задано в кластерном профиле или на клиентском сеансе. Вы устанавливаете значение для свойства как массив ячеек из символьных векторов. Каждый вектор символов является абсолютным или относительным путем к папке или файлу. (Примечание: Если эти файлы или папки изменяются, в то время как они передаются, или если какая-либо из папок пуста, отказ или ошибка могут закончиться. Если вы задаете путь, который не существует, ошибка сгенерирована.)
В первый раз, когда рабочий оценивает задачу для конкретного задания, планировщик передает рабочему файлы и папки в AttachedFiles
свойство. На машине рабочего структура папок создается, который точно то же самое, когда это получило доступ на клиентской машине, где свойство было установлено. Те записи, перечисленные в значении свойства, добавляются к верхней части пути поиска файлов команды на сеансе рабочего. (Подпапки записей не добавляются к пути, даже при том, что они включены в структуру папок.), Чтобы узнать, куда файлы помещаются в машину рабочего, используйте функцию getAttachedFilesFolder
в коде, который работает на рабочем.
Когда рабочий запускает последующие задачи для того же задания, оно использует структуру папок, уже настроенную AttachedFiles
задания свойство для первой задачи это запустилось для того задания.
Когда вы задаете AttachedFiles
во время создания задания настройки объединены с заданными в применимом профиле. Установка AttachedFiles
на объекте задания после того, как это будет создано, не комбинирует новую установку с настройками профиля, но перезаписывает существующие настройки для того задания.
Передача AttachedFiles
происходит для каждого рабочего, запускающего задачу для того конкретного задания на машине, независимо от того, сколько рабочих работает на той машине. Обычно, прикрепленные файлы удалены из машины рабочего, когда задание завершается, или когда следующее задание начинается.
AutoAttachFiles
— Это свойство объекта задания использует логическое значение, чтобы указать, что вы хотите, чтобы MATLAB выполнил анализ функций задачи в задании и на вручную прикрепленных файлах, чтобы определить, какие файлы кода необходимы для рабочих, и автоматически отправить те файлы рабочим. Можно установить это значение свойства в кластерном профиле с помощью менеджера по Профилю, или можно установить его программно на объекте задания в командной строке.
c = parcluster(); j = createJob(c); j.AutoAttachFiles = true;
Поддерживаемыми форматами файла кода для автоматического прикрепления являются файлы MATLAB (.m
расширение), Pcode-файлы (.p
), и файлы MEX (.mex
). Обратите внимание на то, что AutoAttachFiles
не включает файлы данных для вашего задания; используйте AttachedFiles
свойство явным образом передать эти файлы рабочим.
Использование listAutoAttachedFiles
получить список файлов кода, которые автоматически присоединены к заданию.
Если AutoAttachFiles
установкой является true
для кластерного профиля, используемого при запуске параллельного пула, MATLAB выполняет анализ spmd
блоки, parfor
- циклы и другие прикрепленные файлы, чтобы определить, что другие файлы кода необходимы для выполнения, затем автоматически присоединяют те файлы к параллельному пулу так, чтобы код был доступен для рабочих.
Примечание
Существует максимальный объем данных по умолчанию, который может быть отправлен в одном призыве к установке свойств. Этот предел применяется к OutputArguments
свойство, а также к данным передало в задание как входные параметры или AttachedFiles
. Если предел превышен, вы получаете сообщение об ошибке. Для получения дополнительной информации об этом пределе размера передачи данных, смотрите Ограничения Размера Прикрепленных файлов.
Как сеанс MATLAB, сеанс рабочего выполняет startup
.m
регистрируют каждый раз, когда это запускается. Можно поместить startup.m
файл в любой папке на пути поиска файлов рабочего MATLAB, таком как toolbox/parallel/user
.
Эти дополнительные файлы могут инициализировать и очистить сеанс рабочего, как он начинает или завершает оценки задач для задания:
jobStartup
.m
автоматически выполняется на рабочем, когда рабочий запускает его первую задачу задания.
taskStartup
.m
автоматически выполняется на рабочем каждый раз, когда рабочий начинает оценку задачи.
poolStartup
.m
автоматически выполняется на рабочем каждый раз, когда рабочий включен в недавно запущенный параллельный пул.
taskFinish
.m
автоматически выполняется на рабочем каждый раз, когда рабочий завершает оценку задачи.
Пустые версии этих файлов обеспечиваются в папке:
matlabroot/toolbox/parallel/user
Можно отредактировать эти файлы, чтобы включать безотносительно кода MATLAB, который вы хотите, чтобы рабочий выполнил в указанное время.
В качестве альтернативы можно создать собственные версии этих файлов и передать их заданию как часть AttachedFiles
свойство, или включают пути в их местоположения в AdditionalPaths
свойство.
Рабочий дает приоритет версиям, обеспеченным в AttachedFiles
свойство, затем к тем, на которых указывают в AdditionalPaths
свойство. Если какой-либо из этих файлов не включен в эти свойства, рабочий использует версию файла в toolbox/parallel/user
папка установки рабочего MATLAB.