Parallel Computing Toolbox™ поставляется предварительно сконфигурированным с профилем кластера local
для выполнения параллельного кода на локальной настольной машине.
Управление параллельным поведением с помощью меню Parallel на MATLAB® Home вкладку.
Меню Parallel можно использовать для:
Узнайте другие кластеры, работающие в вашей сети или на Amazon EC2. Щелкните Parallel > Discover Clusters. Дополнительные сведения см. в разделе Обнаружение кластеров.
Создайте профили кластеров и управляйте ими с помощью Диспетчера профилей кластеров. Щелкните Parallel > Create and Manage Clusters. Дополнительные сведения см. в разделе Создание и управление профилями кластеров.
Профили кластеров позволяют вам задать определенные свойства для кластера, затем применить эти свойства при создании кластера, задания и объектов задачи в клиенте MATLAB. Некоторые функции, поддерживающие использование профилей кластеров
Управление профилями кластеров с помощью Диспетчера профилей кластеров. Чтобы открыть Диспетчер профилей кластера, на вкладке Home, в разделе Environment, выберите Parallel > Create and Manage Clusters.
Диспетчер профилей кластеров можно использовать для:
Узнайте другие кластеры, работающие в вашей сети или на Amazon® AWS®. Дополнительные сведения см. в разделе Обнаружение кластеров.
Создайте кластер в облаке, например Amazon AWS. Для получения дополнительной информации см. раздел «Создание облака».
Добавьте профили кластеров и измените их свойства. Дополнительные сведения см. в разделе Добавление и изменение профилей кластеров.
Импорт и экспорт профилей кластеров. Дополнительные сведения см. в разделе Импорт и экспорт профилей кластеров.
Задайте свойства профиля. Для получения дополнительной информации см. раздел «Редактирование количества работников и параметров кластера».
Проверьте, что профиль кластера готов к использованию в MATLAB.
Вы можете позволить MATLAB обнаружить кластеры для вас. Используйте любой из следующих методов, чтобы обнаружить те кластеры, которые доступны для вас:
На вкладке Home в разделе Environment выберите Parallel > Discover Clusters
В Диспетчере профилей кластеров выберите Discover Clusters
Это открывает диалоговое окно «Обнаружение кластеров», в котором можно искать кластеры MATLAB Parallel Server™:
Если вы выберете On your network, то увидите новое окно. Выберите эту опцию, если кластеры используют планировщик заданий MATLAB или высокопроизводительный сервер Microsoft Windows. Когда кластеры обнаруживаются, они заполняют список для вашего выбора. Если у вас уже есть профиль для любого из перечисленных кластеров, эти имена профилей включаются в список. Если необходимо создать новый профиль для одного из обнаруженных кластеров, выберите имя кластера, который вы хотите использовать, и выберите Next. В последующем диалоговом окне можно выбрать, требуется ли задать созданный профиль как значение по умолчанию. Эта опция не поддерживается в MATLAB Online.
Если вы выбираете On Amazon EC2, вы ищете кластеры, работающие на EC2 Amazon. Чтобы получить доступ к этим кластерам, вы должны предоставить свои данные для входа в MathWorks Account.
Обнаружение кластеров поддерживается только для планировщиков заданий MATLAB, Microsoft® Windows® Облака HPC Server и Amazon EC2. Если вам нужно интегрировать планировщик с MATLAB Parallel Server или создать профиль кластера для другого поддерживаемого планировщика, смотрите Запуск с MATLAB Parallel Server (MATLAB Parallel Server). Для обнаружения кластеров применяются следующие требования:
MATLAB Job Scheduler - кластеры MATLAB Job Scheduler поддерживают два различных способа обнаружения:
Multicast: Функциональность кластеров обнаружения использует протокол многоадресной передачи от клиента для поиска головных узлов, где работает планировщик заданий MATLAB. Это требует, чтобы протокол многоадресной передачи был включен и работал в сети, которая соединяет головные узлы MATLAB Job Scheduler (где работают планировщики) и клиентские машины. Эта форма обнаружения может быть ограничена локальной подсетью клиента и, следовательно, не всегда может обнаружить планировщик заданий MATLAB в другом месте вашей сети.
DNS SRV: Альтернативный метод обнаружения - поиск кластеров по служебным записям DNS.
Система доменных имен (DNS) является стандартом для идентификации имен узлов с IP-адресами либо в Интернете, либо в частной сети. Использование DNS позволяет обнаруживать кластеры планировщика заданий MATLAB путем идентификации определенных узлов, а не вещания по сети.
Запись службы DNS (SRV) определяет местоположение узлов и портов служб, например, связанных с кластерами, которые необходимо обнаружить. Системный администратор создает записи DNS SRV в DNS-инфраструктуре организации. Описание необходимой записи и информацию о валидации см. в DNS SRV Record (MATLAB Parallel Server).
HPC Server - функциональность кластеров обнаружения использует доменные службы Active Directory для обнаружения головных узлов. Головные узлы HPC-сервера добавляются в Active Directory во время установки программного обеспечения HPC-сервера.
Amazon EC2 - функциональность кластеров обнаружения требует рабочего сетевого соединения между клиентом и веб-сервисами Cloud Center, работающими в mathworks.com.
Можно создавать кластеры в облачных сервисах Amazon AWS непосредственно из Cluster Profile Manager. В Диспетчере профилей кластеров выберите Создать облако. Зарегистрируйтесь с MathWorks® Учетная запись и выполните необходимые шаги. Затем можно создать кластер облаков и сконфигурировать параметры, такие как количество машин или количество работников на машину. Дополнительные сведения о каждом из доступных параметров см. в разделе Создание облаке. Когда вы завершаете все шаги, MATLAB создает новый профиль кластера для вас. Можно изменить его свойства из Диспетчера профилей кластеров.
Чтобы управлять лицензиями, тестировать подключение к облаку или управлять облачными кластерами в MathWorks Cloud Center, перейдите на панель инструментов Cluster Profile Manager > CLOUD раздел.
С помощью Диспетчера профилей кластеров можно добавить профиль кластера для планировщика заданий MATLAB или стороннего планировщика. Если необходимо настроить кластер для использования с MATLAB, смотрите Запуск с MATLAB Parallel Server (MATLAB Parallel Server).
В следующем примере приведены инструкции по добавлению и изменению профилей с помощью Диспетчера профилей кластеров.
Предположим, что вы хотите создать профиль, чтобы задать несколько свойств для заданий, запускаемых в кластере планировщика заданий MATLAB. Следующий пример иллюстрирует возможный рабочий процесс двух профилей, дифференцированных только по количеству используемых ими работников.
В Диспетчере профилей кластеров выберите Add Cluster Profile > MATLAB Job Scheduler. Это указывает, что вам нужен новый профиль для кластера планировщика заданий MATLAB.
Это создает и отображает новый профиль, называемый MJSProfile1.
Дважды кликните новое имя профиля в объявлении и измените имя профиля, которое будет MyMJSProfile1
.
Выберите Edit на панели инструментов, чтобы можно было задать значения свойств профиля.
В поле Описание введите текст MJS with 4 workers
, как показано на следующем рисунке. Введите имя хоста для машины, на которой работает планировщик заданий MATLAB, и имя планировщика заданий MATLAB. Если вы вводите информацию для фактического планировщика заданий MATLAB, уже работающего в вашей сети, введите фактические имена. Если вы не уверены в именах и расположениях планировщика заданий MATLAB в сети, обратитесь за помощью к системному администратору.
Примечание
Если планировщик заданий MATLAB использует nondefault BASE_PORT
установка в соответствии с определением в mjs_def
файл, Host
свойство в профиле кластера должно быть добавлено этим BASE_PORT
номер. Для примера, MJS-Host:40000
.
Прокрутите вниз до раздела Рабочие, и для Области значений количества рабочих, введите двухэлементный вектор [4 4]
. Это указывает, что задания, использующие этот профиль, требуют как минимум четырех работников и не более четырех работников. Поэтому задание, использующее этот профиль, работает ровно с четырьмя работниками, даже если оно должно подождать, пока четыре работника будут доступны перед началом.
Можно хотеть изменить другие свойства в зависимости от конкретной ситуации в сети и кластере.
Выберите Done, чтобы сохранить настройки профиля.
Чтобы создать подобный профиль с несколькими различиями, можно дублировать существующий профиль и изменять только детали, которые необходимо изменить, следующим образом:
В Диспетчере профилей кластеров щелкните правой кнопкой мыши имя профиля MyMJSProfile1
в списке и выберите Duplicate.
Это создает повторяющийся профиль с именем на основе исходного имени профиля, добавленного с _Copy
.
Дважды кликните новое имя профиля и измените его имя, чтобы оно было MyMJSprofile2
.
Выберите Edit, чтобы позволить вам изменить значения свойств профиля.
Отредактируйте поле описания, чтобы изменить его текст на MJS with any workers
.
Прокрутите вниз до раздела Рабочие, и для Области значений количества работников очистите [4 4]
и оставьте поле пустым.
Выберите Done, чтобы сохранить настройки профиля и закрыть редактор свойств.
Теперь у вас есть два профиля, которые отличаются только количеством работников, необходимых для выполнения задания.
При создании задания можно применить любой профиль к этому заданию как способ определения, на каком количестве работников оно должно выполняться.
Примеры профилей для различных типов поддерживаемых планировщиков можно увидеть в инструкциях по установке MATLAB Parallel Server в Configure Your Cluster (MATLAB Parallel Server).
Профили кластеров хранятся как часть ваших настроек MATLAB, поэтому они обычно доступны на отдельном пользовательском базисе. Чтобы сделать профиль кластера доступным для кого-то другого, можно экспортировать его в отдельную .mlsettings
файл. Таким образом, репозиторий профилей может быть создан так, чтобы все пользователи вычислительного кластера могли совместно использовать общие профили.
Чтобы экспортировать профиль кластера:
В Диспетчере профилей кластеров выберите (подсвечивайте) профиль, который необходимо экспортировать.
Выберите Export > Export. (Также можно щелкнуть правой кнопкой мыши профиль в объявлении и выбрать Export.)
Если необходимо экспортировать все профили в один файл, выберите Export > Export All
В диалоговом окне Экспорт профилей в файл укажите местоположение и имя файла. Имя файла по умолчанию совпадает с именем профиля, который он содержит, с именем .mlsettings
расширение приложено; при необходимости можно изменить имена.
Обратите внимание, что вы не можете экспортировать профили для личных кластеров Cloud Center.
Сохраненные таким образом профили затем могут быть импортированы другими пользователями MATLAB:
В Диспетчере профилей кластеров выберите Import.
В диалоговом окне Импорт профилей из файла выберите .mlsettings
файл для импортируемого профиля. Выберите файл и выберите Open.
Импортированный профиль появится в списке Диспетчер профилей кластеров. Обратите внимание, что список содержит имя профиля, которое не обязательно является именем файла. Если у вас уже есть профиль с таким же именем, как у импортируемого, импортируемый профиль получает расширение, добавленное к его имени, чтобы вы могли различать его.
Можно также экспортировать и импортировать профили программно с помощью parallel.exportProfile
и parallel.importProfile
функций.
Можно использовать экспортированный профиль с MATLAB Compiler™ и MATLAB Compiler SDK™, чтобы идентифицировать информацию о настройке кластера для запуска скомпилированных приложений в кластере. Для примера, setmcruserdata
(MATLAB Compiler) функция может использовать экспортированное имя файла профиля, чтобы задать значение ключа ParallelProfile
. Для получения дополнительной информации и примеров развертывания параллельных приложений смотрите Pass Parallel Computing Toolbox Profile at Run Time (MATLAB Compiler) и Использовать Parallel Computing Toolbox в развернутых приложениях (MATLAB Compiler SDK K).
Скомпилированное приложение имеет тот же профиль по умолчанию и тот же список альтернативных профилей, которые были у компилирующегося пользователя при компиляции приложения. Это означает, что во многих случаях файл профиля не нужен, как это может быть при использовании local
профиль для местных работников. Если используется экспортированный файл, первый профиль в файле становится профилем по умолчанию при импорте. Если какое-либо из импортированных профилей имеет то же имя что и любое из существующих профилей, они переименовываются во время импорта (хотя их имена в файле остаются неизменными).
После создания профиля кластера можно задать количество работников и другие свойства профиля:
NumWorkers
: количество работников для запуска пула. Фактический размер пула может быть ограничен параметрами лицензирования, размера кластера и профиля кластера. См. «Размер пула и выбор кластера»
NumThreads
: количество вычислительных потоков, используемых для каждого рабочего процесса. Можно изменить NumThreads
, чтобы ваши работники могли запускаться в многопоточном режиме и использовать все ядра в вашем кластере. Это позволяет увеличить количество вычислительных потоков NumThreads
на каждого работника, не увеличивая число работников NumWorkers
. Если у вас есть больше доступных ядер, увеличьте NumThreads
чтобы в полной мере использовать преимущества встроенного параллелизма, обеспечиваемого многопоточным характером многих базовых библиотек MATLAB. Для получения дополнительной информации смотрите Запуск MATLAB на многоядерных и многопроцессорных машинах.
Примечание
Не увеличивайте количество потоков через все рабочие места на машине, чтобы превысить количество физических ядер. Другими словами, убедитесь, что NumWorkers x NumThreads
≤ количество физических ядер на вашей машине. В противном случае можно было бы снизить эффективность.
Чтобы запустить параллельные функции языка, такие как parpool
или batch
в кластере установите профиль кластера по умолчанию или используйте объекты кластера.
Чтобы задать профиль кластера по умолчанию, используйте один из следующих способов:
На вкладке Home в разделе Environment выберите Parallel > Select a Default Cluster, а оттуда доступны все ваши профили. Указан профиль по умолчанию. Можно выбрать любой профиль в списке по умолчанию.
Диспетчер профилей кластеров указывает, что является профилем по умолчанию. Можно выбрать любой профиль в списке, а затем выбрать Set as Default.
Вы можете получить или задать профиль по умолчанию программно с помощью parallel.defaultClusterProfile
функция. Следующие наборы команд достигают того же:
parallel.defaultClusterProfile('MyMJSProfile1')
parpool
или
parpool('MyMJSProfile1')
parcluster
) parcluster
функция создает объект кластера в рабочей рабочей области в соответствии с заданным профилем. Профиль идентифицирует конкретный кластер и применяет значения свойств. Для примера,
c = parcluster('MyMJSProfile1')
Эта команда находит кластер, заданный настройками профиля с именем MyMJSProfile1
и устанавливает значения свойств объекта кластера на основе настроек в профиле. Используйте объект кластера в таких функциях, как parpool
или batch
. Применяя различные профили, можно изменить варианты кластера, не меняя код приложения MATLAB.
batch
| createJob
| parallel.defaultClusterProfile
| parallel.exportProfile
| parallel.importProfile
| parcluster
| parpool
| setmcruserdata
(MATLAB Compiler)