メインコンテンツ

MATLAB Parallel Server の要件とポート

この節では、並列計算をサポートするネットワークの要件およびポート構成について説明します。

完全修飾ドメイン名

MATLAB® Parallel Server™ ソフトウェアおよび Parallel Computing Toolbox™ ソフトウェアは、ホストの省略名と完全修飾ドメイン名の両方をサポートします。既定では短いホスト名を使用します。スケジューラ タイプに従って次の考慮事項を確認してください。

スケジューラ考慮事項
MATLAB ジョブ スケジューラ
  • ネットワークで完全修飾ホスト名が必要な場合、mjs_def ファイルを使用して、ワーカー ノードを完全修飾名で特定できます。MATLAB ジョブ スケジューラのスタートアップ パラメーターの定義を参照してください。

  • MATLAB クライアント セッションで使用されるホスト名を設定するには、pctconfig (Parallel Computing Toolbox) のリファレンス ページを参照してください。

サードパーティ製スケジューラ
  • MATLAB クライアント セッションで使用されるホスト名を設定するには、pctconfig (Parallel Computing Toolbox) のリファレンス ページを参照してください。

セキュリティに関する考慮事項

MATLAB Parallel Server を使用するときには、次の表のセキュリティに関する考慮事項を確認してください。

スケジューラセキュリティに関する考慮事項
MATLAB ジョブ スケジューラ
  • MATLAB ワーカーは、管理者がノードの mjs サービスの開始に使用した任意のユーザーとして実行されます。既定で、mjs サービスは UNIX® オペレーティング システム上では root、Microsoft® Windows® オペレーティング システム上では LocalSystem として開始されます。MATLAB にはシステム コールが用意されているため、ユーザーはシェル コマンドを実行するジョブを投入できます。ジョブを投入したユーザーとしてタスクを実行する場合は、セキュリティ レベル 3 を使用します。詳細については、セキュリティ レベルの設定を参照してください。

  • 既定で、mjs サービスはアクセス制御や認証を一切行いません。mjs サービスへのローカルまたはリモートのアクセス権をもつユーザーは、ワーカーおよびジョブ マネージャーの起動および停止を行ったり、そのステータスをクエリしたりできます。認証とアクセス制御のオプションについては、MATLAB ジョブ スケジューラ クラスターのセキュリティの設定を参照してください。

  • 既定で、ジョブ マネージャーはクラスターやジョブおよびタスク データへのアクセスを制限しません。セキュリティ オプションの詳細については、MATLAB ジョブ スケジューラ クラスターのセキュリティの設定を参照してください。MathWorks® ジョブ マネージャーの代わりにサードパーティ製のスケジューラを使用すると、その製品が提供するセキュリティ対策が利用できる場合があります。

  • 並列計算プロセスはすべてファイアウォールの同じ側に配置するか、それらのプロセスがファイアウォールを介して相互にやりとりできる措置を講じなければなりません。同じ通信ジョブのタスクを実行するワーカーをファイアウォールで分断することはできません。MPI ベースの通信が機能しなくなるためです。

  • 制限されているポートがある場合は、そのポートを並列計算に使用するように指定できます。詳細については、必要なポートを参照してください。

  • 組織がインターネット マルチキャスト バックボーン (MBone) のメンバーである場合、並列計算にマルチキャストを使用する際は、並列計算クラスターが MBone アクセスから分離されていることを確認してください。一般的には、分離が既定の状態です。MBone メンバーシップについてのご質問がある場合は、ネットワーク管理者にお問い合わせください。

  • SOCKS5 プロキシを使用して、MATLAB クライアントとクラスターの間の相互 TLS クライアント認証やエンドツーエンド暗号化を追加できます。詳細については、Configure SOCKS5 Proxy for MATLAB Job Schedulerを参照してください。 (R2026a 以降)

