メインコンテンツ

スクリプトを使用したデスクトップからリモート サーバーへの Polyspace 解析の送信

ローカル デスクトップで Polyspace® 解析を実行する代わりに、解析をリモート クラスターに送信できます。専用クラスターを使用して Polyspace を実行することで、ローカル デスクトップのメモリを空けることができます。

このトピックでは、Windows® または Linux® のスクリプトを使用して、解析をリモート クラスターに送信し、解析後にその結果をデスクトップにダウンロードする方法を説明します。

解析を実行するためのクライアント/サーバー ワークフロー

初期設定の後、Polyspace 解析をクライアント デスクトップからサーバーに送信できます。クライアント/サーバー ワークフローは 3 つのステップで行われます。3 つのステップすべてが同じコンピューターで実行されるか、3 つの異なるコンピューターで実行されます。

  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 のバージョンは一致している必要があります。

A flow diagram showing the client-server workflow for running a Polyspace analysis. On the client side, you can start an analysis in the graphical user interface or at the command line. After compilation, the analysis job is queued on a server. Once the server-side analysis completes, the analysis results are downloaded back to the client-side desktop for review.

前提条件

スクリプトを使用してリモート解析を実行する前に、デスクトップとリモート サーバーの間の通信を設定しなければなりません。Install Products for Submitting Polyspace Analysis from Desktops to Remote Serverを参照してください。

リモート解析の実行

リモート解析を実行するには、次のコマンドを使用します。ここで、[] はオプションのフラグを示します。

polyspaceroot\polyspace\bin\polyspace-bug-finder -batch -scheduler NodeHost|MJSName@NodeHost [-wait -download] [options] [-mjs-username name]
ここで、

  • polyspaceroot は Polyspace デスクトップ製品のインストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025b です。

  • NodeHost は、MATLAB Parallel Server クラスターのヘッド ノードをホストするコンピューターの名前。

    MJSName はヘッド ノード ホストの MATLAB ジョブ スケジューラの名前です。

    Polyspace ユーザー インターフェイスからクラスターとの通信を設定する場合、ユーザー インターフェイスから NodeHost および MJSName を決定できます。

    [ツール][基本設定] を選択し、[サーバー設定] タブの [設定] をクリックして [クラスター プロファイル マネージャー] を開きます。左ペインでクラスター プロファイルを選択して、[プロパティ] タブの [MJSName] フィールドと [ホスト] フィールドで MJSNameNodeHost を確認します。

    startjobmanager コマンドを使用して MATLAB ジョブ スケジューラを起動する場合、MJSName がオプション -name の引数です。詳細は、MATLAB ジョブ スケジューラを統合するための詳細オプションの設定 (MATLAB Parallel Server)を参照してください。

  • options は解析オプションです。これらのオプションはローカル解析のオプションと同じです。たとえば、次のオプションを使用できます。

    • -sources-list-file: 1 行につき 1 つのソース ファイル名を含むテキスト ファイルを指定します。

    • -options-file: 1 行につき 1 つのオプションを含むテキスト ファイルを指定します。

    • -results-dir: 解析後に結果を格納するダウンロード フォルダーを指定します。

    すべてのオプションのリストは、Polyspace Bug Finder 解析エンジンのすべてのオプションのリストを参照してください。または、以下が可能です。

    • ユーザー インターフェイスで解析を開始してコンパイル後に停止します。コマンド ラインで解析を実行するためのテキスト ファイルとスクリプトを取得できます。ユーザー インターフェイスでの Polyspace 解析オプションの設定とスクリプトの生成を参照してください。

    • polyspace-bug-finder -h」と入力します。簡単な説明を含む使用可能なオプションの一覧が表示されます。

    • Polyspace ユーザー インターフェイスの [構成] ペインにある各オプションの上にカーソルを置きます。オプション構文とそのオプションが必要とされる場合については、[詳しいヘルプ] をクリックしてください。

  • name は、MATLAB Parallel Server を使用したジョブ投入に必要なユーザー名です。これらの資格情報は、MATLAB Parallel Server での投入時に 1 以上のセキュリティ レベルを使用する場合にのみ必要です。MATLAB ジョブ スケジューラ クラスターのセキュリティの設定 (MATLAB Parallel Server)を参照してください。

    セキュリティ レベル 2 以上では、ジョブの投入時にグラフィカル ウィンドウでパスワードを入力する必要があります。今後このプロンプトが表示されないようにするには、パスワードをコンピューターで記憶するように指定します。

解析は 2 段階で実行されます。

  1. 解析の最初の部分 (コンパイル段階の終了まで) は、デスクトップ上でローカルに実行されます。コンパイル後、本ソフトウェアは解析ジョブをクラスターに送信し、ジョブ ID を提供します。結果フォルダーの .status サブフォルダーに保存されているファイル ID.txt から ID を読み取ることもできます。解析を監視するには、polyspace-jobs-manager コマンドとジョブ ID を使用します。

  2. 解析の残りの部分は、クラスターで続行されます。コマンドは解析が完了するまで待機し、結果が自動的にデスクトップにダウンロードされます。コンソールを解放し、polyspace-jobs-manager コマンドを使用して結果を後でダウンロードする場合は、オプション -wait -download を省略します。

