Отправка анализа Polyspace с рабочего стола на удаленные серверы с помощью скриптов

Вместо выполнения Polyspace® анализ на локальном рабочем столе, можно отправить анализ в удаленный кластер. Можно использовать выделенный кластер для запуска Polyspace, чтобы освободить память на локальном рабочем столе.

В этом разделе показано, как использовать Windows® или Linux® скрипты для отправки анализа в удаленный кластер и загрузки результатов на рабочий стол после анализа.

Рабочий процесс клиент-сервер для выполнения анализа

После первоначальной настройки можно отправить анализ Polyspace с рабочего стола клиента на сервер. Рабочий процесс клиент-сервер выполняется в три этапа. Все три шага могут быть выполнены на одном и том же компьютере или на трех разных компьютерах.

  1. Узел клиента: Вы задаете опции анализа Polyspace и запускаете анализ на рабочем столе клиента. Начальная фаза анализа до компиляции запускается на рабочем столе. После компиляции задание анализа отправляется на сервер.

    Вам требуется десктопный продукт Polyspace, Polyspace Bug Finder™ на компьютере, который выступает в качестве клиентского узла.

  2. Главный узел: Сервер состоит из головного узла и нескольких рабочих узлов. Главный узел использует планировщик заданий для управления отправками с нескольких клиентских рабочих столов. Затем задания распределяются между рабочими узлами по мере их доступности.

    Вам требуется продукт MATLAB® Parallel Server™ на компьютере, который выступает в качестве головного узла.

  3. Узлы рабочих процессов: Когда рабочий процесс становится доступным, планировщик заданий присваивает рабочий процесс анализу. Анализ Polyspace выполняется на рабочем столе, и результаты загружаются обратно на рабочий стол клиента для проверки.

    Требуется продукт MATLAB Parallel Server на компьютерах, которые выступают в качестве рабочих узлов. Для выполнения анализа также требуются серверные продукты Polyspace Polyspace Bug Finder Server™ и/или Polyspace Code Prover™ Server.

Необходимые условия

Перед запуском удаленного анализа с помощью скриптов необходимо настроить коммуникацию между рабочим столом и удаленным сервером. Для отправки анализа Polyspace с рабочих столов на удаленный сервер см. раздел Установка продуктов.

Запуск удаленного анализа

Чтобы запустить удаленный анализ, используйте эту команду:

polyspaceroot\polyspace\bin\polyspace-bug-finder -batch -scheduler NodeHost|MJSName@NodeHost [options] [-mjs-username name]
где:

  • polyspaceroot - папка установки десктопных продуктов Polyspace, например C:\Program Files\Polyspace\R2021a.

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

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

    Если вы настраиваете связь с кластером из пользовательского интерфейса Polyspace, можно определить NodeHost и MJSName из пользовательского интерфейса. Выберите Metrics > Metrics and Remote Server Settings. Откройте MATLAB Parallel Server Admin Center. В разделе MATLAB Job Scheduler см. Name и Hostname столбцы для MJSName и NodeHost.

    Если вы используете startjobmanager команда запуска планировщика заданий MATLAB, MJSName является аргументом опции -name. Для получения дополнительной информации смотрите Настройте дополнительные опции для интегрирования планировщика заданий MATLAB (MATLAB Parallel Server).

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

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

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

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

    Полный список опций см. в разделе Опции анализа в Polyspace Bug Finder. Также можно:

    • Запустите анализ в пользовательском интерфейсе и остановитесь после компиляции. Текстовые файлы и скрипты для выполнения анализа можно получить в командной строке. См. «Настройка опций анализа Polyspace в интерфейсе пользователя» и «Генерация скриптов».

    • Введите polyspace-bug-finder -h. Отображается список доступных опций с кратким описанием.

    • Наведите курсор на каждую опцию на панели Configuration в пользовательском интерфейсе Polyspace. Нажмите кнопку More Help для получения информации о синтаксисе опции и при необходимости опции.

  • name - имя пользователя, требуемое для отправки заданий с помощью MATLAB Parallel Server. hese-учетные данные требуются только в том случае, если для отправки MATLAB Parallel Server используется уровень безопасности 1 или выше. Смотрите раздел Set MATLAB Job Scheduler Cluster Security (MATLAB Parallel Server).

Анализ выполняется локально на рабочем столе до конца фазы компиляции. После компиляции программное обеспечение отправляет задание анализа в кластер и предоставляет идентификатор задания. Можно также считать идентификатор из файла ID.txt в папке результатов. Чтобы контролировать свой анализ, используйте polyspace-jobs-manager команда с идентификатором задания.

