Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

MATLAB ジョブ スケジューラを統合するための詳細オプションの設定

クラスターと MATLAB® ジョブ スケジューラを統合するときには、以下の手順に従い詳細オプションを設定します。

メモ

MATLAB ジョブ スケジューラをはじめて統合する場合、最も一般的な構成オプションについてはMATLAB ジョブ スケジューラおよびネットワーク ライセンス マネージャー向けのインストールを参照してください。

以下の手順において、matlabroot はインストールされている MATLAB Parallel Server™ ソフトウェアの場所を示します。以下の説明でこの文字列が使用されていたら、パスをご使用の場所に置き換えてください。

MATLAB Parallel Server の複数のバージョンの実行

使用している MATLAB ジョブ スケジューラのクラスターをアップグレードして、それに接続する MATLAB デスクトップ クライアント上で Parallel Computing Toolbox の R2016a 以降のリリースを引き続き使用できます。この下位互換性機能を利用するには、次を行います。

  1. クラスターに MATLAB Parallel Server の最新バージョンをインストールします。クラスターで MATLAB ジョブ スケジューラを実行するにはこのバージョンを使用しなければなりません。

  2. クラスター内でサポートする各リリースについて MATLAB Parallel Server をインストールします。たとえば、クラスターと共に R2016a および R2016b を使用するには、MATLAB Parallel Server の R2016a と R2016b の両方のリリースをインストールします。

  3. これらのインストール場所に基づいて MATLAB ジョブ スケジューラを構成します。構成ファイル mjs_def の変数 MJS_ADDITIONAL_MATLABROOTSMATLAB Parallel Server のそれぞれのインストール場所を指定します。このファイルは、matlabroot/toolbox/parallel/bin にあります (Linux の場合は mjs_def.sh、Windows の場合は mjs_def.bat)。詳細については、mjsを参照してください。

この構成により、MATLAB ジョブ スケジューラは、インストールされたリリースの MATLAB クライアントにクラスターへのジョブの投入を許可します。MATLAB ジョブ スケジューラは動的に適切なバージョンの MATLAB ワーカーを起動してジョブを実行します。

Windows クラスター ホストの設定

Windows マシンのクラスター上にはじめて MATLAB Parallel Server をインストールする場合、ジョブが通信できるようにこれらのホストを構成する必要があります。

メモ

Windows クラスターがない場合、または Windows クラスター上に以前のバージョンの MATLAB Parallel Server が既にインストールされている場合は、この手順を省略できます。

クラスター ノード上の Windows ファイアウォールの構成

クラスター ノード上で Windows® ファイアウォールを使用している場合は、次を行います。

  1. 管理者権限をもつユーザーとしてログインします。

  2. Windows コマンド プロンプトで次を実行します。

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
    

    このコマンドは、許可されたプログラムとして MATLAB を追加します。別のファイアウォールを使用している場合は、これと同様の内容になるように構成しなければなりません。

mjs 用の Windows ユーザー アクセスの構成

mjs の実行に使用されるユーザーは、クラスターの MATLAB インストール場所にアクセスできる必要があります。既定で、mjs はユーザー LocalSystem として実行されます。ネットワークが LocalSystem によるインストール場所へのアクセスを許可している場合は、この手順を省略できます (ネットワーク構成および LocalSystem に提供されるアクセスがわからない場合は、MathWorks インストール サポート チームにお問い合わせください)。

メモ

LocalSystem がインストール場所にアクセスできない場合は、mjs を別のユーザーとして実行しなければなりません。

次の手順で別のユーザーを設定できます。

  1. 任意の一般的なテキスト エディター (ワードパッドなど) を使用して、次の場所にある mjs_def ファイルを開きます。

    matlabroot\toolbox\parallel\bin\mjs_def.bat
  2. MJSUSER パラメーターを設定する行を見つけ、domain\username の形式で値を指定します。

    set MJSUSER=mydomain\myusername
  3. MJSPASS パラメーターを設定することでユーザーのパスワードを指定します。

    set MJSPASS=password
  4. ファイルを保存します。

要求されたサーバー上のポートを開く

mjs サービスでは、BASE_PORT から始めて必要な数だけのポートを使用します。既定では BASE_PORT は 27350 です。

合計 nJ 個のジョブ マネージャーと nW 個のワーカーを実行するホストを使用する場合、mjs サービスはそれ自体で使用するために合計 7+2*nJ+4*nW 個の連続するポートを予約します。異なるホスト上にあるものも含め、連携して動作するすべてのジョブ マネージャーとワーカーは同一のベース ポートを使用しなければなりません。そうしない場合、ジョブ マネージャーとワーカーは互いに連絡できなくなります。さらに、MPI 通信は BASE_PORT+1000 から始まるポートで行われ、連続する 2*nW 個のポートを使用します。