コンパイル後に解析が停止し、解析を再開しなければならない場合、コンパイル段階から再実行されないようにするには、オプション -submit-job-from-previous-compilation-results を使用します。

リモート解析の管理

複数のリモート解析を管理するには、オプション -batch を使用します。次に例を示します。

polyspaceroot\polyspace\bin\polyspace-jobs-manager action -scheduler schedulerName
リモート クラスターで Bug Finder または Code Prover 解析を実行 (-batch) も参照してください。ここで、以下となります。

  • polyspaceroot は MATLAB インストール フォルダー。

  • schedulerName は次のいずれかになります。

    • MATLAB Parallel Server クラスターのヘッド ノードをホストするコンピューターの名前 (NodeHost)。

    • ヘッド ノード ホスト上の MATLAB ジョブ スケジューラの名前 (MJSName@NodeHost)。

    • MATLAB クラスター プロファイルの名前 (ClusterProfile)。

      クラスターの詳細は、クラスターの検出とクラスター プロファイルの使用 (Parallel Computing Toolbox)を参照してください。

    ジョブ スケジューラを指定していない場合、polyspace-job-manager では Polyspace 基本設定で指定されたスケジューラが使用されます。スケジューラ名を表示するには、[ツール][基本設定] を選択します。[サーバー設定] タブで、[ジョブ スケジューラのホスト名] を確認します。

  • action はスケジューラでジョブを管理するために、以下の使用できるアクション コマンドを参照します。

    • listjobs:

      スケジューラの Polyspace ジョブのリストを生成します。ジョブごとにソフトウェアでは次の情報が提供されます。

      • ID — 検証識別子または解析識別子。

      • AUTHOR — ジョブを投入したユーザーの名前。

      • APPLICATIONPolyspace Code ProverPolyspace Bug Finder などの Polyspace 製品の名前。

      • LOCAL_RESULTS_DIR[ツール][基本設定][サーバー設定] タブで指定されたローカル コンピューターの結果フォルダー。

      • WORKER — ジョブの投入元のローカル コンピューター。

      • STATUSrunningcompleted などのジョブのステータス。

      • DATE — ジョブが投入された日。

      • LANG — 送信されたソース コードの言語。

    • download -job ID -results-folder FolderPath:

      指定された ID の解析結果を FolderPath で指定されたフォルダーにダウンロードします。解析ジョブをサーバーに送信するときにオプション -wait -download を使用する場合、解析後に結果が自動的にダウンロードされます。結果を明示的にダウンロードする場合にのみ、download アクションを指定した polyspace-jobs-manager コマンドを使用する必要があります。

      解析ジョブがサーバーでキューに入れられている場合、コマンド polyspace-bug-finder はジョブ ID を返します。さらに、結果フォルダーの .status サブフォルダーに保存されているファイル ID.txt には、次の形式のジョブ ID が含まれています。

      job_id;server_name:project_name version_number
      たとえば、92;localhost:Demo 1.0 です。

      -results-folder オプションを使用しない場合は、解析の開始時に -results-dir オプションを使用して指定したフォルダーに結果がダウンロードされます。

      結果をダウンロード後、Polyspace ユーザー インターフェイスを使用して結果を表示します。

    • getlog -job ID:

      指定された ID をもつジョブのログを開きます。

    • remove -job ID:

      指定された ID のジョブを削除します。

    • promote -job ID:

      キューに含まれる指定された ID のジョブを昇格します。

    • demote -job ID

      キューに含まれる指定された ID のジョブを降格します。

    • Cancel -job ID

      キューに含まれる指定された 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 hostname -results-dir "%RESULTS_PATH%" -options-file "%OPTIONS_FILE%"
    pause
    

    polyspaceroot は Polyspace インストール フォルダーです。hostnameMATLAB Parallel Server クラスターのヘッド ノードをホストするコンピューターの名前です。

  3. ファイル内で次の変数の定義を置き換えます。

    • POLYSPACE_PATH:.exe ファイルの実際の場所を入力します。

    • RESULTS_PATH:フォルダーへのパスを入力します。コンパイル中に生成されたファイルはそのフォルダーに保存されます。

    • OPTIONS_FILE:ファイル listofoptions.txt へのパスを入力します。

  4. launcher.bat をダブルクリックして解析を実行します。

ヒント

Polyspace 解析を実行すると、Windows では .bat ファイル、Linux では .sh ファイルが生成されます。このファイルは結果フォルダーの .settings サブフォルダーにあります。ゼロからスクリプトを記述する代わりに、このファイルを使用して解析を再起動できます。

参考

トピック