汎用スケジューラ インターフェイスを使用した構成
汎用スケジューラ インターフェイスには MATLAB® クライアント、MATLAB ワーカーおよびサードパーティ製スケジューラの相互作用を構成するための柔軟性があります。スケジューラの設定と MATLAB とのインターフェイスを詳細にカスタマイズするには、汎用スケジューラ インターフェイスを使用します。
組み込みのクラスター タイプまたは Generic
を使用して、クラスター プロファイルを作成することができます。ベスト プラクティスとしては、可能であれば組み込みのクラスター タイプを使用します。
以下の場合は Generic
クラスター プロファイルを使用する必要があります。
組み込みのクラスター タイプがないクラスターに接続する
MATLAB クライアントとクラスター ノードに共有ファイル システムがない
MATLAB クライアント マシンがサードパーティ製スケジューラにジョブを直接投入できない
並列ジョブをクラスターに投入する方法を完全にカスタマイズする必要がある
組み込みのクラスター タイプを使用してクラスターを構成するには、Slurm、PBS Pro、OpenPBS、LSF、TORQUE 向けの構成、Hadoop クラスターの構成、またはHPC Pack 向けの構成を参照してください。
サードパーティ製スケジューラとのインターフェイス
汎用スケジューラ インターフェイスには、Parallel Computing Toolbox™ クライアント セッションからタスクをスケジューラおよびクラスター ノードに渡す手段が用意されています。これを実現するには、MATLAB クライアントに一連のプラグイン スクリプトを提供しなければなりません。このスクリプトには、ジョブ スケジューラとの通信方法、クラスター ノードへのジョブおよびタスク データの転送方法など、使用しているクラスター インフラストラクチャ固有の命令が含まれています。
サポート スクリプト
スケジューラとのインターフェイスに役立つよう、MathWorks® では、以下のサードパーティ製スケジューラ用にアドオンまたはプラグインを提供しています。これらは GitHub® リポジトリまたはアドオン マネージャーからダウンロードできます。
プラグイン | GitHub リポジトリ |
---|---|
Slurm の備わった MATLAB Parallel Server™ 用の Parallel Computing Toolbox プラグイン | https://github.com/mathworks/matlab-parallel-slurm-plugin |
IBM Spectrum® LSF® の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン | https://github.com/mathworks/matlab-parallel-lsf-plugin |
Grid Engine の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン | https://github.com/mathworks/matlab-parallel-gridengine-plugin |
PBS の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン | https://github.com/mathworks/matlab-parallel-pbs-plugin |
HTCondor の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン | https://github.com/mathworks/matlab-parallel-htcondor-plugin |
これらのワークフローのいずれかを使用して、ご使用のスケジューラに適切なプラグイン スクリプトをダウンロードします。
GitHub リポジトリからプラグインをダウンロードできます。
ご使用のマシンのコマンド ウィンドウから GitHub リポジトリをクローンします。たとえば、IBM Spectrum LSF が備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグインのリポジトリをクローンするには、以下を使用します。
git clone https://github.com/mathworks/matlab-parallel-lsf-plugin
ブラウザーで GitHub ページにアクセスし、プラグインを ZIP アーカイブとしてダウンロードします。
あるいは、MATLAB アドオン マネージャーからアドオンをインストールするには、[ホーム] タブに移動し、[環境] セクションで [アドオン] アイコンをクリックします。アドオン エクスプローラーで、アドオンを検索してインストールします。
また、MATLAB Central™ File Exchange からプラグインをダウンロードすることもできます。
追加情報
MATLAB クライアントがジョブをスケジューラに直接投入できない場合、MATLAB では、コマンドをリモート クラスターに送信するために
ssh
プロトコルの使用がサポートされます。クライアントとクラスター ノードに共有ファイル システムがない場合、MATLAB では、コンピューターとクラスター間でジョブおよびタスク ファイルをコピーするために
sftp
(SSH ファイル転送プロトコル) の使用がサポートされます。プラグイン スクリプトの動作をカスタマイズする場合は、
AdditionalSubmitArgs
などの追加のプロパティを設定できます。詳細については、サンプル プラグイン スクリプトの動作のカスタマイズを参照してください。リポジトリのいずれかでスケジューラまたはクラスター構成がサポートされていない場合、いずれかのパッケージのスクリプトを変更することを推奨します。汎用スケジューラ用の一連のプラグイン スクリプトを記述する方法の詳細については、汎用スケジューラのプラグイン スクリプト (Parallel Computing Toolbox)を参照してください。
汎用クラスター プロファイルの作成
LSF のサンプル設定
この例では、汎用スケジューラ インターフェイスを使用するためのクラスター プロファイルを設定する方法を説明します。クライアントとクラスター マシン間に共有ファイル システムのないネットワークにおける LSF スケジューラの設定を説明します。次の図は、クラスター構成を示します。
このタイプの構成では、ジョブ データが Windows オペレーティング システムが稼働するクライアント ホストから、UNIX® オペレーティング システムが稼働するクラスター上のホスト (クラスター ログイン ノード) にコピーされます。クラスター ログイン ノードから、LSF の bsub
コマンドによりジョブがスケジューラに投入されます。ジョブが終了すると、出力がコピーされてクライアント ホストに戻されます。
要件
設定は次の条件を満たさなければなりません。
クライアント ノードとクラスター ログイン ノードが
ssh
およびsftp
を必ずサポートする。クラスター ログイン ノードにおいて、
bsub
コマンド呼び出しによるジョブの LSF スケジューラへの投入が可能である。詳細については、インストール フォルダー内のnonshared
サブフォルダーにあるREADME
ファイルを参照してください。
クラスター プロファイルの構成
次の手順に従ってクラスター プロファイルを構成します。設定に応じてこれらのオプションを変更できます。
LSF GitHub リポジトリ フォルダーを解凍し、MATLAB クライアントからアクセスできる場所に移動します。
クライアント ホストで MATLAB セッションを開始します。
MATLAB デスクトップからクラスター プロファイル マネージャーを起動します。[ホーム] タブの [環境] セクションで、[並列] 、 [クラスターの作成と管理] を選択します。
[クラスター プロファイルの追加] 、 [汎用] を選択して、クラスター プロファイル マネージャーで新しいプロファイルを作成します。
リスト内で新しいプロファイルが選択されている状態で、[プロファイルの管理] セクションで [名前の変更] を選択し、プロファイル名を
InstallTest
に変更します。Enter キーを押します。[プロパティ] タブで [編集] を選択し、次のフィールドを設定します。
[説明] フィールドに For testing installation と入力します。
[JobStorageLocation] を、ジョブおよびタスクのデータを保存するクライアント マシン上の場所 (クラスターの場所ではない) に設定します (例:
C:\Temp\joblocation
)。異なるバージョンを実行している並列計算製品の間で [JobStorageLocation] を共有してはなりません。クラスター上の各バージョンはそれぞれ固有の [JobStorageLocation] をもたなければなりません。
[NumWorkers] を、インストールのテスト対象とするワーカー数に設定します。
[NumThreads] を、各ワーカーで使用するスレッド数に設定します。
[ClusterMatlabRoot] を、ワーカー マシン上で実行する MATLAB のインストール場所に設定します。
クラスターでオンライン ライセンスを使用する場合、[RequiresOnlineLicensing] を true に設定します。
[RequiresOnlineLicensing] を
true
設定した場合は、[LicenseNumber] を入力します。[OperatingSystem] をクラスター ワーカー マシンのオペレーティング システムに設定します。
[HasSharedFilesystem] を
false
に設定します。この設定はクライアント ノードとワーカー ノードが同じデータの場所を共有できないことを示します。[PluginScriptsLocation] をプラグイン スクリプトの場所に設定します。
リモート クラスターに接続するには、[AdditionalProperties] テーブルで [追加] を選択します。名前に
ClusterHost
、値にcluster-host-name
、型にString
を使用して新しいプロパティを指定します。共有ファイル システムを使用せずにリモート クラスターでジョブを実行するには、[AdditionalProperties] テーブルで [追加] を選択します。名前に
RemoteJobStorageLocation
、値に/network/share/joblocation
、型にString
を使用して新しいプロパティを指定します。
[完了] をクリックしてクラスター プロファイルの変更を保存します。ダイアログ ボックスは次のように表示されます。
プロファイルが機能することを確認するために、クラスター プロファイルの検証とインストールの手順に従って検証を実行します。
クラスター プロファイルの検証とインストール
プロファイルの検証時に、使用するワーカーの数を指定できます。[検証] タブでワーカー数を指定しない場合、検証プロセスでは、[プロパティ] タブの [NumWorkers] プロパティで指定されている値と同数のワーカーの使用が試みられます。より少ないワーカー数を指定すると、クラスター全体を占有せずに構成を検証することができます。
MATLAB デスクトップからクラスター プロファイル マネージャーを起動します。[ホーム] タブの [環境] 領域で、[並列] 、 [クラスターの作成と管理] を選択します。
一覧でクラスター プロファイルを選択します。
[検証] タブをクリックします。
チェック ボックスを使用してすべてのテストまたは検証段階のサブセットを選択し、プロファイルの検証時に使用するワーカーの数を指定します。
[検証] をクリックします。
[検証] 結果タブに出力が表示されます。次の図では、すべての検証テストをパスしたプロファイルの結果が表示されています。
メモ
検証がいずれかの段階で失敗した場合は、MathWorks インストール サポート チームにお問い合わせください。
検証がパスすると、他の並列アプリケーションで利用可能な有効なプロファイルの準備ができたことになります。使用するアプリケーションに合わせて、[NumWorkersRange]、[AttachedFiles]、[AdditionalPaths] など、プロファイルを変更することができます。
他のユーザー用にプロファイルを保存するには、プロファイルを選択して、[エクスポート] をクリックします。そして、便利な場所のファイルにプロファイルを保存します。クラスター プロファイル マネージャーの実行中に、他のユーザーは [インポート] をクリックしてこのプロファイルをインポートできます。
他のユーザーが使用できるように、汎用クラスター プロファイルおよびプラグイン スクリプトを配布する方法については、汎用クラスター プロファイルおよびプラグイン スクリプトの配布を参照してください。
特別な構成
クラスターのアーキテクチャによっては、汎用スケジューラと接続する前に追加のタスクを実施しなければならない場合があります。
カスタム MPI ビルド
Parallel Computing Toolbox で提供される MPI ビルドとは異なる MPI ビルドを使用できます。汎用スケジューラ インターフェイスでこのオプションを使用する方法の詳細については、UNIX システム上での異なる MPI ビルドの使用を参照してください。
Grid Engine ファミリでの通信ジョブの実行
Grid Engine ファミリ用のサンプル スクリプトは、matlab
並列環境の存在に依存しています。並列環境 (PE) とは、クラスターにおける並列計算のために設計されたプログラミング環境です。MATLAB Parallel Server および Grid Engine ファミリ クラスターを使用して通信ジョブを実行するには、matlab
並列環境を構築しなければなりません。
並列環境の作成. 次の手順では並列環境を作成し、すべてのキューで実行できるようにします。ベストプラクティスとして、これらの手順はクラスターのヘッド ノード上で実行してください。一部の手順では管理者のアクセス権が必要です。
Grid Engine ファミリから Grid Engine のインストーラーをダウンロードして実行します。
インストール フォルダー内で、使用する送信モードに関連するプラグイン スクリプトの場所に移動します。
目的のスロット数および
startmatlabpe.sh
ファイルとstopmatlabpe.sh
ファイルの正しい場所を使用するようにmatlabpe.template
の内容を変更します (これらのファイルは、すべてのホストからアクセス可能な共有の場所に配置しても、各ホストの同じ場所にコピーしても構いません)。ご使用のクラスターに合わせて、別の値に変更することも、matlabpe.template
に値を追加することもできます。詳細については、ご使用のスケジューラに付属のsge_pe
ドキュメンテーションを参照してください。次のようなシェル コマンドを使用して
matlab
並列環境を追加します。qconf -Ap matlabpe.template
matlab
並列環境をすべてのキュー上で実行できるようにします。このコマンドによりテキスト エディターが起動し、変更を行うことができます。行qconf -mq all.q
pe_list
を検索し、matlab
を追加します。小さなジョブを PE に投入できることを確認します。
$ echo "hostname" | qsub -pe matlab 1
qstat
を使用して、ジョブが正しく実行され、ジョブを実行したホストの名前が出力ファイルに含まれることを確認します。この出力ファイルの既定のファイル名は~/STDIN.o###
で、###
は Grid Engine ジョブ番号を示します。
メモ
並列環境の名前を matlab
以外の名前に変更する場合は、投入関数も変更してください。
Windows クラスターでのファイアウォールの構成
クラスター ノード上で Windows ファイアウォールを使用している場合は、許可されたプログラムとして MATLAB を追加できます。
次の手順において、matlabroot
は MATLAB のインストール場所を示します。
管理者権限をもつユーザーとしてログインします。
Windows® コマンド プロンプトで次のスクリプトを実行します。
matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
他のファイアウォールを使用している場合は、許可されたプログラムとして MATLAB を追加するために、それらのファイアウォールを個別に構成しなければなりません。
関連するトピック
- 汎用スケジューラのプラグイン スクリプト (Parallel Computing Toolbox)
- 汎用クラスター プロファイルおよびプラグイン スクリプトの配布
- UNIX システム上での異なる MPI ビルドの使用
- サードパーティ製スケジューラ クラスター検出の構成