たとえば、ジョブ マネージャー 1 つとワーカーを 16 個持つホストを使用する場合、次の範囲のポートを開く必要があります。

  • 27350 – 27422: mjs サービス用。

  • 28350 – 28382: MPI 通信用。

既定以外の BASE_PORT を使用して MATLAB からクラスターに接続するには、MATLAB ジョブ スケジューラ クラスター プロファイルの 'Host' プロパティに BASE_PORT の値を追加しなければなりません。これは、たとえば myMJSHost:44001 のように、Hostname:BASE_PORT の形式で行わなければなりません。

古いインストールの mjs サービスの停止

クラスター ノード上で古いバージョンの MATLAB Parallel Server が実行されている場合、新しいインストールのサービスを開始する前に、その mjs サービスを停止する必要があります。

Windows 上の mjs の停止

  1. 管理者権限で Windows コマンド ウィンドウを開きます。

  2. コマンド ウィンドウで、制御スクリプトが含まれている古いインストール環境のフォルダーに移動します。

    cd oldmatlabroot\toolbox\parallel\bin
    
  3. 次のコマンドを入力して、古いサービスを停止しアンインストールして、このサービスに関連付けられているファイルを削除します。

    mjs uninstall -clean
    

    R2019a より前のリリースで、このサービスは mdce と呼ばれています。代わりに、次のコマンドを入力します。

    cd oldmatlabroot\toolbox\distcomp\bin
    mdce uninstall -clean
    

    メモ

    -clean フラグを使用すると、すべての既存のジョブ データが永久的に削除されます。このデータを削除する前に、今後そのデータを使用することがないことを確認してください。

  4. すべてのワーカー ノードでこの手順を繰り返します。

UNIX 上の mjs の停止

  1. root としてログインします root としてログインできない場合は、oldmatlabroot/toolbox/parallel/bin/mjs_def.sh ファイルの CHECKPOINTBASELOGBASEPIDBASE、および該当する場合は LOCKBASE パラメーターを変更し、書き込み権限のあるフォルダーを指すようにしなければなりません。R2019a より前のリリースで、このファイルは oldmatlabroot/toolbox/distcomp/bin/mdce_def.sh です。

  2. それぞれのクラスター ノードで、次のコマンドを入力して mjs サービスを停止し、このサービスに関連付けられているファイルを削除します。

    cd oldmatlabroot/toolbox/parallel/bin
    ./mjs stop -clean

    R2019a より前のリリースで、このサービスは mdce と呼ばれています。代わりに、次のコマンドを入力します。

    cd oldmatlabroot/toolbox/distcomp/bin
    ./mdce stop -clean

    メモ

    -clean フラグを使用すると、すべての既存のジョブ データが永久的に削除されます。このデータを削除する前に、今後そのデータを使用することがないことを確認してください。

MATLAB ジョブ スケジューラのセキュリティ レベルの設定

クラスター ノードで mjs サービスを開始する前に、セキュリティ レベルを設定します。詳細については、セキュリティ レベルの設定を参照してください。セキュリティに関する追加の考慮事項については、MATLAB ジョブ スケジューラ クラスターのセキュリティの設定を参照してください。

mjs サービス、MATLAB ジョブ スケジューラおよびワーカーの起動 (コマンド ライン)

MATLAB ジョブ スケジューラは、グラフィカル インターフェイスまたはコマンド ラインを使用して起動できます。グラフィカル インターフェイスの使用方法については、MATLAB ジョブ スケジューラの構成を参照してください。グラフィカル インターフェイスである管理センターを使用するには、クラスターのすべてのノードに直接ネットワーク接続するコンピューター上で管理センターを実行しなければなりません。そのようなコンピューターで管理センターを実行できない場合は、コマンド ライン インターフェイスを使用しなければなりません。コマンド ライン インターフェイスの使用方法については、次の手順に従ってください。