Если анализ останавливается после компиляции и вам приходится перезапускать анализ, чтобы избежать повторения фазы компиляции, используйте опцию -submit-job-from-previous-compilation-results.

Управление удаленным анализом

Чтобы управлять несколькими удаленными анализами, используйте опцию -batch. Для образца:

polyspaceroot\polyspace\bin\polyspace-jobs-manager action -scheduler schedulerName
См. также Run Bug Finder or Code Prover analysis on a remote cluster (-batch). Здесь:

  • polyspaceroot - ваша папка установки MATLAB.

  • schedulerName является одним из следующих:

    • Имя компьютера, на котором размещен главный узел кластера MATLAB Parallel Server (NodeHost).

    • Имя планировщика заданий MATLAB на хосте головного узла (MJSNameNodeHost).

    • Имя профиля кластера MATLAB (ClusterProfile).

      Дополнительные сведения о кластерах см. в разделах Обнаружение кластеров и Использование профилей кластеров (Parallel Computing Toolbox)

    Если вы не задаете планировщик заданий, polyspace-job-manager использует планировщик, заданный в настройках Polyspace. Чтобы увидеть имя планировщика, выберите Tools > Preferences. На вкладке Server Configuration см. Job scheduler host name.

  • action ссылается на возможные команды действий для управления заданиями в планировщике:

    • listjobs:

      Сгенерируйте список заданий Polyspace в планировщике. Для каждого задания программное обеспечение выдает следующую информацию:

      • ID - Идентификатор верификации или анализа.

      • AUTHOR - Имя пользователя, отправившего задание.

      • APPLICATION - Имя продукта Polyspace, например, Polyspace Code Prover или Polyspace Bug Finder.

      • LOCAL_RESULTS_DIR - Папка результатов на локальном компьютере, заданная через вкладку Tools > Preferences > Server Configuration.

      • WORKER - Локальный компьютер, с которого было отправлено задание.

      • STATUS - Статус задания, например running и completed.

      • DATE - Дата представления задания.

      • LANG - Язык представленного исходного кода.

    • download -job ID -results-folder FolderPath:

      Загрузить результаты анализа с заданным идентификатором в папку, заданную FolderPath.

      Когда задание анализа ставится в очередь на сервере, команда polyspace-bug-finder возвращает задание. в сложение файл ID.txt в папке результатов содержится идентификатор задания в этом формате:

      job_id;server_name:project_name version_number
      Для образца, 92;localhost:Demo 1.0.

      Если вы не используете -results-folder опция, программа загружает результат в папку, которую вы указали при запуске анализа, используя -results-dir опция.

      После загрузки результатов используйте пользовательский интерфейс Polyspace для просмотра результатов.

    • getlog -job ID:

      Откройте журнал для задания с указанным идентификатором.

    • удалить -job ID:

      Удалите задание с заданным идентификатором.

    • продвигать -job ID:

      Продвигайте задание с заданным идентификатором в очереди.

    • demote -job ID

      Понизите задание с заданным идентификатором в очереди.

Примеры скриптов для удаленного анализа

В Windows, чтобы избежать ввода команд каждый раз, можно сохранить команды в пакетном файле. В Linux можно перезапустить анализ с помощью интерпретатора скрипта. Чтобы создать пакетный файл для выполнения анализа:

  1. Сохраните опции анализа в файле listofoptions.txt. См. -options-file.

  2. Создайте файл launcher.bat в текстовом редакторе, таком как Блокнот.

    В файл введите следующие команды:

    echo off
    set POLYSPACE_PATH=polyspaceroot\polyspace\bin
    set RESULTS_PATH=C:\Results
    set OPTIONS_FILE=C:\Options\listofoptions.txt
    "%POLYSPACE_PATH%\polyspace-bug-finder.exe" -batch -scheduler localhost -results-dir "%RESULTS_PATH%" -options-file "%OPTIONS_FILE%"
    pause
    

    polyspaceroot - папка установки Polyspace. localhost - имя компьютера, на котором размещен главный узел кластера MATLAB Parallel Server.

  3. Замените определения этих переменных в файле:

    • POLYSPACE_PATH: Введите фактическое местоположение .exe файл.

    • RESULTS_PATH: Введите путь к папке. Файлы, сгенерированные во время компиляции, сохраняются в папке.

    • OPTIONS_FILE: Введите путь к файлу listofoptions.txt.

  4. Дважды кликните launcher.bat чтобы запустить анализ.

Совет

Если вы запускаете анализ Polyspace, Windows .bat или Linux- .sh файл сгенерирован. Файл находится в .settings подпапка в папке результатов. Вместо записи скрипта с нуля можно перезапустить анализ с помощью этого файла.

См. также

Похожие темы