ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

クラスターとクラスター プロファイル

Cluster Profile Manager

クラスター プロファイルを使用すると、クラスターの特定のプロパティを定義し、MATLAB® クライアントでクラスター オブジェクト、ジョブ オブジェクトおよびタスク オブジェクトを作成する際にこれらのプロパティを適用できます。クラスター プロファイルの使用をサポートする関数には、以下があります。

クラスター プロファイルの作成、編集、インポートは、Cluster Profile Manager から実行できます。Cluster Profile Manager を開くには、[ホーム] タブの [環境] セクションで、[並列][クラスター プロファイルの管理] をクリックします。

クラスターの検出

MATLAB を使用して自動的にクラスターを検出できます。次のいずれかの方法を使用して、使用できるクラスターを検出します。

  • [ホーム] タブの [環境] セクションで、[並列][クラスターの検出] をクリックします。

  • Cluster Profile Manager で、[クラスターの検出] をクリックします。

これにより [Discover Clusters] ダイアログ ボックスが開くので、そこからクラスターの場所を選択します。クラスターが検出されると、選択肢のリストに事前設定されます。

リストされたクラスターのいずれかのプロファイルが既にある場合は、そのプロファイル名がリストに含められます。検出されたクラスターの 1 つに新しいプロファイルを作成する場合は、使用するクラスターの名前を選択し、[Next] をクリックします。続いて開かれるダイアログ ボックスで、この新しいプロファイルを既定値にするかどうかを選択できます。

クラスター検出のための要件

クラスター検出は MJS (MATLAB ジョブ スケジューラ)、Microsoft® Windows HPC Server、Amazon EC2 クラウド クラスターでのみサポートされています。以下の要件がこれらのクラスターに対して適用されます。

  • MJS — クラスター検出機能では、マルチキャスト ネットワーク プロトコルを使用してヘッド ノードを検索します。MJS (MATLAB ジョブ スケジューラ) では、マルチキャスト ネットワーク プロトコルが有効になっていて、MJS ヘッド ノード (スケジューラが実行されている場所) とクライアント マシンを接続するネットワーク上で動作している必要があります。

  • HPC Server — クラスター検出機能では Active Directory ドメイン サービスを使用してヘッド ノードを検出します。HPC Server ヘッド ノードは HPC Server ソフトウェアのインストール時に Active Directory に追加されます。

  • Amazon EC2 — クラスター検出機能では、クライアントと mathworks.com で実行されているクラウド センター Web サービスの間のネットワーク接続が有効になっている必要があります。

クラスター プロファイルのインポートとエクスポート

クラスター プロファイルは MATLAB 設定の一部として保存されるため、通常は個々のユーザー ベースでの使用が可能です。クラスター プロファイルを自分以外が使用できるようにするには、個別の .settings ファイルにエクスポートします。こうすることで、計算用クラスターの全ユーザーが共通プロファイルを共有できるよう、プロファイルのリポジトリを作成できます。

クラスター プロファイルをエクスポートするには、以下の手順に従います。

  1. Cluster Profile Manager で、エクスポートするプロファイルを選択 (強調表示) します。

  2. [Export][Export] をクリックします (または、リスト内のプロファイルを右クリックして [Export] を選択することもできます)。

    すべてのプロファイルを単一のファイルにエクスポートする場合は、[Export][Export All] をクリックします。

  3. [Export profiles to file] ダイアログ ボックスで、ファイルの場所と名前を指定します。既定のファイル名は、そのファイルに含められるプロファイルの名前に .settings 拡張子を付けたものです。名前は必要に応じて変更できます。

このようにして保存されたプロファイルは、他の MATLAB ユーザーによるインポートが可能になります。

  1. Cluster Profile Manager で、[Import] をクリックします。

  2. [Import profiles from file] ダイアログ ボックスで、参照により、インポートするプロファイルの .settings ファイルを見つけます。ファイルを選択して、[開く] をクリックします。

    インポートしたプロファイルが Cluster Profile Manager のリストに表示されます。リストに記載されるプロファイル名は、ファイル名と同じであるとは限らないことに注意してください。インポートするプロファイルと同じ名前のプロファイルが既にある場合、インポートされるプロファイルの名前には、識別できるよう拡張子が加えられます。

プロファイルは、関数 parallel.exportProfile および parallel.importProfile を使用して、プログラムでエクスポートおよびインポートすることもできます。

