Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

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

メモ

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

以下の手順において、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. DOS コマンド ウィンドウで次を実行します。

    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 サービスはそれ自体で使用するために合計 6+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. 必要な権限で DOS コマンド ウィンドウを開きます。

    1. Windows 7 または Windows Vista™ を使用している場合は、管理者権限でコマンド ウィンドウを実行しなければなりません。Windows メニュー [スタート]、[(すべての) プログラム]、[アクセサリ] をクリックしてから、[コマンド プロンプト] を右クリックし、[管理者として実行] を選択します。このオプションは、ユーザー アカウント制御 (UAC) が実行されている場合のみ使用可能です。

    2. Windows XP を使用している場合は、Windows メニュー [スタート][ファイル名を指定して実行] を選択して DOS コマンド ウィンドウを開き、[名前] フィールドに次を入力します。

      cmd
      
  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 ジョブ スケジューラの構成を参照してください。グラフィカル ユーザー インターフェイスである Admin Center を使用するには、クラスターのすべてのノードに直接ネットワーク接続するコンピューター上で Admin Center を実行しなければなりません。そのようなコンピューターで Admin Center を実行できない場合は、コマンド ライン インターフェイスを使用しなければなりません。コマンド ライン インターフェイスの使用方法については、次の手順に従ってください。

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

  1. mjs サービスの開始

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

    1. 必要な権限で DOS コマンド ウィンドウを開きます。

      1. Windows または Windows Vista を使用している場合は、管理者権限でコマンド ウィンドウを実行しなければなりません。Windows メニュー [スタート]、[(すべての) プログラム]、[アクセサリ] をクリックしてから、[コマンド プロンプト] を右クリックし、[管理者として実行] を選択します。このオプションは、ユーザー アカウント制御 (UAC) が実行されている場合のみ使用可能です。

      2. Windows XP を使用している場合は、Windows メニュー [スタート][ファイル名を指定して実行] を選択して DOS コマンド ウィンドウを開き、[名前] フィールドに次を入力します。

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

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

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

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

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

    cd matlabroot\toolbox\parallel\bin
    remotemjs install -remotehost hostA,hostB,hostC . . .
    remotemjs start -remotehost hostA,hostB,hostC . . .
    

    hostA,hostB,hostC は、ホスト名のリストです。ホスト名の間は空白がなく、コンマのみであることに注意してください。プロトコル、プラットフォーム (混合環境などにおいて) またはその他の情報を示す必要がある場合は、次を入力して remotemjs のヘルプを参照してください。

    remotemjs -help
    

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

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

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

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

      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 サービスが実行されていなければなりません。ネットワーク ライセンス マネージャーを使用している場合は、ネットワーク上で実行されていなければなりません。

    ワーカーとして使用するそれぞれのノードに対して、DOS コマンド ウィンドウで次のコマンドを入力します。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

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

    cd matlabroot/toolbox/parallel/bin
    ./remotemjs start -remotehost hostA,hostB,hostC . . .

    hostA,hostB,hostC は、ホスト名のリストです。ホスト名の間は空白がなく、コンマのみであることに注意してください。プロトコル、プラットフォーム (混合環境などにおいて) またはその他の情報を示す必要がある場合は、次を入力して remotemjs のヘルプを参照してください。

    ./remotemjs -help
  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)

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

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

ご利用のプラットフォームを選択してください。

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

クラスター ノードごとに以下の手順に従って mjs サービスを既知のサービスとして登録し、システムの起動時に自動的に開始されるように設定します。

  1. 次のリンクを、もしまだ無ければ作成します。

    ln -s matlabroot/toolbox/parallel/bin/mjs /etc/mjs
    
  2. 起動スクリプト ファイルへの次のリンクを作成します。

    ln -s matlabroot/toolbox/parallel/bin/mjs /etc/init.d/mjs
    
  3. 起動スクリプト ファイルのアクセス許可を設定します。

    chmod 555 /etc/init.d/mjs
    
  4. 既定の実行レベルを調べます。SysV Linux マシンがある場合、マシンを起動してからただちに $runlevel コマンドを実行することで、既定の実行レベルを判定できます。2 番目の数字の出力が、システムの既定の実行レベルです。使用している Linux マシンが SysV をサポートしていない場合は、/etc/inittab 内で既定の実行レベルを探します。

  5. 実行レベルを判定したら、その実行レベルに関連付けられている rc フォルダー内にリンクを作成します。たとえば、実行レベルが 5 の場合、以下のプラットフォーム固有のコマンド セットのいずれかを実行します。

    • Debian および Fedora プラットフォーム:

      cd /etc/rc5.d;
      ln -s ../init.d/mjs S99MJS
      
    • SUSE プラットフォーム:

      cd /etc/init.d/rc5.d;
      ln -s ../mjs S99MJS
      
    • Red Hat プラットフォーム (非 Fedora):

      cd /etc/rc.d/rc5.d;
      ln -s ../../init.d/mjs S99MJS
      

Macintosh プラットフォーム

クラスター ノードごとに以下の手順に従って mjs サービスを既知のサービスとして launchd に登録し、システムの起動時に自動的に開始されるように設定します。

  1. ツールボックス フォルダーに移動し、実行中の mjs サービスを停止します。

    cd matlabroot/toolbox/parallel/bin
    sudo ./mjs stop
    
  2. 次のリンクを作成します (まだ存在しない場合)。

    sudo mkdir -p /usr/local/sbin/
    sudo ln -s matlabroot/toolbox/parallel/bin/mjs /usr/local/sbin/mjs
    
  3. mjs 用の launchd .plist ファイルを /Library/LaunchDaemons にコピーします。

    sudo cp ./util/com.mathworks.mjs.plist /Library/LaunchDaemons
    
  4. コピーした .plist ファイルをテキスト エディターで開きます。StandardOutPath フィールドと StandardErrorPath フィールドの先頭部分が mjs_def.sh ファイルで定義されている LOGBASE 値と一致していることを確認します。たとえば、LOGBASE/var/log/mjs である場合、次のように StandardOutPath および StandardErrorPath を定義しなければなりません。

    <key>StandardOutPath</key>
    <string>/var/log/mjs/launchctl.stdout</string>
    <key>StandardErrorPath</key>
    <string>/var/log/mjs/launchctl.stderr</string>
    
  5. マシンを再起動して nodestatus を使用し、mjs が実行されていることを確認します。

    cd matlabroot/toolbox/parallel/bin
    ./nodestatus
    

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

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

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

関連する例

詳細