サードパーティ製スケジューラ
  • 並列計算プロセスはすべてファイアウォールの同じ側に配置するか、それらのプロセスがファイアウォールを介して相互にやりとりできる措置を講じなければなりません。同じ通信ジョブのタスクを実行するワーカーをファイアウォールで分断することはできません。MPI ベースの通信が機能しなくなるためです。

  • ユーザーがクラスター上でジョブの通信をスケジュールする場合、通信ジョブに関与する各クラスター ホストには、unchallenged SSH が必要です。たとえば、unchallenged SSH を有効にするために、クラスター管理者は承認されたクラスター ユーザー向けにホストベースの認証やホストベースの権限を設定できます。

必要なポート

MATLAB Parallel Server を使用するには、必要な特定のポートを構成しなければなりません。構成中に詳細なヘルプが必要になった場合は、MATLAB Answers にある MathWorks サポートチームからの次の情報を参照してください。MATLAB Job Scheduler、または Third-Party Scheduler

MATLAB ジョブ スケジューラの場合

BASE_PORT.  mjs_def ファイルでは、ジョブ マネージャーとすべてのワーカーに必要なポートが指定され、その説明があります。詳細については、MATLAB ジョブ スケジューラのスタートアップ パラメーターの定義BASE_PORT パラメーターの説明を参照してください。

通信ジョブ.  UNIX オペレーティング システムで稼動するワーカー マシン上で、MPICH が通信ジョブの実行に必要とするポート番号の範囲は、BASE_PORT + 1000 から BASE_PORT + 2000 までです。

MATLAB ジョブ スケジューラ向けの SOCKS5 プロキシ.  parallelserverproxy ツールを使用して、すべての Parallel Computing Toolbox クライアント トラフィックを MATLAB ジョブ スケジューラ クラスターに単一の SOCKS5 プロキシ エンドポイントを介してルーティングできます。これにより、クライアントとクラスターの間の開いているポートの数が少なくなり、ファイアウォール ルールが簡潔になります。プロキシにより、相互 TLS によるクライアント認証も行われ、すべての通信が暗号化されます。 (R2026a 以降)

詳細については、Configure SOCKS5 Proxy for MATLAB Job Schedulerを参照してください。

サードパーティ製スケジューラ使用時

ワーカー間の通信.  ワーカー プロセスが起動する前に、ワーカーが通信ジョブで使用するポートの範囲を制御できます。

  • Microsoft HPC Pack クラスターについては、値が minport:maxport の環境変数 MPICH_PORT_RANGE を定義します。

  • その他のサードパーティ製スケジューラについては、いずれも FI_TCP_PORT_LOW_RANGE 環境変数を使用して最小ポート番号を定義し、FI_TCP_PORT_HIGH_RANGE 環境変数を使用して最大ポート番号を定義します。

    R2024b より前: 環境変数 MPICH_PORT_RANGE を値 minport:maxport で定義して、ワーカーが通信ジョブで使用するポートの範囲を制御できます。

クライアントからのインバウンド通信用にワーカー上のポートを開く.  対話型並列プール ジョブ用にクライアントに接続するためにワーカーが開くリスニング ポート範囲を制御できます。

  • 関数 pctconfig (Parallel Computing Toolbox) を使用して、ワーカーが開く必要があるリスニング ポートを指定します。または、

  • 値が "minport maxport" の環境変数 PARALLEL_SERVER_OVERRIDE_PORT_RANGE を定義します。これにより、pctconfig で指定されたポート範囲がオーバーライドされます。

    • Microsoft HPC Pack では、ジョブ テンプレートで Environments フィールドに加えて PARALLEL_SERVER_OVERRIDE_PORT_RANGE を設定します。たとえば、30000 から 31000 の範囲のリスニング ポートを開くには、以下のコードをジョブ テンプレートに追加します。

      PARALLEL_SERVER_OVERRIDE_PORT_RANGE=30000 31000; 

    • その他のサードパーティ製スケジューラでは、communicatingJobWrapper.sh スクリプトで PARALLEL_SERVER_OVERRIDE_PORT_RANGE を設定します。たとえば、29000 から 31000 の範囲のリスニング ポートを開くには、以下のコードを communicatingJobWrapper.sh スクリプトに追加します。

      export PARALLEL_SERVER_OVERRIDE_PORT_RANGE="29000 31000"
      communicatingJobWrapper.sh スクリプトの詳細については、Wrapper Scriptsを参照してください。

参考

トピック