Main Content

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

汎用スケジューラ インターフェイスを使用した構成

汎用スケジューラ インターフェイスには 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 スケジューラの設定を説明します。次の図は、クラスター構成を示します。

Workflow that shows the operation of an LSF scheduler

このタイプの構成では、ジョブ データが Windows オペレーティング システムが稼働するクライアント ホストから、UNIX® オペレーティング システムが稼働するクラスター上のホスト (クラスター ログイン ノード) にコピーされます。クラスター ログイン ノードから、LSF の bsub コマンドによりジョブがスケジューラに投入されます。ジョブが終了すると、出力がコピーされてクライアント ホストに戻されます。

要件

設定は次の条件を満たさなければなりません。

  • クライアント ノードとクラスター ログイン ノードが ssh および sftp を必ずサポートする。

  • クラスター ログイン ノードにおいて、bsub コマンド呼び出しによるジョブの LSF スケジューラへの投入が可能である。詳細については、インストール フォルダー内の nonshared サブフォルダーにある README ファイルを参照してください。

クラスター プロファイルの構成

次の手順に従ってクラスター プロファイルを構成します。設定に応じてこれらのオプションを変更できます。

  1. LSF GitHub リポジトリ フォルダーを解凍し、MATLAB クライアントからアクセスできる場所に移動します。

  2. クライアント ホストで MATLAB セッションを開始します。

  3. MATLAB デスクトップからクラスター プロファイル マネージャーを起動します。[ホーム] タブの [環境] セクションで、[並列][クラスターの作成と管理] を選択します。

  4. [クラスター プロファイルの追加][汎用] を選択して、クラスター プロファイル マネージャーで新しいプロファイルを作成します。

  5. リスト内で新しいプロファイルが選択されている状態で、[プロファイルの管理] セクションで [名前の変更] を選択し、プロファイル名を InstallTest に変更します。Enter キーを押します。

  6. [プロパティ] タブで [編集] を選択し、次のフィールドを設定します。

    1. [説明] フィールドに For testing installation と入力します。

    2. [JobStorageLocation] を、ジョブおよびタスクのデータを保存するクライアント マシン上の場所 (クラスターの場所ではない) に設定します (例: C:\Temp\joblocation)。

      異なるバージョンを実行している並列計算製品の間で [JobStorageLocation] を共有してはなりません。クラスター上の各バージョンはそれぞれ固有の [JobStorageLocation] をもたなければなりません。

    3. [NumWorkers] を、インストールのテスト対象とするワーカー数に設定します。

    4. [NumThreads] を、各ワーカーで使用するスレッド数に設定します。

    5. [ClusterMatlabRoot] を、ワーカー マシン上で実行する MATLAB のインストール場所に設定します。

    6. クラスターでオンライン ライセンスを使用する場合、[RequiresOnlineLicensing] を true に設定します。

    7. [RequiresOnlineLicensing]true 設定した場合は、[LicenseNumber] を入力します。

    8. [OperatingSystem] をクラスター ワーカー マシンのオペレーティング システムに設定します。

    9. [HasSharedFilesystem]false に設定します。この設定はクライアント ノードとワーカー ノードが同じデータの場所を共有できないことを示します。

    10. [PluginScriptsLocation] をプラグイン スクリプトの場所に設定します。

    11. リモート クラスターに接続するには、[AdditionalProperties] テーブルで [追加] を選択します。名前に ClusterHost、値に cluster-host-name、型に String を使用して新しいプロパティを指定します。

    12. 共有ファイル システムを使用せずにリモート クラスターでジョブを実行するには、[AdditionalProperties] テーブルで [追加] を選択します。名前に RemoteJobStorageLocation、値に /network/share/joblocation、型に String を使用して新しいプロパティを指定します。

  7. [完了] をクリックしてクラスター プロファイルの変更を保存します。ダイアログ ボックスは次のように表示されます。

    Cluster Profile Manager with the InstallTest cluster profile selected. The properties of the InstallTest profile shown.

プロファイルが機能することを確認するために、クラスター プロファイルの検証とインストールの手順に従って検証を実行します。

クラスター プロファイルの検証とインストール

プロファイルの検証時に、使用するワーカーの数を指定できます。[検証] タブでワーカー数を指定しない場合、検証プロセスでは、[プロパティ] タブの [NumWorkers] プロパティで指定されている値と同数のワーカーの使用が試みられます。より少ないワーカー数を指定すると、クラスター全体を占有せずに構成を検証することができます。

  1. MATLAB デスクトップからクラスター プロファイル マネージャーを起動します。[ホーム] タブの [環境] 領域で、[並列][クラスターの作成と管理] を選択します。

  2. 一覧でクラスター プロファイルを選択します。

  3. [検証] タブをクリックします。

  4. チェック ボックスを使用してすべてのテストまたは検証段階のサブセットを選択し、プロファイルの検証時に使用するワーカーの数を指定します。

  5. [検証] をクリックします。