コマンド ライン インターフェイスの使用 (Windows)

  1. mjs サービスの開始

    すべてのノード (ヘッド ノードおよびワーカー ノード) 上に mjs サービスをインストールしなければなりません。ヘッド ノードから始めます。

    1. 管理者権限で Windows コマンド ウィンドウを開きます。

    2. Windows コマンド ウィンドウで、制御スクリプトがあるフォルダーに移動します。

      cd matlabroot\toolbox\parallel\bin
      
    3. 次のコマンドを入力して mjs サービスをインストールします。

      mjs install
      
    4. 次のコマンドを入力して mjs サービスを開始します。

      mjs start
      
    5. すべてのワーカー ノードでこの手順を繰り返します。

    項目 3 ~ 5 の代わりに、1 台のマシンから次のように入力し、リモートで mjs サービスをノードにインストールして開始することもできます。

    cd matlabroot\toolbox\parallel\bin
    ssh hostA mjs install
    ssh hostA mjs start

    hostA は、リモート ホストを表します。ssh ユーティリティの詳細については、次のように入力して使用上の注意事項を参照してください。

    ssh

    インストールの完了後、mjs サービスはマシンが再起動するたびに実行を開始します。MATLAB ジョブ スケジューラやワーカー セッションが実行されているかどうかに関係なく、mjs サービスは明示的な停止またはアンインストールが行われるまで稼働し続けます。

  2. MATLAB ジョブ スケジューラの起動

    MATLAB ジョブ スケジューラを起動するには、Windows コマンド プロンプトで次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ジョブ スケジューラを実行するマシンで作業する必要はありません。

    1. Windows コマンド プロンプトで、スタートアップ スクリプトがあるフォルダーに移動します。

      cd matlabroot\toolbox\parallel\bin
      
    2. 名前 <MyMJS> に一意のテキストを指定して MATLAB ジョブ スケジューラを起動します。

      startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
    3. 目的のホスト上で MATLAB ジョブ スケジューラが実行されていることを確認します。

      nodestatus -remotehost <MATLAB Job Scheduler host name>
      

      メモ

      MATLAB ジョブ スケジューラが実行されているホスト上で startjobmanager を実行している場合は、-remotehost フラグを指定する必要はありません。

      クラスター上に複数の MATLAB ジョブ スケジューラがある場合、それぞれの名前は一意でなければなりません。

  3. ワーカーの起動

    メモ

    マシン上でワーカーを起動するには、そのマシン上で既に mjs サービスが実行されていなければなりません。ネットワーク ライセンス マネージャーを使用している場合は、ネットワーク上で実行されていなければなりません。

    ワーカーとして使用するそれぞれのノードに対して、Windows コマンド プロンプトで次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ワーカーを実行するマシンで作業する必要はありません。

    1. スタートアップ スクリプトがあるフォルダーに移動します。

      cd matlabroot\toolbox\parallel\bin
      
    2. このワーカーを登録する MATLAB ジョブ スケジューラの名前を表す <MyMJS> について、次のテキストを使用して各ノードでワーカーを起動します。このテキストは 1 行で入力します。

      startworker -jobmanagerhost <MATLAB Job Scheduler host name>
          -jobmanager <MyMJS> -remotehost <worker host name> -v
      

      同じノード上で複数のワーカー セッションを実行するには、startworker コマンドで -name オプションを使用して各ワーカーに一意の名前を指定し、そのノード上の各ワーカーでそれを実行します。

      startworker ... -name <worker1 name>
      startworker ... -name <worker2 name>
      
    3. ワーカーが実行されていることを確認します。

      nodestatus -remotehost <worker host name>
      
    4. すべてのワーカー ノードについて項目 b ~ c を繰り返します。

    mjs、MATLAB ジョブ スケジューラおよびワーカー プロセスの詳細 (シャットダウンおよびカスタマイズの方法) については、MATLAB ジョブ スケジューラ クラスターのカスタマイズを参照してください。

コマンド ライン インターフェイスの使用 (UNIX)

  1. mjs サービスの開始

    各クラスター ノードで、次のコマンドを入力して mjs サービスを開始します。

    cd matlabroot/toolbox/parallel/bin
    ./mjs start

    また、1 台のマシンから次のように入力して、ノードで mjs サービスをリモートで起動することもできます。

    cd matlabroot/toolbox/parallel/bin
    ssh hostA matlabroot/toolbox/parallel/bin/mjs start
    ssh hostB matlabroot/toolbox/parallel/bin/mjs start
    ssh hostC matlabroot/toolbox/parallel/bin/mjs start
    

    hostAhostB、および hostC は、リモート ホスト名を表します。ホスト名のリストが長い場合は、1 台のマシンから次のように入力して、複数のノードで mjs サービスをリモートで起動することもできます。

    for host in hostA hostB hostC;
     do ssh $host matlabroot/toolbox/parallel/bin/mjs start;
    done 

    ssh ユーティリティの詳細については、次のように入力して使用上の注意事項を参照してください。

    ssh

    また、次のように入力してシステム リファレンス マニュアルにアクセスすることもできます。

    man ssh

  2. MATLAB ジョブ スケジューラの起動

    MATLAB ジョブ スケジューラを起動するには、次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ジョブ スケジューラを実行するマシンで作業する必要はありません。

    1. スタートアップ スクリプトがあるフォルダーに移動します。

      cd matlabroot/toolbox/parallel/bin
      
    2. 名前 <MyMJS> に一意のテキストを指定して MATLAB ジョブ スケジューラを起動します。このテキストは 1 行で入力します。

      ./startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
      
    3. MATLAB ジョブ スケジューラが目的のホスト上で実行されていることを確認します。

      ./nodestatus -remotehost <MATLAB Job Scheduler host name>
      

      メモ

      クラスター上に複数の MATLAB ジョブ スケジューラがある場合、それぞれの名前は一意でなければなりません。

  3. ワーカーの起動

    メモ

    マシン上でワーカーを起動するには、そのマシン上で既に mjs サービスが実行されていなければなりません。ネットワーク ライセンス マネージャーを使用している場合は、ネットワーク上で実行されていなければなりません。

    MATLAB ワーカーをホスティングするコンピューターごとに、次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ワーカーを実行するマシンで作業する必要はありません。

    1. スタートアップ スクリプトがあるフォルダーに移動します。

      cd matlabroot/toolbox/parallel/bin
      
    2. このワーカーを登録する MATLAB ジョブ スケジューラの名前を表す <MyMJS> について、次のテキストを使用して各ノードでワーカーを起動します。このテキストは 1 行で入力します。

      ./startworker -jobmanagerhost <MATLAB Job Scheduler host name>
         -jobmanager <MyMJS> -remotehost <worker host name> -v
      

      同じマシンで複数のワーカー セッションを実行するには、-name オプションを使用して各ワーカーに一意の名前を指定します。

      ./startworker ... -name <worker1>
      ./startworker ... -name <worker2>
      
    3. ワーカーが実行されていることを確認します。ワーカー ノードごとに次のコマンドを実行します。

      ./nodestatus -remotehost <worker host name>
      

    mjs、MATLAB ジョブ スケジューラおよびワーカー プロセスの詳細 (シャットダウンおよびカスタマイズの方法) については、MATLAB ジョブ スケジューラ クラスターのカスタマイズを参照してください。

