Main Content

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

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

汎用スケジューラ インターフェイスには MATLAB® クライアント、MATLAB ワーカーおよびサードパーティ製スケジューラの相互作用を構成するための柔軟性があります。スケジューラの設定と MATLAB とのインターフェイスを詳細にカスタマイズするには、汎用スケジューラ インターフェイスを使用します。

次の場合に汎用スケジューラ インターフェイスを使用しなければなりません。

  • MATLAB と、すぐに使えるサポートがないサードパーティ製スケジューラとのインターフェイスをとる。すぐに使えるサポートを備えたスケジューラは、Slurm、PBS Pro、Torque、LSF、および HPC Server です。

  • サードパーティ製スケジューラと MATLAB とのインターフェイスで、MATLAB クライアントとクラスター ノード間に共有ファイル システムがない。

  • サードパーティ製スケジューラのユーティリティがインストールされていない MATLAB クライアント マシンを使用する。

サードパーティ製スケジューラとのインターフェイス

汎用スケジューラ インターフェイスには、Parallel Computing Toolbox™ クライアント セッションからタスクをスケジューラおよびクラスター ノードに渡す手段が用意されています。これを実現するには、MATLAB クライアントに一連のプラグイン スクリプトを提供しなければなりません。このスクリプトには、ジョブ スケジューラとの通信方法、クラスター ノードへのジョブおよびタスク データの転送方法など、使用しているクラスター インフラストラクチャ固有の命令が含まれています。

サポート スクリプト

スケジューラとのインターフェイスに役立つよう、MathWorks® では、以下のサードパーティ製スケジューラ用にアドオンまたはプラグインを提供しています。これらはアドオン マネージャーからダウンロードしてインストールできます。

  • Slurm の備わった MATLAB Parallel Server™ 用の Parallel Computing Toolbox プラグイン

  • IBM Platform LSF の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン

  • Grid Engine の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン

  • PBS の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン

  • HTCondor の備わった MATLAB Parallel Server 用の Parallel Computing Toolbox プラグイン

[ホーム] タブの [環境] 領域で [アドオン] をクリックします。アドオン エクスプローラーで、アドオンを検索してインストールします。インストーラーには、クラスター構成のクラスター プロファイルを作成する手順を案内するウィザードが含まれています。

あるいは、以下の場所からプラグインをダウンロードできます。

プラグインをインストールするには、プラグインをダブルクリックするか、ドラッグして MATLAB にドロップします。

各インストーラーは、使用可能な 3 つの送信モードのスクリプトを作成します。

  • 共有 – クライアントがスケジューラに直接送信することができ、クライアントとクラスター マシンに共有ファイル システムがある場合。

  • リモート – クライアントとクラスター マシンに共有ファイル システムがあるが、クライアント マシンが直接スケジューラに送信できない場合 (スケジューラのクライアント ユーティリティがインストールされていない場合など)。この場合、リモート ホストは ssh プロトコルを使用してスケジューラにコマンドを送信します。

  • 非共有 – クライアントとクラスター マシンに共有ファイル システムがない場合。このモードでは、リモート ホストから ssh プロトコトルを使用してスケジューラにコマンドを送信し、クラスター ファイル システムへのジョブおよびタスク ファイルのコピーには sftp プロトコルを使用します。

それぞれの送信モードには、インストール フォルダー内に独自のサブフォルダーが設けられています。これらのサブフォルダーには、スクリプトの使用方法に関する具体的説明が記載された README ファイルが含まれています。スクリプトを使用する前に、使用しているネットワーク設定を示す送信モードを決定します。

プラグイン スクリプトの動作をカスタマイズする場合は、AdditionalSubmitArgs などの追加のプロパティを設定できます。詳細については、サンプル プラグイン スクリプトの動作のカスタマイズを参照してください。

サポート パッケージのいずれかでスケジューラまたはクラスター構成がサポートされていない場合、いずれかのパッケージのスクリプトを変更することを推奨します。汎用スケジューラ用の一連のプラグイン スクリプトを記述する方法の詳細については、汎用スケジューラのプラグイン スクリプト (Parallel Computing Toolbox)を参照してください。

汎用クラスター プロファイルの作成

LSF のサンプル設定

この例では、汎用スケジューラ インターフェイスを使用するためのクラスター プロファイルを設定する方法を説明します。クライアントとクラスター マシン間に共有ファイル システムのないネットワークにおける LSF スケジューラの設定を説明します。次の図は、クラスター構成を示します。

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

要件

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

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

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

LSF インストーラーの実行

  1. ここから LSF のインストーラーをダウンロードします。

  2. MATLAB クライアント内でインストーラー ファイルを開いて実行します。

インストーラーにより、インストール フォルダー内の nonshared サブフォルダーにプラグイン スクリプトがダウンロードされます。インストーラー ウィザードがクラスター プロファイルを作成して検証するための手順を案内します。

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

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

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

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

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

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

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

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

メモ

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

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

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

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

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

既存の汎用クラスター プロファイルを変更する場合は、プロファイルを手動で構成できます。プロファイルをはじめて作成するときに、提供されているサポート スクリプトのいずれかを使用する場合は、代わりにインストーラー ウィザードを使用してください (LSF インストーラーの実行)。次の手順では、インストーラーによって実行される構成を手動で行います。設定に応じてこれらのオプションを変更できます。

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

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

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

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

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

    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] をプラグイン スクリプトの場所に設定します。この例での場所は、LSF インストール フォルダー内の nonshared サブフォルダーです。nonshared 送信モードで例のスクリプトを使用するため、手順 k および l でプロパティを設定します。

    11. [AdditionalProperties] テーブルで、[追加] を選択します。名前に ClusterHost、値に cluster-host-name、型に String を使用して新しいプロパティを指定します。

    12. [AdditionalProperties] テーブルで、[追加] を選択します。名前に RemoteJobStorageLocation、値に /network/share/joblocation、型に String を使用して新しいプロパティを指定します。

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

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

特別な構成

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

カスタム MPI ビルド

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

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

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

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

  1. Grid Engine ファミリから Grid Engine のインストーラーをダウンロードして実行します。

  2. インストール フォルダー内で、使用する送信モードに関連するプラグイン スクリプトの場所に移動します。

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

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

    qconf -Ap matlabpe.template

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

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

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

    $ echo "hostname" | qsub -pe matlab 1

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

メモ:

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

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

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

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

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

  2. DOS コマンド ウィンドウで次のスクリプトを実行します。

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat

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

関連するトピック