При выполнении инструмента статического анализа кода с Polyspace® как часть непрерывного интегрирования вы можете хотеть, чтобы анализ работал на сервере, который отличается от сервера, запускающего ваши скрипты непрерывного интегрирования (CI). Например:
Вы можете хотеть выполнить анализ сервера, который имеет больше вычислительной мощности. Можно разгрузить анализ с сервера CI на другой сервер.
Вы можете хотеть представить аналитические задания с нескольких серверов CI на специализированный аналитический сервер, удержать места в очереди и выполнить их, когда экземпляры Сервера Polyspace становятся доступными.
Когда вы разгружаете анализ, фаза компиляции анализа работает на сервере CI. После компиляции аналитическое задание представлено другому серверу и продвигается этот сервер. На завершении результаты анализа загружаются назад на сервер CI. Можно затем загрузить результаты на Polyspace доступ для анализа или сообщить о результатах в некотором другом формате.
Типичная распределенная сеть для разгрузки анализа состоит из этих частей:
Клиентский узел (узлы): Каждый сервер CI действует как клиентский узел, который представляет аналитические задания Polyspace кластеру.
Кластер состоит из главного узла и одного или нескольких узлов рабочего. В этом примере мы используем тот же компьютер в качестве главного узла и одного узла рабочего.
Главный узел: главный узел распределяет представленные задания узлам рабочего.
Узел (узлы) рабочего: Каждый узел рабочего выполняет один анализ Polyspace за один раз.
Установите эти продукты:
Клиентские узлы: Polyspace Bug Finder™ Server™ или Сервер Polyspace Code Prover™, чтобы представить задания от Непрерывного Сервера интеграции.
Главный узел: MATLAB® Parallel Server™, чтобы справиться с представлениями от нескольких клиентов. Аналитическое задание создается для каждого представления и помещается в очередь. Как только узел рабочего доступен, следующее аналитическое задание от очереди запущено на рабочем.
Узел (узлы) рабочего: MATLAB Parallel Server и Polyspace Bug Finder Server или Polyspace Code Prover Server на узлах рабочего, чтобы запустить анализ Программы автоматического доказательства Средства поиска или Кода Ошибки.
В самой простой настройке, где тот же компьютер служит главным узлом и одним узлом рабочего, вы устанавливаете MATLAB Parallel Server и один или и Polyspace Bug Finder Server и Polyspace Code Prover Server на этом компьютере. Этот пример описывает простую настройку, но можно обобщить шаги нескольким рабочим на отдельных компьютерах.
Запустите сервис планировщика задания (Планировщик Задания MATLAB или mjs
сервис) на компьютере, который действует как главный узел и узел рабочего. Прежде, чем запустить сервис, необходимо выполнить начальную настройку.
MATLAB Parallel Server и Серверные продукты Polyspace установлены в двух отдельных папках. Установка MATLAB Parallel Server направляет анализ Polyspace к Серверным продуктам Polyspace. Чтобы соединить эти две установки, задайте путь к корневой папке Серверных продуктов Polyspace в вашей установке MATLAB Parallel Server.
Перейдите к
. Здесь, matlabroot
\toolbox\parallel\bin\
папка установки MATLAB Parallel Server, например, matlabroot
C:\Program Files\MATLAB\R2020b
.
Не прокомментируйте и измените следующую линию в файле mjs_polyspace.conf
. Чтобы отредактировать и сохранить файл, откройте свой редактор в режиме администратора.
POLYSPACE_SERVER_ROOT=polyspaceserverroot
Здесь,
путь к установке серверных продуктов, например:polyspaceserverroot
C:\Program Files\Polyspace Server\R2020b
Серверный продукт Polyspace, разгружающий анализ, должен принадлежать тому же релизу как Серверный продукт Polyspace, запускающий анализ. Если вы разгружаете анализ от серверного продукта R2020b Polyspace, анализ должен запустить использование другого серверного продукта R2020b Polyspace.
mjs
Сервисные настройкиПеред стартовым MATLAB Parallel Server (mjs
сервис), необходимо выполнить минимальную настройку.
Перейдите к
, где matlabroot
\toolbox\parallel\bin
папка установки MATLAB Parallel Server, например, matlabroot
C:\Program Files\MATLAB\R2020b
.
Измените файл mjs_def.bat
(Windows®) или mjs_def.sh
(Linux®). Чтобы отредактировать и сохранить файл, откройте свой редактор в режиме администратора.
Считайте инструкции в файле и не прокомментируйте линии по мере необходимости. Как минимум не прокомментируйте эти линии, которые задают:
Имя хоста.
Windows:
REM set HOSTNAME=%strHostname%.%strDomain%
#HOSTNAME=`hostname -f`
Уровень безопасности.
Windows:
REM set SECURITY_LEVEL=
#SECURITY_LEVEL=""
Для уровней безопасности 2 и выше, необходимо обеспечить пароль в графическом окне во время представления задания.
mjs
Сервис и один рабочийВ терминале командной строки, cd
к
, где matlabroot
\toolbox\parallel\bin
папка установки MATLAB Parallel Server, например, matlabroot
C:\Program Files\MATLAB\R2020b
. Запустите эти команды (непосредственно в командной строке или при помощи скриптов):
mjs install mjs start startjobmanager -name JobScheduler -remotehost hostname -v startworker -jobmanagerhost hostname -jobmanager JobScheduler -remotehost hostname -v |
Здесь,
имя хоста вашего компьютера. Это имя является именем хоста, что вы задали в файле hostname
mjs_def.bat
(Windows) или mjs_def.sh
(Linux).
Для получения дополнительной информации и конфигурирование сервисов с несколькими рабочими, см.:
Установите и сконфигурируйте MATLAB Parallel Server для планировщика задания MATLAB и сетевого менеджера лицензий (MATLAB Parallel Server)
mjs
(MATLAB Parallel Server)
Если вы настроили компьютер, который действует как главный узел и узел рабочего, вы готовы разгрузить анализ Polyspace от клиентского узла (сервер CI под управлением скрипты на Дженкинсе в другой системе CI).
Разгружать анализ, введите:
polyspaceserverroot\polyspace\bin\polyspace-code-prover-server -batch -scheduler hostname|MJSName@hostname [options] [-mjs-username name]
папка установки Серверных продуктов Polyspace на клиентском узле, например, polyspaceserverroot
C:\Program Files\Polyspace Server\R2020b
.
имя хоста компьютера, который размещает главный узел кластера MATLAB Parallel Server.hostname
имя Планировщика Задания MATLAB на главном хосте узла.MJSName
Если вы используете startjobmanager
команда, чтобы запустить Планировщик Задания MATLAB,
аргумент опции MJSName
-name
.
аналитические опции Polyspace. Эти опции совпадают с опциями локального анализа. Например, можно использовать эти опции:options
-sources-list-file
: Задайте текстовый файл, который имеет одно имя исходного файла на строку.
-options-file
: Задайте текстовый файл, который имеет одну опцию на строку.
-results-dir
: Задайте папку загрузки для хранения результатов после анализа.
Для полного списка опций см. Аналитические Опции.
имя пользователя, требуемое для представлений задания с помощью MATLAB Parallel Server. Эти учетные данные требуются, только если вы используете уровень безопасности 1 или выше для представлений MATLAB Parallel Server. Смотрите Набор безопасность Кластера Планировщика Задания MATLAB (MATLAB Parallel Server).name
Для уровней безопасности 2 и выше, необходимо обеспечить пароль в графическом окне во время представления задания. Чтобы избежать этой подсказки в будущем, можно указать, что пароль помнят на компьютере.
Анализ выполняется локально на сервере CI в конец фазы компиляции. После компиляции аналитическое задание представлено другому серверу. На завершении результаты анализа загружаются назад на сервер CI. Можно затем загрузить результаты на Polyspace доступ для анализа или сообщить о результатах в некотором другом формате.