マシンの起動時に自動開始する mjs サービスの構成 (UNIX)

systemd システムとサービス マネージャーを使用して、マシンの起動時に mjs サービスを起動できます。この手順は必須ではありませんが、システム クラッシュの際に役立ちます。構成した mjs サービスはマシンの再起動時に実行を開始し、MATLAB ジョブ スケジューラまたはワーカーのセッションが実行されているかどうかに関係なく、明示的に停止されるまで稼働し続けます。

以下の手順を実行するには、ルート権限が必要です。

Debian、Fedora、SUSE および Red Hat (非 Fedora) のプラットフォーム

以下の手順に従って、クラスター ノードごとにユニット ファイルを作成し、システムの起動時に mjs サービスを自動開始するように構成します。

  1. /etc/systemd/system フォルダーに、mjs.service という systemd ユニット ファイルを作成して編集します。

    nano /etc/systemd/system/mjs.service
  2. mjs.service ファイルに以下の構成オプションを追加します。

    [Unit]
    Description=MATLAB Job Scheduler
    
    [Service]
    Type=forking
    ExecStart=matlabroot/toolbox/parallel/bin/mjs start 
    
    [Install]
    WantedBy=multi-user.target
    

    systemd による mjs サービスの停止または再起動が可能かどうかも指定できます。詳細については、ご使用の UNIX® プラットフォームの systemd のドキュメンテーションを参照してください。

    ユニット ファイルを保存します。

  3. Red Hat (非 Fedora) のプラットフォームでは、ユニット ファイルのアクセス許可を設定します。

    chmod 664 /etc/systemd/system/mjs.service
  4. systemd サービス ファイルを再度読み込み、変更内容を更新します。

    systemctl daemon-reload

  5. マシンの起動時における mjs systemd サービスの自動開始を有効にします。

    systemctl enable mjs.service

    また、mjs サービスを開始して、mjs systemd サービスが正常に構成されたかどうかを確認することもできます。

    systemctl start mjs.service

    mjs systemd サービスのステータスを確認するには、次のコマンドを入力します。

    sudo systemctl status mjs.service

MATLAB ジョブ スケジューラを含むインストール環境の検証

MATLAB Parallel Server 製品のインストールおよび構成が正しく行われたことを確認するには、クラスター プロファイルを作成して検証します。詳細については、MATLAB Parallel Server クラスターへの MATLAB クライアントの接続を参照してください。プロファイルの検証時にクラスター全体を占有しないように、使用するワーカー数を指定できます。検証をパスしなかった場合は、MathWorks インストール サポート チームに問い合わせるか、一般的な問題のトラブルシューティングを参照してください。

クラスター プロファイルの作成後に、アプリケーションに適した任意の変更を加えることができます (NumWorkersRangeAttachedFilesAdditionalPaths など)。他のユーザー用にプロファイルを保存するには、クラスター プロファイル マネージャーでプロファイルを選択し、[エクスポート] をクリックしてから、便利な場所のファイルにプロファイルを保存します。後で、クラスター プロファイル マネージャーの実行中に、他のユーザーは [インポート] をクリックしてこのプロファイルをインポートできます。クラスター プロファイルの詳細については、クラスターの検出とクラスター プロファイルの使用 (Parallel Computing Toolbox)を参照してください。

関連する例

詳細