このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
MATLAB ジョブ スケジューラを統合するための詳細オプションの設定
クラスターと MATLAB® ジョブ スケジューラを統合するときには、以下の手順に従い詳細オプションを設定します。
メモ
MATLAB ジョブ スケジューラをはじめて統合する場合、最も一般的な構成オプションについてはMATLAB ジョブ スケジューラおよびネットワーク ライセンス マネージャー向けの MATLAB Parallel Server のインストールと構成を参照してください。
以下の手順において、matlabroot
はインストールされている MATLAB Parallel Server™ ソフトウェアの場所を示します。以下の説明でこの文字列が使用されていたら、パスをご使用の場所に置き換えてください。
MATLAB Parallel Server の複数のバージョンの実行
使用している MATLAB ジョブ スケジューラのクラスターをアップグレードして、それに接続する MATLAB デスクトップ クライアント上で Parallel Computing Toolbox の R2016a 以降のリリースを引き続き使用できます。この下位互換性機能を利用するには、次を行います。
クラスターに MATLAB Parallel Server の最新バージョンをインストールします。クラスターで MATLAB ジョブ スケジューラを実行するにはこのバージョンを使用しなければなりません。
クラスター内でサポートする各リリースについて MATLAB Parallel Server をインストールします。たとえば、クラスターと共に R2016a および R2016b を使用するには、MATLAB Parallel Server の R2016a と R2016b の両方のリリースをインストールします。
これらのインストール場所に基づいて MATLAB ジョブ スケジューラを構成します。構成ファイル
mjs_def
の変数MJS_ADDITIONAL_MATLABROOTS
に MATLAB Parallel Server のそれぞれのインストール場所を指定します。このファイルは、
にあります (Linux の場合はmatlabroot
/toolbox/parallel/binmjs_def.sh
、Windows の場合はmjs_def.bat
)。詳細については、mjsを参照してください。
この構成により、MATLAB ジョブ スケジューラは、インストールされたリリースの MATLAB クライアントにクラスターへのジョブの投入を許可します。MATLAB ジョブ スケジューラは動的に適切なバージョンの MATLAB ワーカーを起動してジョブを実行します。
Windows クラスター ホストの設定
Windows マシンのクラスター上にはじめて MATLAB Parallel Server をインストールする場合、ジョブが通信できるようにこれらのホストを構成する必要があります。
メモ:
Windows クラスターがない場合、または Windows クラスター上に以前のバージョンの MATLAB Parallel Server が既にインストールされている場合は、この手順を省略できます。
クライアント上の Windows ファイアウォールの構成
クラスター ノード上で Windows® ファイアウォールを使用している場合は、次を行います。
管理者権限をもつユーザーとしてログインします。
DOS コマンド ウィンドウで次を実行します。
matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
このコマンドは、許可されたプログラムとして MATLAB を追加します。別のファイアウォールを使用している場合は、これと同様の内容になるように構成しなければなりません。
mjs 用の Windows ユーザー アクセスの構成
mjs の実行に使用されるユーザーは、クラスターの MATLAB インストール場所にアクセスできる必要があります。既定で、mjs はユーザー LocalSystem
として実行されます。ネットワークが LocalSystem
によるインストール場所へのアクセスを許可している場合は、この手順を省略できます (ネットワーク構成および LocalSystem
に提供されるアクセスがわからない場合は、MathWorks インストール サポート チームにお問い合わせください)。
メモ:
LocalSystem
がインストール場所にアクセスできない場合は、mjs を別のユーザーとして実行しなければなりません。
次の手順で別のユーザーを設定できます。
任意の一般的なテキスト エディター (ワードパッドなど) を使用して、次の場所にある
mjs_def
ファイルを開きます。matlabroot\toolbox\parallel\bin\mjs_def.bat
MJSUSER
パラメーターを設定する行を見つけ、domain\username
の形式で値を指定します。set MJSUSER=mydomain\myusername
MJSPASS
パラメーターを設定することでユーザーのパスワードを指定します。set MJSPASS=password
ファイルを保存します。
要求されたサーバー上のポートを開く
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 の停止
必要な権限で DOS コマンド ウィンドウを開きます。
Windows 7 または Windows Vista™ を使用している場合は、管理者権限でコマンド ウィンドウを実行しなければなりません。Windows メニュー [スタート]、[(すべての) プログラム]、[アクセサリ] をクリックしてから、[コマンド プロンプト] を右クリックし、[管理者として実行] を選択します。このオプションは、ユーザー アカウント制御 (UAC) が実行されている場合のみ使用可能です。
Windows XP を使用している場合は、Windows メニュー [スタート] 、 [ファイル名を指定して実行] を選択して DOS コマンド ウィンドウを開き、[名前] フィールドに次を入力します。
cmd
コマンド ウィンドウで、制御スクリプトが含まれている古いインストール環境のフォルダーに移動します。
cd oldmatlabroot\toolbox\parallel\bin
次のコマンドを入力して、古いサービスを停止しアンインストールして、このサービスに関連付けられているファイルを削除します。
mjs uninstall -clean
R2019a より前のリリースで、このサービスは mdce と呼ばれています。代わりに、次のコマンドを入力します。
cd oldmatlabroot\toolbox\distcomp\bin mdce uninstall -clean
メモ:
-clean
フラグを使用すると、すべての既存のジョブ データが永久的に削除されます。このデータを削除する前に、今後そのデータを使用することがないことを確認してください。すべてのワーカー ノードでこの手順を繰り返します。
UNIX 上の mjs の停止
root としてログインします root としてログインできない場合は、
ファイルのoldmatlabroot
/toolbox/parallel/bin/mjs_def.shCHECKPOINTBASE
、LOGBASE
、PIDBASE
、および該当する場合はLOCKBASE
パラメーターを変更し、書き込み権限のあるフォルダーを指すようにしなければなりません。R2019a より前のリリースで、このファイルは
です。oldmatlabroot
/toolbox/distcomp/bin/mdce_def.shそれぞれのクラスター ノードで、次のコマンドを入力して 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)
mjs サービスの開始
すべてのノード (ヘッド ノードおよびワーカー ノード) 上に mjs サービスをインストールしなければなりません。ヘッド ノードから始めます。
必要な権限で DOS コマンド ウィンドウを開きます。
Windows または Windows Vista を使用している場合は、管理者権限でコマンド ウィンドウを実行しなければなりません。Windows メニュー [スタート]、[(すべての) プログラム]、[アクセサリ] をクリックしてから、[コマンド プロンプト] を右クリックし、[管理者として実行] を選択します。このオプションは、ユーザー アカウント制御 (UAC) が実行されている場合のみ使用可能です。
Windows XP を使用している場合は、Windows メニュー [スタート] 、 [ファイル名を指定して実行] を選択して DOS コマンド ウィンドウを開き、[名前] フィールドに次を入力します。
cmd
DOS コマンド ウィンドウで、制御スクリプトがあるフォルダーに移動します。
cd matlabroot\toolbox\parallel\bin
次のコマンドを入力して mjs サービスをインストールします。
mjs install
次のコマンドを入力して mjs サービスを開始します。
mjs start
すべてのワーカー ノードでこの手順を繰り返します。
項目 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 サービスは明示的な停止またはアンインストールが行われるまで稼働し続けます。
MATLAB ジョブ スケジューラの起動
MATLAB ジョブ スケジューラを起動するには、DOS コマンド ウィンドウで次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ジョブ スケジューラを実行するマシンで作業する必要はありません。
DOS コマンド ウィンドウで、スタートアップ スクリプトがあるフォルダーに移動します。
cd matlabroot\toolbox\parallel\bin
名前
<MyMJS>
に一意のテキストを指定して MATLAB ジョブ スケジューラを起動します。startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
目的のホスト上で MATLAB ジョブ スケジューラが実行されていることを確認します。
nodestatus -remotehost <MATLAB Job Scheduler host name>
メモ:
MATLAB ジョブ スケジューラが実行されているホスト上で
startjobmanager
を実行している場合は、-remotehost
フラグを指定する必要はありません。クラスター上に複数の MATLAB ジョブ スケジューラがある場合、それぞれの名前は一意でなければなりません。
ワーカーの起動
メモ:
マシン上でワーカーを起動するには、そのマシン上で既に mjs サービスが実行されていなければなりません。ネットワーク ライセンス マネージャーを使用している場合は、ネットワーク上で実行されていなければなりません。
ワーカーとして使用するそれぞれのノードに対して、DOS コマンド ウィンドウで次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ワーカーを実行するマシンで作業する必要はありません。
スタートアップ スクリプトがあるフォルダーに移動します。
cd matlabroot\toolbox\parallel\bin
このワーカーを登録する 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>
ワーカーが実行されていることを確認します。
nodestatus -remotehost <worker host name>
すべてのワーカー ノードについて項目 b ~ c を繰り返します。
mjs、MATLAB ジョブ スケジューラおよびワーカー プロセスの詳細 (シャットダウンおよびカスタマイズの方法) については、MATLAB ジョブ スケジューラ クラスターのカスタマイズを参照してください。
コマンド ライン インターフェイスの使用 (UNIX)
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
MATLAB ジョブ スケジューラの起動
MATLAB ジョブ スケジューラを起動するには、次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ジョブ スケジューラを実行するマシンで作業する必要はありません。
スタートアップ スクリプトがあるフォルダーに移動します。
cd matlabroot/toolbox/parallel/bin
名前
<MyMJS>
に一意のテキストを指定して MATLAB ジョブ スケジューラを起動します。このテキストは 1 行で入力します。./startjobmanager -name <MyMJS> -remotehost <MATLAB Job Scheduler host name> -v
MATLAB ジョブ スケジューラが目的のホスト上で実行されていることを確認します。
./nodestatus -remotehost <MATLAB Job Scheduler host name>
メモ:
クラスター上に複数の MATLAB ジョブ スケジューラがある場合、それぞれの名前は一意でなければなりません。
ワーカーの起動
メモ:
マシン上でワーカーを起動するには、そのマシン上で既に mjs サービスが実行されていなければなりません。ネットワーク ライセンス マネージャーを使用している場合は、ネットワーク上で実行されていなければなりません。
MATLAB ワーカーをホスティングするコンピューターごとに、次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ワーカーを実行するマシンで作業する必要はありません。
スタートアップ スクリプトがあるフォルダーに移動します。
cd matlabroot/toolbox/parallel/bin
このワーカーを登録する MATLAB ジョブ スケジューラの名前を表す
<MyMJS>
について、次のテキストを使用して各ノードでワーカーを起動します。このテキストは 1 行で入力します。./startworker -jobmanagerhost <MATLAB Job Scheduler host name> -jobmanager <MyMJS> -remotehost <worker host name> -v
同じマシンで複数のワーカー セッションを実行するには、
-name
オプションを使用して各ワーカーに一意の名前を指定します。./startworker ... -name <worker1> ./startworker ... -name <worker2>
ワーカーが実行されていることを確認します。ワーカー ノードごとに次のコマンドを実行します。
./nodestatus -remotehost <worker host name>
mjs、MATLAB ジョブ スケジューラおよびワーカー プロセスの詳細 (シャットダウンおよびカスタマイズの方法) については、MATLAB ジョブ スケジューラ クラスターのカスタマイズを参照してください。
マシンの起動時に自動開始する mjs サービスのインストール (UNIX)
この手順は必須ではありませんが、システム クラッシュの際に役立ちます。これを設定すると、マシンが再起動するたびに、mjs サービスの実行が開始されます。MATLAB ジョブ スケジューラまたはワーカーのセッションが実行されているかどうかに関係なく、mjs サービスは明示的に停止されるまで稼働し続けます。
この手順を実行するには、ルート権限が必要です。
ご利用のプラットフォームを選択してください。
Debian、Fedora、SUSE および Red Hat (非 Fedora) のプラットフォーム
クラスター ノードごとに以下の手順に従って mjs サービスを既知のサービスとして登録し、システムの起動時に自動的に開始されるように設定します。
次のリンクを、もしまだ無ければ作成します。
ln -s matlabroot/toolbox/parallel/bin/mjs /etc/mjs
起動スクリプト ファイルへの次のリンクを作成します。
ln -s matlabroot/toolbox/parallel/bin/mjs /etc/init.d/mjs
起動スクリプト ファイルのアクセス許可を設定します。
chmod 555 /etc/init.d/mjs
既定の実行レベルを調べます。SysV Linux マシンがある場合、マシンを起動してからただちに
$runlevel
コマンドを実行することで、既定の実行レベルを判定できます。2 番目の数字の出力が、システムの既定の実行レベルです。使用している Linux マシンが SysV をサポートしていない場合は、/etc/inittab
内で既定の実行レベルを探します。実行レベルを判定したら、その実行レベルに関連付けられている
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 に登録し、システムの起動時に自動的に開始されるように設定します。
ツールボックス フォルダーに移動し、実行中の mjs サービスを停止します。
cd matlabroot/toolbox/parallel/bin sudo ./mjs stop
次のリンクを作成します (まだ存在しない場合)。
sudo mkdir -p /usr/local/sbin/ sudo ln -s matlabroot/toolbox/parallel/bin/mjs /usr/local/sbin/mjs
mjs 用の launchd
.plist
ファイルを/Library/LaunchDaemons
にコピーします。sudo cp ./util/com.mathworks.mjs.plist /Library/LaunchDaemons
コピーした
.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>
マシンを再起動して
nodestatus
を使用し、mjs が実行されていることを確認します。cd matlabroot/toolbox/parallel/bin ./nodestatus
MATLAB ジョブ スケジューラを含むインストール環境の検証
MATLAB Parallel Server 製品のインストールおよび構成が正しく行われたことを確認するには、クラスター プロファイルを作成して検証します。詳細については、MATLAB クライアントと MATLAB Parallel Server クラスターの接続を参照してください。プロファイルの検証時にクラスター全体を占有しないように、使用するワーカー数を指定できます。検証をパスしなかった場合は、MathWorks インストール サポート チームに問い合わせるか、一般的な問題のトラブルシューティングを参照してください。
クラスター プロファイルの作成後に、アプリケーションに適した任意の変更を加えることができます (NumWorkersRange
、AttachedFiles
、AdditionalPaths
など)。他のユーザー用にプロファイルを保存するには、クラスター プロファイル マネージャーでプロファイルを選択し、[エクスポート] をクリックしてから、便利な場所のファイルにプロファイルを保存します。後で、クラスター プロファイル マネージャーの実行中に、他のユーザーは [インポート] をクリックしてこのプロファイルをインポートできます。クラスター プロファイルの詳細については、クラスターの検出とクラスター プロファイルの使用 (Parallel Computing Toolbox)を参照してください。