MATLAB Compiler のためのプロファイルのエクスポート

エクスポートしたプロファイルを MATLAB Compiler™ で使用して、コンパイルされたアプリケーションをクラスターで実行するためのクラスター セットアップ情報を特定することができます。たとえば、関数 setmcruserdata では、エクスポートしたプロファイル ファイル名を使用して、キー ParallelProfile の値を設定できます。並列アプリケーションの配布についての詳細および例は、MATLAB Compiler ドキュメンテーションの「Parallel Computing Toolbox を使用して作成したアプリケーションの配布」を参照してください。

コンパイルされたアプリケーションには、アプリケーションがコンパイルされたときにコンパイルを行うユーザーがもっていた同じ既定のプロファイルと、同じ代替プロファイルのリストが設定されます。つまり、ローカル ワーカーに local プロファイルを使用する場合と同様、多くの場合プロファイル ファイルは不要であるということです。エクスポートしたファイルを使用する場合、そのファイル内の最初のプロファイルがインポートする際の既定値になります。インポートされるプロファイルのいずれかが既存のプロファイルのいずれかと同じ名前をもっている場合、その名前はインポートに際して変更されます (ただし、ファイル内の名前は変更されません)。

クラスター プロファイルの作成と変更

Cluster Profile Manager をはじめて開くと、local というプロファイルのみがリストされます。これは、この時点における既定の設定のみをもつ最初の既定プロファイルです。

次の例では、Cluster Profile Manager を使用してプロファイルの作成と変更を行う方法について説明します。

MJS クラスターで実行するジョブのいくつかのプロパティを設定するプロファイルを作成するとします。以下の例では、使用するワーカー数のみが異なる 2 つのプロファイルを作成する、想定可能なワークフローについて説明します。

  1. Cluster Profile Manager で、[Add][Custom][MATLAB Job Scheduler (MJS)] を選択します。これにより、MJS クラスターの新しいプロファイルの作成が指定されます。

    MJSProfile1 という新しいプロファイルが作成され、表示されます。

  2. リストで新しいプロファイル名をダブルクリックし、プロファイル名を MyMJSprofile1 に変更します。

  3. プロファイルのプロパティ値を設定できるよう、ツール ストリップの [Edit] をクリックします。

    [Description] フィールドに、次の図に示されている「MJS with 4 workers」というテキストを入力します。MJS を実行するマシンのホスト名と MJS の名前を入力します。既にネットワークで実行されている実際の MJS の情報を入力する場合は、該当するテキストを入力してください。ネットワークにおける MJS (旧称、ジョブ マネージャー) の名前と場所がわからない場合は、システム管理者にお問い合わせください。

  4. [Workers] セクションまで下にスクロールし、[Range of number of workers] に 2 成分のベクトル [4 4] を入力します。これは、このプロファイルを使用するジョブで、少なくとも 4 つの、かつ 4 つを超えない数のワーカーが必要であることを指定します。したがって、開始するのに 4 つのワーカーが使用可能になるまで待たなければならない場合でも、このプロファイルを使用するジョブはちょうど 4 つのワーカーで実行されます。

    ネットワークおよびクラスターの特定状況に応じて、他のプロパティを編集することができます。

  5. [Done] をクリックしてプロファイル設定を保存します。

違いの少ない類似のプロファイルを作成するには、以下のように既存のプロファイルを複製し、変更が必要な部分のみを修整します。

  1. Cluster Profile Manager のリストでプロファイル名 MyMJSprofile1 を右クリックし、[Duplicate] を選択します。

    これにより、元のプロファイル名に _Copy を加えた名前をもつ複製プロファイルが作成されます。

  2. 新しいプロファイル名をダブルクリックし、名前を編集して「MyMJSprofile2」にします。

  3. [Edit] をクリックすると、プロファイルのプロパティ値を変更できます。

  4. [Description] フィールドを編集して、そのテキストを「MJS with any workers」に変更します。

  5. [Workers] セクションまで下にスクロールし、次の図で強調表示されているように [Range of number of workers] フィールドで [4 4] を消去し、このフィールドを空白にします。

  6. [Done] をクリックしてプロファイル設定を保存し、プロパティ エディターを閉じます。

これで、ジョブの実行に必要なワーカー数のみが異なる 2 つのプロファイルができました。

ジョブを作成するときに、ジョブを実行するワーカー数を指定する方法として、いずれかのプロファイルをそのジョブに適用できます。

