Разгрузите анализ Polyspace с непрерывного сервера интеграции на другой сервер

При выполнении инструмента статического анализа кода с Polyspace® как часть непрерывного интегрирования вы можете хотеть, чтобы анализ работал на сервере, который отличается от сервера, запускающего ваши скрипты непрерывного интегрирования (CI). Например:

  • Вы можете хотеть выполнить анализ сервера, который имеет больше вычислительной мощности. Можно разгрузить анализ с сервера CI на другой сервер.

  • Вы можете хотеть представить аналитические задания с нескольких серверов CI на специализированный аналитический сервер, удержать места в очереди и выполнить их, когда экземпляры Сервера Polyspace становятся доступными.

Когда вы разгружаете анализ, фаза компиляции анализа работает на сервере CI. После компиляции аналитическое задание представлено другому серверу и продвигается этот сервер. На завершении результаты анализа загружаются назад на сервер CI. Можно затем загрузить результаты на Polyspace доступ для анализа или сообщить о результатах в некотором другом формате.

Offloading workflow: CI Server uploads to another server. Results are downloaded after analysis. CI Server then uploads to Polyspace Access.

Установите продукты

Типичная распределенная сеть для разгрузки анализа состоит из этих частей:

  • Клиентский узел (узлы): Каждый сервер 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 сервис) на компьютере, который действует как главный узел и узел рабочего. Прежде, чем запустить сервис, необходимо выполнить начальную настройку.

Задайте пути к установке Polyspace

MATLAB Parallel Server и Серверные продукты Polyspace установлены в двух отдельных папках. Установка MATLAB Parallel Server направляет анализ Polyspace к Серверным продуктам Polyspace. Чтобы соединить эти две установки, задайте путь к корневой папке Серверных продуктов Polyspace в вашей установке MATLAB Parallel Server.

  1. Перейдите к matlabroot\toolbox\parallel\bin\. Здесь, matlabroot папка установки MATLAB Parallel Server, например, C:\Program Files\MATLAB\R2020b.

  2. Не прокомментируйте и измените следующую линию в файле 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 сервис), необходимо выполнить минимальную настройку.

  1. Перейдите к matlabroot\toolbox\parallel\bin, где matlabroot папка установки MATLAB Parallel Server, например, C:\Program Files\MATLAB\R2020b.

  2. Измените файл mjs_def.bat (Windows®) или mjs_def.sh (Linux®). Чтобы отредактировать и сохранить файл, откройте свой редактор в режиме администратора.

    Считайте инструкции в файле и не прокомментируйте линии по мере необходимости. Как минимум не прокомментируйте эти линии, которые задают:

    • Имя хоста.

      Windows:

      REM set HOSTNAME=%strHostname%.%strDomain%
      Linux:
      #HOSTNAME=`hostname -f`
      Явным образом задайте свое имя главного компьютера.

    • Уровень безопасности.

      Windows:

      REM set SECURITY_LEVEL=
      Linux:
      #SECURITY_LEVEL=""
      Явным образом задайте уровень безопасности, чтобы избежать будущих ошибок при запуске планировщика задания.

      Для уровней безопасности 2 и выше, необходимо обеспечить пароль в графическом окне во время представления задания.

Запустите mjs Сервис и один рабочий

В терминале командной строки, cd к matlabroot\toolbox\parallel\bin, где matlabroot папка установки MATLAB Parallel Server, например, 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).

Для получения дополнительной информации и конфигурирование сервисов с несколькими рабочими, см.:

Разгрузите анализ от клиентского узла

Если вы настроили компьютер, который действует как главный узел и узел рабочего, вы готовы разгрузить анализ Polyspace от клиентского узла (сервер CI под управлением скрипты на Дженкинсе в другой системе CI).

Разгружать анализ, введите:

polyspaceserverroot\polyspace\bin\polyspace-code-prover-server -batch -scheduler hostname|MJSName@hostname [options] [-mjs-username name]
где:

  • polyspaceserverroot папка установки Серверных продуктов Polyspace на клиентском узле, например, C:\Program Files\Polyspace Server\R2020b.

  • hostname имя хоста компьютера, который размещает главный узел кластера MATLAB Parallel Server.

    MJSName имя Планировщика Задания MATLAB на главном хосте узла.

    Если вы используете startjobmanager команда, чтобы запустить Планировщик Задания MATLAB, MJSName аргумент опции -name.

  • options аналитические опции Polyspace. Эти опции совпадают с опциями локального анализа. Например, можно использовать эти опции:

    • -sources-list-file: Задайте текстовый файл, который имеет одно имя исходного файла на строку.

    • -options-file: Задайте текстовый файл, который имеет одну опцию на строку.

    • -results-dir: Задайте папку загрузки для хранения результатов после анализа.

    Для полного списка опций см. Аналитические Опции.

  • name имя пользователя, требуемое для представлений задания с помощью MATLAB Parallel Server. Эти учетные данные требуются, только если вы используете уровень безопасности 1 или выше для представлений MATLAB Parallel Server. Смотрите Набор безопасность Кластера Планировщика Задания MATLAB (MATLAB Parallel Server).

Для уровней безопасности 2 и выше, необходимо обеспечить пароль в графическом окне во время представления задания. Чтобы избежать этой подсказки в будущем, можно указать, что пароль помнят на компьютере.

Анализ выполняется локально на сервере CI в конец фазы компиляции. После компиляции аналитическое задание представлено другому серверу. На завершении результаты анализа загружаются назад на сервер CI. Можно затем загрузить результаты на Polyspace доступ для анализа или сообщить о результатах в некотором другом формате.

Смотрите также

Похожие темы