Типовой интерфейс планировщика обеспечивает полную гибкость, чтобы сконфигурировать взаимодействие клиента MATLAB®, работников MATLAB и стороннего планировщика. Сменные скрипты задают, как MATLAB взаимодействует с вашей настройкой.
В следующей таблице перечислены поддерживаемые сменные функции скрипта и этап, на котором они оценены:
FileName | Этап |
independentSubmitFcn.m | Представление независимого задания |
communicatingSubmitFcn.m | Представление связывающегося задания |
getJobStateFcn.m | Запрос состояния задания |
canceJobFcn.m | Отмена задания |
cancelTaskFcn.m | Отмена задачи |
deleteJobFcn.m | Удаление задания |
deleteTaskFcn.m | Удаление задачи |
postConstructFcn.m | После создания parallel.cluster.Generic экземпляр |
Эти сменные скрипты оценены, только если они имеют ожидаемое имя файла и расположены в папке, заданной свойством PluginScriptsLocation кластера. Для получения дополнительной информации о том, как сконфигурировать типовой кластерный профиль, смотрите, Конфигурируют Используя Типовой Интерфейс Планировщика (MATLAB Parallel Server).
independentSubmitFcn.m
должен существовать, чтобы представить независимое задание и communicatingSubmitFcn.m
должен существовать, чтобы представить связывающееся задание.
Чтобы поддержать использование типового интерфейса планировщика, сменные скрипты доступны для следующих сторонних планировщиков:
Каждый инсталлятор предоставляет скрипты для трех возможных режимов представления:
Совместно использованный – клиент может подчиниться непосредственно планировщику, и у клиента и кластерных узлов (или машины) есть совместно используемая файловая система.
Удаленный – у клиента и кластерных узлов есть совместно используемая файловая система, но клиентская машина не может подчиниться непосредственно планировщику, такой как тогда, когда клиентские утилиты планировщика не установлены. Этот режим использует ssh
протокол, чтобы представить команды планировщику с помощью удаленного хоста.
Несовместно использованный – у клиента и кластерных узлов нет совместно используемой файловой системы. Этот режим использует ssh
протокол, чтобы представить команды планировщику с помощью удаленного хоста, и это использует sftp
протокол, чтобы скопировать задание и файлы задачи к кластерной файловой системе.
Каждый режим представления имеет свою собственную подпапку в папке установки. Эта подпапка содержит README
файл, который обеспечивает конкретные инструкции о том, как использовать скрипты. Перед использованием скриптов решите, какой режим представления описывает вашу сетевую настройку.
Чтобы запустить установщика, загрузите соответствующий пакет поддержки для своего планировщика и откройте его в вашем клиенте MATLAB. Инсталлятор включает мастер, чтобы провести вас по созданию кластерного профиля для вашей кластерной конфигурации.
Если ваш планировщик или кластерная конфигурация не поддержаны одним из пакетов поддержки, рекомендуется, чтобы вы изменили скрипты одного из этих пакетов. Для получения дополнительной информации о том, как записать набор сменных скриптов для типовых планировщиков, см. Пишущие Пользовательские Сменные Скрипты.
Демонстрационные сменные скрипты используют скрипты обертки, чтобы упростить реализацию independentSubmitFcn.m
и communicatingSubmitFcn.m
. Эти скрипты не требуются, однако, использование их является хорошей практикой, чтобы сделать ваш код более читаемым. Эта таблица описывает эти скрипты:
FileName | Описание |
independentJobWrapper.sh | Используемый в independentSubmitFcn.m встроить вызов исполняемого файла MATLAB с соответствующими аргументами. Это использует переменные окружения в местоположении исполняемого файла и его аргументов. Для примера его использования см. Демонстрационный скрипт для планировщика SLURM. |
communicatingJobWrapper.sh | Используемый в communicatingSubmitFcn.m распределить связывающееся задание в вашем кластере. Этот скрипт реализует шаги в, Представляют задание планировщика, чтобы запустить процесс MPI. Для примера его использования см. Демонстрационный скрипт для планировщика SLURM. |
При записи собственных сменных скриптов это - хорошая практика, чтобы запуститься путем изменения одного из демонстрационных сменных скриптов, который наиболее тесно совпадает настройкой (см. Демонстрационные Сменные Скрипты).
Когда вы представляете независимое задание типовому кластеру, independentSubmitFcn.m
функция выполняется на клиентском сеансе MATLAB.
Линия объявления этой функции должна быть:
function independentSubmitFcn(cluster,job,environmentProperties)
Каждая задача в MATLAB независимое задание соответствует одному заданию на вашем планировщике. Цель этой функции состоит в том, чтобы представить N
задания к вашему стороннему планировщику, где N
количество задач в независимом задании. Каждое из этих заданий должно:
Установите эти пять переменных окружения, требуемых рабочим MATLAB идентифицировать отдельную задачу запуститься. Для получения дополнительной информации смотрите, Конфигурируют среду рабочего.
Вызовите соответствующий исполняемый файл MATLAB, чтобы запустить работника MATLAB и запустить задачу. Для получения дополнительной информации смотрите, Представляют задания планировщика, чтобы запустить работников MATLAB.
Сконфигурируйте среду рабочего. Эта таблица идентифицирует эти пять переменных окружения и значения, которые должны быть установлены на рабочем MATLAB, чтобы запустить отдельную задачу:
Имя переменной окружения | Значение переменной окружения |
PARALLEL_SERVER_DECODE_FUNCTION | 'parallel.cluster.generic.independentDecodeFcn' |
PARALLEL_SERVER_STORAGE_CONSTRUCTOR | environmentProperties.StorageConstructor |
PARALLEL_SERVER_STORAGE_LOCATION |
|
PARALLEL_SERVER_JOB_LOCATION | environmentProperties.JobLocation |
PARALLEL_SERVER_TASK_LOCATION | environmentProperties.TaskLocation{n} для nth задача |
Много поддержки планировщиков, копирующей клиентскую среду как часть команды представления. Если так, можно установить предыдущие переменные окружения в клиенте, таким образом, планировщик может скопировать их в среду рабочего. В противном случае необходимо изменить команду представления, чтобы передать эти переменные.
Представьте задания планировщика, чтобы запустить работников MATLAB. Если эти пять обязательных параметров для данного задания и задачи заданы на рабочем, задача запущена путем вызова исполняемого файла MATLAB с подходящими аргументами. Исполняемый файл MATLAB, чтобы вызвать задан в environmentProperties.MatlabExecutable
. Аргументы, чтобы передать заданы в environmentProperties.MatlabArguments
.
Если вы не можете подчиниться непосредственно своему планировщику от клиентской машины, смотрите Представление от Удаленного Хоста к инструкциям относительно того, как представить использование ssh
.
Демонстрационный скрипт для планировщика SLURM. Этот скрипт показывает, что основное представляет функцию для планировщика SLURM с совместно используемой файловой системой. Для более полного примера см. Демонстрационные Сменные Скрипты.
function independentSubmitFcn(cluster,job,environmentProperties) % Specify the required environment variables. setenv('PARALLEL_SERVER_DECODE_FUNCTION', 'parallel.cluster.generic.independentDecodeFcn'); setenv('PARALLEL_SERVER_STORAGE_CONSTRUCTOR', environmentProperties.StorageConstructor); setenv('PARALLEL_SERVER_STORAGE_LOCATION', environmentProperties.StorageLocation); setenv('PARALLEL_SERVER_JOB_LOCATION', environmentProperties.JobLocation); % Specify the MATLAB executable and arguments to run on the worker. % These are used in the independentJobWrapper.sh script. setenv('PARALLEL_SERVER_MATLAB_EXE', environmentProperties.MatlabExecutable); setenv('PARALLEL_SERVER_MATLAB_ARGS', environmentProperties.MatlabArguments); for ii = 1:environmentProperties.NumberOfTasks % Specify the environment variable required to identify which task to run. setenv('PARALLEL_SERVER_TASK_LOCATION', environmentProperties.TaskLocations{ii}); % Specify the command to submit the job to the SLURM scheduler. % SLURM will automatically copy environment variables to workers. commandToRun = 'sbatch --ntasks=1 independentJobWrapper.sh'; [cmdFailed, cmdOut] = system(commandToRun); end end
Предыдущий пример представляет простой скрипт удара, independentJobWrapper.sh
, к планировщику. independentJobWrapper.sh
скрипт встраивает исполняемый файл MATLAB и аргументы с помощью переменных окружения:
#!/bin/sh # PARALLEL_SERVER_MATLAB_EXE - the MATLAB executable to use # PARALLEL_SERVER_MATLAB_ARGS - the MATLAB args to use exec "${PARALLEL_SERVER_MATLAB_EXE}" ${PARALLEL_SERVER_MATLAB_ARGS}
Когда вы представляете связывающееся задание типовому кластеру, communicatingSubmitFcn.m
функция выполняется на клиентском сеансе MATLAB.
Линия объявления этой функции должна быть:
function communicatingSubmitFcn(cluster,job,environmentProperties)
Цель этой функции состоит в том, чтобы представить одно задание вашему планировщику. Это задание должно:
Установите эти четыре переменные окружения, требуемые работниками MATLAB идентифицировать задание, чтобы запуститься. Для получения дополнительной информации смотрите, Конфигурируют среду рабочего.
Вызовите MPI, чтобы распределить ваше задание N
Работники MATLAB. N
соответствует максимальному значению, заданному в NumWorkersRange
свойство задания MATLAB. Для получения дополнительной информации смотрите, Представляют задание планировщика, чтобы запустить процесс MPI.
Сконфигурируйте среду рабочего. Эта таблица идентифицирует эти четыре переменные окружения и значения, которые должны быть установлены на рабочем MATLAB, чтобы запустить задачу связывающегося задания:
Имя переменной окружения | Значение переменной окружения |
PARALLEL_SERVER_DECODE_FUNCTION | 'parallel.cluster.generic.communicatingDecodeFcn' |
PARALLEL_SERVER_STORAGE_CONSTRUCTOR | environmentProperties.StorageConstructor |
PARALLEL_SERVER_STORAGE_LOCATION |
|
PARALLEL_SERVER_JOB_LOCATION | environmentProperties.JobLocation |
Много поддержки планировщиков, копирующей клиентскую среду как часть команды представления. Если так, можно установить предыдущие переменные окружения в клиенте, таким образом, планировщик может скопировать их в среду рабочего. В противном случае необходимо изменить команду представления, чтобы передать эти переменные.
Представьте задание планировщика, чтобы запустить процесс MPI. После того, как вы задаете эти четыре обязательных параметра для данного задания, запускаете ваше задание путем запуска N
рабочий процессы MATLAB с помощью mpiexec
. mpiexec
программное обеспечение, поставленное с Parallel Computing Toolbox™, который реализует стандарт Интерфейса передачи сообщений (MPI), чтобы позволить связь между рабочим процессы MATLAB. Для получения дополнительной информации о mpiexec
, смотрите домашнюю страницу MPICH.
Чтобы запустить ваше задание, необходимо представить задание планировщику, который выполняет следующие шаги. Обратите внимание на то, что matlabroot
относится к местоположению установки MATLAB на ваших узлах рабочего.
Запросите N
процессы от планировщика. N
соответствует максимальному значению, заданному в NumWorkersRange
свойство задания MATLAB.
Вызовите mpiexec
запустить рабочего процессы MATLAB. Количество рабочего процессы MATLAB, чтобы запуститься на каждом хосте должно совпадать с количеством процессов, выделенных вашим планировщиком. mpiexec
исполняемый файл расположен в matlabroot/bin/mw_mpiexec
.
mpiexec
управляйте автоматически вперед переменными окружения к запущенным процессам. Поэтому гарантируйте, что переменные окружения, перечисленные в, Конфигурируют среду рабочего, установлены прежде, чем запустить mpiexec
.
Узнать больше об опциях для mpiexec
, смотрите Используя Диспетчер процессов Гидры.
Для полного примера предыдущих шагов смотрите communicatingJobWrapper.sh
скрипту предоставляют любой из демонстрационных сменных скриптов в Демонстрационных Сменных Скриптах. Используйте этот скрипт в качестве начальной точки, если необходимо записать собственный скрипт.
Демонстрационный скрипт для планировщика SLURM. Следующий скрипт показывает, что основное представляет функцию для планировщика SLURM с совместно используемой файловой системой.
Представленное задание содержится в скрипте удара, communicatingJobWrapper.sh
. Этот скрипт реализует соответствующие шаги в, Представляют задание планировщика, чтобы запустить процесс MPI для планировщика SLURM. Для более полного примера см. Демонстрационные Сменные Скрипты.
function communicatingSubmitFcn(cluster,job,environmentProperties) % Specify the four required environment variables. setenv('PARALLEL_SERVER_DECODE_FUNCTION', 'parallel.cluster.generic.communicatingDecodeFcn'); setenv('PARALLEL_SERVER_STORAGE_CONSTRUCTOR', environmentProperties.StorageConstructor); setenv('PARALLEL_SERVER_STORAGE_LOCATION', environmentProperties.StorageLocation); setenv('PARALLEL_SERVER_JOB_LOCATION', environmentProperties.JobLocation); % Specify the MATLAB executable and arguments to run on the worker. % Specify the location of the MATLAB install on the cluster nodes. % These are used in the communicatingJobWrapper.sh script. setenv('PARALLEL_SERVER_MATLAB_EXE', environmentProperties.MatlabExecutable); setenv('PARALLEL_SERVER_MATLAB_ARGS', environmentProperties.MatlabArguments); setenv('PARALLEL_SERVER_CMR', cluster.ClusterMatlabRoot); numberOfTasks = environmentProperties.NumberOfTasks; % Specify the command to submit a job to the SLURM scheduler which % requests as many processes as tasks in the job. % SLURM will automatically copy environment variables to workers. commandToRun = sprintf('sbatch --ntasks=%d communicatingJobWrapper.sh', numberOfTasks); [cmdFailed, cmdOut] = system(commandToRun); end
То, когда вы запрашиваете состояние задания, создало с типовым кластером, getJobStateFcn.m
функция выполняется на клиентском сеансе MATLAB. Линия объявления этой функции должна быть:
function state = getJobStateFcn(cluster,job,state)
При использовании стороннего планировщика возможно, что планировщик может иметь больше актуальной информации о ваших заданиях, чем, что доступно для тулбокса от локального места хранения задания. Эта ситуация особенно верна при использовании неразделяемой файловой системы, где удаленная файловая система могла быть медленной в распространении больших файлов данных назад к локальному расположению данных.
Чтобы получить ту информацию из планировщика, добавьте функцию под названием getJobStateFcn.m
к PluginScriptsLocation вашего кластера.
Состояние, переданное в эту функцию, является состоянием, выведенным из локального устройства хранения данных задания. Тело этой функции может затем запросить планировщик, чтобы определить более точное состояние для задания и возвратить его вместо сохраненного состояния. Функция, которую вы пишете с этой целью, должна возвратить допустимое значение для состояния объекта задания. Позволенными значениями является ‘pending’
, ‘queued’
, ‘running’
, ‘finished’
, или ‘failed’
.
Для получения инструкций по соединению задач MATLAB с их соответствующим ID задания планировщика смотрите Задания Управления с Типовым Планировщиком.
То, когда вы отменяете задание, создало с типовым кластером, cancelJobFcn.m
функция выполняется на клиентском сеансе MATLAB. Линия объявления этой функции должна быть:
function OK = cancelJobFcn(cluster,job)
То, когда вы отменяете задание, создало использование типового интерфейса планировщика, по умолчанию это действие влияет только на данные о задании в устройстве хранения данных. Чтобы отменить соответствующие задания на вашем планировщике, необходимо предоставить инструкции относительно того, что сделать и когда сделать это к планировщику. Чтобы достигнуть этого, добавьте функцию под названием cancelJobFcn.m
к PluginScriptsLocation вашего кластера.
Тело этой функции может затем отправить команду в планировщик, например, чтобы удалить соответствующие задания из очереди. Функция должна возвратить логический скаляр, указывающий на успешность или неуспешность отмены заданий на планировщике.
Для получения инструкций по соединению задач MATLAB с их соответствующим ID задания планировщика смотрите Задания Управления с Типовым Планировщиком.
То, когда вы отменяете задачу, создало с типовым кластером, cancelTaskFcn.m
функция выполняется на клиентском сеансе MATLAB. Линия объявления этой функции должна быть:
function OK = cancelTaskFcn(cluster,task)
То, когда вы отменяете задачу, создало использование типового интерфейса планировщика, по умолчанию, это влияет только на данные о задаче в устройстве хранения данных. Чтобы отменить соответствующее задание на вашем планировщике, необходимо предоставить инструкции относительно того, что сделать и когда сделать это к планировщику. Чтобы достигнуть этого, добавьте функцию под названием cancelTaskFcn.m
к PluginScriptsLocation вашего кластера.
Тело этой функции может затем отправить команду в планировщик, например, чтобы удалить соответствующее задание из очереди планировщика. Функция должна возвратить логический скаляр, указывающий на успешность или неуспешность отмены задания на планировщике.
Для получения инструкций по соединению задач MATLAB с их соответствующим ID задания планировщика смотрите Задания Управления с Типовым Планировщиком.
То, когда вы удаляете задание, создало с типовым кластером, deleteJobFcn.m
функция выполняется на клиентском сеансе MATLAB. Линия объявления этой функции должна быть:
function deleteTaskFcn(cluster,task)
То, когда вы удаляете задание, создало использование типового интерфейса планировщика, по умолчанию, это влияет только на данные о задании в устройстве хранения данных. Чтобы удалить соответствующие задания на вашем планировщике, необходимо предоставить инструкции относительно того, что сделать и когда сделать это к планировщику. Чтобы достигнуть этого, добавьте функцию под названием deleteJobFcn.m
к PluginScriptsLocation вашего кластера.
Тело этой функции может затем отправить команду в планировщик, например, чтобы удалить соответствующие задания из очереди планировщика.
Для получения инструкций по соединению задач MATLAB с их соответствующим ID задания планировщика смотрите Задания Управления с Типовым Планировщиком.
То, когда вы удаляете задачу, создало с типовым кластером, deleteTaskFcn.m
функция выполняется на клиентском сеансе MATLAB. Линия объявления этой функции должна быть:
function deleteTaskFcn(cluster,task)
То, когда вы удаляете задачу, создало использование типового интерфейса планировщика, по умолчанию, это влияет только на данные о задаче в устройстве хранения данных. Чтобы удалить соответствующее задание на вашем планировщике, необходимо предоставить инструкции относительно того, что сделать и когда сделать это к планировщику. Чтобы достигнуть этого, добавьте функцию под названием deleteTaskFcn.m
к PluginScriptsLocation вашего кластера.
Тело этой функции может затем отправить команду в планировщик, например, чтобы удалить соответствующее задание из очереди планировщика.
Для получения инструкций по соединению задач MATLAB с их соответствующим ID задания планировщика смотрите Задания Управления с Типовым Планировщиком.
После того, как вы создаете экземпляр своего кластера в MATLAB, postConstructFcn.m
функция выполняется на клиентском сеансе MATLAB. Например, следующая строка кода создает экземпляр вашего кластера и запускает postConstructFcn
функция сопоставлена с ‘myProfile’
кластерный профиль:
c = parcluster('myProfile');
Линия объявления postConstructFcn
функция должна быть:
function postConstructFcn(cluster)
Если необходимо выполнить пользовательскую конфигурацию кластера перед его использованием, добавьте функцию под названием postConstructFcn.m
к PluginScriptsLocation
из вашего кластера. Тело этой функции может содержать любые дополнительные шаги настройки, которых вы требуете.
Если необходимо изменить функциональность сменных скриптов во время выполнения, то используйте свойство AdditionalProperties типового интерфейса планировщика.
Как пример, рассмотрите планировщик SLURM. Представить команда для SLURM принимает –-nodelist
аргумент, который позволяет вам задавать узлы, на которых вы хотите работать. Можно изменить значение этого аргумента, не имея необходимость изменять сменные скрипты. Чтобы добавить эту функциональность, включайте следующий шаблон кода в свой independentSubmitFcn.m
и communicatingSubmitFcn.m
скрипты:
% Basic SLURM submit command submitCommand = 'sbatch'; % Check if property is defined if isprop(cluster.AdditionalProperties, 'NodeList') % Add appropriate argument and value to submit string submitCommand = [submitCommand ' --nodelist=' cluster.AdditionalProperties.NodeList]; end
Для примера того, как использовать этот шаблон кодирования, смотрите, что неразделяемое представляет функции скриптов в Демонстрационных Сменных Скриптах.
С модификацией к вашим скриптам в предыдущем примере можно добавить запись AdditionalProperties в типовой кластерный профиль, чтобы задать список узлов, чтобы использовать. Это предоставляет метод документирования индивидуальной настройки, добавленной к вашим сменным скриптам для любого, с кем вы совместно используете кластерный профиль.
Добавить NodeList
свойство к вашему кластерному профилю:
Запустите Кластерного менеджера по Профилю с рабочего стола MATLAB путем выбора Parallel> Manage Cluster Profiles.
Выберите профиль для своего типового кластера и нажмите Edit.
Перейдите к таблице AdditionalProperties и нажмите Add.
Введите NodeList
как Name.
Установите String как Type.
Установите Value на список узлов.
С модификацией к вашим скриптам в Добавлении Пользовательской настройки можно отредактировать список узлов из командной строки MATLAB путем установки соответствующего свойства кластерного объекта прежде, чем представить задание:
c = parcluster; c.AdditionalProperties.NodeList = 'gpuNodeName'; j = c.batch('myScript');
Отобразите AdditionalProperties
объект видеть все в настоящее время заданные свойства и их значения:
>> c.AdditionalProperties ans = AdditionalProperties with properties: ClusterHost: 'myClusterHost' NodeList: 'gpuNodeName' RemoteJobStorageLocation: '/tmp/jobs'
Первое требование для управления заданием должно идентифицировать задания на планировщике, соответствующем объекту задания MATLAB. Когда вы представляете задание планировщику, команда, которая выполняет в представлении ваш подчиняющаяся, функция может возвратить некоторые данные о задании от планировщика. Эти данные обычно включают ID задания. Путем хранения того ID задания планировщика объектом задания MATLAB можно позже обратиться к заданию планировщика этим ID задания, когда вы отправляете команды управления в планировщик. Точно так же можно сохранить карту идентификаторов задачи MATLAB к идентификаторам задания планировщика, чтобы помочь управлять отдельными задачами. Функцией тулбокса, которая хранит эти кластерные данные, является setJobClusterData
.
В этом примере показано, как изменить independentSubmitFcn.m
функционируйте, чтобы проанализировать выход каждой команды, представленной планировщику SLURM. Можно использовать регулярные выражения, чтобы извлечь ID задания планировщика для каждой задачи и затем сохранить его с помощью setJobClusterData
.
% Pattern to extract scheduler job ID from SLURM sbatch output searchPattern = '.*Submitted batch job ([0-9]+).*'; jobIDs = cell(numberOfTasks, 1); for ii = 1:numberOfTasks setenv('PARALLEL_SERVER_TASK_LOCATION', environmentProperties.TaskLocations{ii}); commandToRun = 'sbatch --ntasks=1 independentJobWrapper.sh'; [cmdFailed, cmdOut] = system(commandToRun); jobIDs{ii} = regexp(cmdOut, searchPattern, 'tokens', 'once'); end % set the job IDs on the job cluster data cluster.setJobClusterData(job, struct('ClusterJobIDs', {jobIDs}));
Этот пример изменяет cancelJobFcn.m
отменять соответствующие задания на планировщике SLURM. Пример использует getJobClusterData
получать данные о планировщике задания.
function OK = cancelJobFcn(cluster, job) % Get the scheduler information for this job data = cluster.getJobClusterData(job); jobIDs = data.ClusterJobIDs; for ii = 1:length(jobIDs) % Tell the SLURM scheduler to cancel the job commandToRun = sprintf('scancel ''%s''', jobIDs{ii}); [cmdFailed, cmdOut] = system(commandToRun); end OK = true;
Если клиент MATLAB не может подчиниться непосредственно вашему планировщику, используйте parallel.cluster.RemoteClusterAccess
установить связь и команды выполнения на удаленном хосте.
Этот объект использует ssh
протокол, и следовательно требует ssh
сервис демона, работающий на удаленном хосте. Чтобы установить связь, необходимо или обеспечить имя пользователя и пароль для удаленного хоста или допустимый единичный файл.
Следующий код выполняет команду на удаленном хосте, remoteHostname
, как пользователь, user
.
% This will prompt for the password of user access = parallel.cluster.RemoteClusterAccess.getConnectedAccess('remoteHostname', 'user'); % Execute a command on remoteHostname [cmdFailed, cmdOut] = access.runCommand(commandToRun);
Для примера сменных скриптов с помощью удаленного представления хоста смотрите удаленный режим представления в Демонстрационных Сменных Скриптах.
Если у клиента MATLAB нет совместно используемой файловой системы с кластерными узлами, используйте parallel.cluster.RemoteClusterAccess
установить связь и задание копии и файлы задачи между клиентом и кластерными узлами.
Этот объект использует ssh
протокол, и следовательно требует ssh
сервис демона, работающий на удаленном хосте. Чтобы установить связь, необходимо или обеспечить имя пользователя и пароль для удаленного хоста или допустимого единичного файла.
При использовании неразделяемого представления необходимо задать и локальное место хранения задания, чтобы использовать на клиенте и удаленном месте хранения задания, чтобы использовать на кластере. Удаленное место хранения задания должно быть доступно для всех узлов кластера.
parallel.cluster.RemoteClusterAccess
зеркальное отражение файла использования, чтобы постоянно синхронизировать локальное задание и файлы задачи с теми на кластере. Когда файл, зеркально отражающий сначала, запускается, локальное задание и файлы задачи загружаются на удаленное место хранения задания. Когда задание выполняется, файл, зеркально отражающий постоянно, проверяет удаленное место хранения задания на новые файлы и обновления, и копирует файлы в локальное устройство хранения данных на клиенте. Эта процедура гарантирует, что у клиента MATLAB всегда есть актуальное представление заданий и задач, выполняющихся на планировщике.
Этот пример соединяется с удаленным хостом, remoteHostname
, как пользователь, user
, и устанавливает /remote/storage
как удаленное кластерное место хранения, чтобы синхронизироваться с. Это затем запускает зеркальное отражение файла для задания, копируя локальные файлы задания к /remote/storage
на кластере, и затем синхронизирующий любого возвращается к локальной машине.
% This will prompt for the password of user access = parallel.cluster.RemoteClusterAccess.getConnectedAccessWithMirror('remoteHostname', '/remote/storage', 'user'); % Start file mirroring for a job access.startMirrorForJob(job);
Для примера сменных скриптов без совместно используемой файловой системы смотрите неразделяемый режим представления в Демонстрационных Сменных Скриптах.