サポートされているさまざまな種類のスケジューラのプロファイル例は、MATLAB Distributed Computing Server™ のインストール手順にある「クラスターの構成」を参照してください。

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

Cluster Profile Manager にはプロファイルを検証する機能が備わっています。検証により、MATLAB クライアント セッションがクラスターにアクセスできると共に、クラスターがプロファイルの設定を用いてさまざまなタイプのジョブを実行できることが確認されます。

プロファイルを検証するには、以下の手順に従います。

  1. [ホーム] タブの [環境] セクションで、[並列][クラスター プロファイルの管理] をクリックして Cluster Profile Manager を開きます。

  2. Cluster Profile Manager で、テストするプロファイルの名前をクリックします。選択されている既定のプロファイルを変更せずに、プロファイルを強調表示できます。このため、検証対象として選択したプロファイルが既定のプロファイルである必要はありません。

  3. [Validate] をクリックします。

プロファイルの検証には 5 つの段階があります。

  1. クラスターに接続 (parcluster)

  2. プロファイルを使用してクラスターで独立ジョブを実行 (createJob)

  3. プロファイルを使用してクラスターで SPMD タイプの通信ジョブを実行

  4. プロファイルを使用してクラスターでプール タイプの通信ジョブを実行

  5. プロファイルを使用してクラスターで並列プール ジョブを実行

テストの実行中、Cluster Profile Manager によって進行状況が次のように表示されます。

    メモ:    既に並列プールが開いている場合、検証は失敗します。

テストが完了したら、[Show Details] をクリックしてテスト結果についての詳細を表示できます。この詳細には、すべてのエラー メッセージやデバッグ ログなど、問題を診断したり適切なネットワーク設定を決定するために役立つデータが含まれます。

[Validation Results] タブでは、現在の MATLAB セッションが閉じるまでテスト結果が利用できます。

クライアント コードでのクラスター プロファイルの適用

並列計算クラスター オブジェクト、ジョブ オブジェクトおよびタスク オブジェクトを作成・定義する MATLAB クライアントでは、これらのオブジェクトを作成する際にクラスター プロファイルを使用できます。

既定のクラスター プロファイルの選択

一部の機能では既定のプロファイルがサポートされており、プロファイルを指定しない場合は既定のプロファイルが自動的に適用されます。既定のプロファイルとして使用するプロファイルを指定する方法はいくつかあります。

  • [ホーム] タブの [環境] セクションで、[並列][既定の値を設定] をクリックすると、そこからすべてのプロファイルを利用できます。現在の既定のプロファイルが示されます。リスト内の任意のプロファイルを既定のプロファイルとして選択できます。

  • Cluster Profile Manager により、どれが現在既定のプロファイルであるかが示されます。リスト内の任意のプロファイルを選択して [Set as Default] をクリックできます。

  • 既定のプロファイルをプログラムによって取得または設定するには、関数 parallel.defaultClusterProfile を使用します。以下のコマンドのセットは、いずれも同じ内容を実行します。

    parallel.defaultClusterProfile('MyMJSprofile1')
    parpool

    または

    parpool('MyMJSprofile1')

クラスター オブジェクトの作成

関数 parcluster は、指定したプロファイルに従ってワークスペースにクラスター オブジェクトを作成します。プロファイルにより、特定のクラスターが識別され、プロパティ値が適用されます。以下に例を示します。

c = parcluster('myMJSprofile')

このコマンドは myMJSprofile というプロファイルの設定で定義されたクラスターを検出し、プロファイルの設定に基づいてクラスター オブジェクトのプロパティ値を設定します。MATLAB アプリケーション コードを変更しなくても、異なるプロパティを適用することでクラスターの選択を変更することができます。

ジョブおよびタスクの作成

クラスター オブジェクト、ジョブ オブジェクトおよびタスク オブジェクトのプロパティはプロファイルで定義できるため、アプリケーションで明示的に定義する必要はありません。このため、コードを変更せずに、任意のタイプのクラスターを含めることができます。たとえば、次のコードでは 1 つのプロファイルを使用してクラスター オブジェクト、ジョブ オブジェクトおよびタスク オブジェクトのプロパティを設定しています。

c = parcluster('myProfile1);
job1 = createJob(c); % Uses profile of cluster object c.
createTask(job1,@rand,1,{3}) % Uses profile of cluster object c.
この情報は役に立ちましたか?