[検証] 結果タブに出力が表示されます。次の図では、すべての検証テストをパスしたプロファイルの結果が表示されています。

Cluster Profile Manager with the InstallTest cluster profile selected. The validation results for the InstallTest cluster are shown in the right pane.

メモ

検証がいずれかの段階で失敗した場合は、MathWorks インストール サポート チームにお問い合わせください。

検証がパスすると、他の並列アプリケーションで利用可能な有効なプロファイルの準備ができたことになります。使用するアプリケーションに合わせて、[NumWorkersRange][AttachedFiles][AdditionalPaths] など、プロファイルを変更することができます。

他のユーザー用にプロファイルを保存するには、プロファイルを選択して、[エクスポート] をクリックします。そして、便利な場所のファイルにプロファイルを保存します。クラスター プロファイル マネージャーの実行中に、他のユーザーは [インポート] をクリックしてこのプロファイルをインポートできます。

他のユーザーが使用できるように、汎用クラスター プロファイルおよびプラグイン スクリプトを配布する方法については、汎用クラスター プロファイルおよびプラグイン スクリプトの配布を参照してください。

特別な構成

クラスターのアーキテクチャによっては、汎用スケジューラと接続する前に追加のタスクを実施しなければならない場合があります。

カスタム MPI ビルド

Parallel Computing Toolbox で提供される MPI ビルドとは異なる MPI ビルドを使用できます。汎用スケジューラ インターフェイスでこのオプションを使用する方法の詳細については、UNIX システム上での異なる MPI ビルドの使用を参照してください。

Grid Engine ファミリでの通信ジョブの実行

Grid Engine ファミリ用のサンプル スクリプトは、matlab 並列環境の存在に依存しています。並列環境 (PE) とは、クラスターにおける並列計算のために設計されたプログラミング環境です。MATLAB Parallel Server および Grid Engine ファミリ クラスターを使用して通信ジョブを実行するには、matlab 並列環境を構築しなければなりません。

並列環境の作成.  次の手順では並列環境を作成し、すべてのキューで実行できるようにします。ベストプラクティスとして、これらの手順はクラスターのヘッド ノード上で実行してください。一部の手順では管理者のアクセス権が必要です。

  1. 次の GitHub リポジトリから、Grid Engine 用のプラグイン スクリプトをダウンロードします。

    あるいは、MATLAB Central の File Exchange からプラグイン スクリプトをダウンロードすることもできます。

  2. 目的のスロット数および startmatlabpe.sh ファイルと stopmatlabpe.sh ファイルの正しい場所を使用するように matlabpe.template の内容を変更します (これらのファイルは、すべてのホストからアクセス可能な共有の場所に配置しても、各ホストの同じ場所にコピーしても構いません)。ご使用のクラスターに合わせて、別の値に変更することも、matlabpe.template に値を追加することもできます。詳細については、ご使用のスケジューラに付属の sge_pe ドキュメンテーションを参照してください。

  3. 次のようなシェル コマンドを使用して matlab 並列環境を追加します。

    qconf -Ap matlabpe.template

  4. matlab 並列環境をすべてのキュー上で実行できるようにします。

    qconf -mq all.q
    このコマンドによりテキスト エディターが起動し、変更を行うことができます。行 pe_list を検索し、matlab を追加します。

  5. 小さなジョブを PE に投入できることを確認します。

    $ echo "hostname" | qsub -pe matlab 1

  6. qstat を使用して、ジョブが正しく実行され、ジョブを実行したホストの名前が出力ファイルに含まれることを確認します。この出力ファイルの既定のファイル名は ~/STDIN.o### で、### は Grid Engine ジョブ番号を示します。

メモ

並列環境の名前を matlab 以外の名前に変更する場合は、投入関数も変更してください。

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

クラスター ノード上で Windows ファイアウォールを使用している場合は、許可されたプログラムとして MATLAB を追加できます。

次の手順において、matlabroot は MATLAB のインストール場所を示します。

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

  2. Windows® コマンド プロンプトで次のスクリプトを実行します。

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat

他のファイアウォールを使用している場合は、許可されたプログラムとして MATLAB を追加するために、それらのファイアウォールを個別に構成しなければなりません。

関連するトピック