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® ファイアウォールを使用している場合は、次を行います。
管理者権限をもつユーザーとしてログインします。
Windows コマンド プロンプトで次を実行します。
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 の停止
管理者権限で Windows コマンド ウィンドウを開きます。
コマンド ウィンドウで、制御スクリプトが含まれている古いインストール環境のフォルダーに移動します。
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 ジョブ スケジューラの構成を参照してください。グラフィカル ユーザー インターフェイスである管理センターを使用するには、クラスターのすべてのノードに直接ネットワーク接続するコンピューター上で管理センターを実行しなければなりません。そのようなコンピューターで管理センターを実行できない場合は、コマンド ライン インターフェイスを使用しなければなりません。コマンド ライン インターフェイスの使用方法については、次の手順に従ってください。
コマンド ライン インターフェイスの使用 (Windows)
mjs サービスの開始
すべてのノード (ヘッド ノードおよびワーカー ノード) 上に mjs サービスをインストールしなければなりません。ヘッド ノードから始めます。
管理者権限で Windows コマンド ウィンドウを開きます。
Windows コマンド ウィンドウで、制御スクリプトがあるフォルダーに移動します。
cd matlabroot\toolbox\parallel\bin
次のコマンドを入力して mjs サービスをインストールします。
mjs install
次のコマンドを入力して mjs サービスを開始します。
mjs start
すべてのワーカー ノードでこの手順を繰り返します。
項目 3 ~ 5 の代わりに、1 台のマシンから次のように入力し、リモートで mjs サービスをノードにインストールして開始することもできます。
cd matlabroot\toolbox\parallel\bin ssh hostA mjs install ssh hostA mjs start
hostA
は、リモート ホストを表します。ssh
ユーティリティの詳細については、次のように入力して使用上の注意事項を参照してください。ssh
インストールの完了後、mjs サービスはマシンが再起動するたびに実行を開始します。MATLAB ジョブ スケジューラやワーカー セッションが実行されているかどうかに関係なく、mjs サービスは明示的な停止またはアンインストールが行われるまで稼働し続けます。
MATLAB ジョブ スケジューラの起動
MATLAB ジョブ スケジューラを起動するには、Windows コマンド プロンプトで次のコマンドを入力します。MATLAB Parallel Server のインストール環境にアクセスできる場合、MATLAB ジョブ スケジューラを実行するマシンで作業する必要はありません。
Windows コマンド プロンプトで、スタートアップ スクリプトがあるフォルダーに移動します。
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 サービスが実行されていなければなりません。ネットワーク ライセンス マネージャーを使用している場合は、ネットワーク上で実行されていなければなりません。
ワーカーとして使用するそれぞれのノードに対して、Windows コマンド プロンプトで次のコマンドを入力します。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
また、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
hostA
、hostB
、およびhostC
は、リモート ホスト名を表します。ホスト名のリストが長い場合は、1 台のマシンから次のように入力して、複数のノードで mjs サービスをリモートで起動することもできます。for host in hostA hostB hostC; do ssh $host matlabroot/toolbox/parallel/bin/mjs start; done
ssh
ユーティリティの詳細については、次のように入力して使用上の注意事項を参照してください。ssh
また、次のように入力してシステム リファレンス マニュアルにアクセスすることもできます。
man ssh
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
MATLAB ジョブ スケジューラを含むインストール環境の検証
MATLAB Parallel Server 製品のインストールおよび構成が正しく行われたことを確認するには、クラスター プロファイルを作成して検証します。詳細については、MATLAB Parallel Server クラスターへの MATLAB クライアントの接続を参照してください。プロファイルの検証時にクラスター全体を占有しないように、使用するワーカー数を指定できます。検証をパスしなかった場合は、MathWorks インストール サポート チームに問い合わせるか、一般的な問題のトラブルシューティングを参照してください。
クラスター プロファイルの作成後に、アプリケーションに適した任意の変更を加えることができます (NumWorkersRange
、AttachedFiles
、AdditionalPaths
など)。他のユーザー用にプロファイルを保存するには、クラスター プロファイル マネージャーでプロファイルを選択し、[エクスポート] をクリックしてから、便利な場所のファイルにプロファイルを保存します。後で、クラスター プロファイル マネージャーの実行中に、他のユーザーは [インポート] をクリックしてこのプロファイルをインポートできます。クラスター プロファイルの詳細については、クラスターの検出とクラスター プロファイルの使用 (Parallel Computing Toolbox)を参照してください。