ドキュメンテーション

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

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

Cluster Profile Manager

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

クラスター プロファイルの作成、編集、インポートを行うために、クラスター プロファイル マネージャーを使用できます。クラスター プロファイル マネージャーを開くには、[ホーム] タブの [環境] セクションで、[並列][クラスター プロファイルの管理] をクリックします。

クラスター プロファイルの使用

Parallel Computing Toolbox™ には、次の 2 つのクラスター プロファイルが事前に設定されています。

  • local: ローカル デスクトップ マシンでの実行用。

  • MATLABParallel Computing Toolbox: Amazon EC2 で実行されている MATLAB Parallel Cloud クラスター用。この製品は、最初は米国とカナダでのみ提供されます。提供に関する更新情報は、こちらで確認できます。

    MATLAB Parallel Cloud は、初期状態で対話型 parpool ベースのパラレル化をサポートします。

    [並列][クラスター検出] ユーザー インターフェイスを使用して、ネットワークまたは Amazon EC2 で実行されている他のクラスターを検出できます。

    MATLAB Parallel Cloud への接続に問題がある場合は、[並列][クラウド接続のテスト] (上のスクリーン ショットを参照) をクリックしてください。

    MATLAB Parallel Cloud の利用状況レポートをダウンロードするには、ここをクリックしてください。

クラスターの検出

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

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

  • クラスター プロファイル マネージャーで、[クラスターの検出] をクリックします。

これによって [クラスターの検出] ダイアログ ボックスが開かれ、そこで MATLAB Distributed Computing Server™ クラスターを検索できます。

[ネットワーク上] を選択すると、新しいウィンドウが表示されます。このオプションは、クラスターで MATLAB ジョブ スケジューラ (MJS) または Microsoft Windows HPC server を使用している場合に選択します。クラスターが検出されると、選択肢のリストに挿入されます。リストされたクラスターのいずれかのプロファイルが既にある場合は、そのプロファイル名がリストに含められます。検出されたクラスターの 1 つに新しいプロファイルを作成する場合は、使用するクラスターの名前を選択し、[次へ] をクリックします。続いて開かれるダイアログ ボックスで、この新しいプロファイルを既定とするかどうかを選択できます。

[Amazon EC2 上] を選択した場合は、Amazon EC2 で実行されているクラスターを検索します。これらのクラスターにアクセスするには、MathWorks アカウント ログイン情報を指定しなければなりません。

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

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

  • MJS — MJS クラスターでは、2 つの異なる検出方法がサポートされます。

    • マルチキャスト: クラスター検出機能では、クライアントのマルチキャスト ネットワーク プロトコルを使用して MJS が実行されているヘッド ノードを検索します。これを実行するには、マルチキャスト ネットワーク プロトコルが有効になっていて、MJS ヘッド ノード (スケジューラが実行されている場所) とクライアント マシンを接続するネットワーク上で動作している必要があります。この検出形式は、クライアントのローカル サブネットに制限されている場合があるため、ネットワークの他の場所でも常に MJS を検出できるとは限りません。

    • DNS SRV: DNS サービス レコードでクラスターを検索する代替の検出手法です。

      ドメイン ネーム システム (DNS) は、インターネット上またはプライベート ネットワーク内のいずれかで IP アドレスを使用してホスト名を識別する標準的な方法です。DNS を使用すると、ネットワーク全体にブロードキャストするのではなく、特定のホストを識別することで MJS クラスターを検出できます。

      DNS サービス (SRV) レコードは、検出するクラスターに関連するサービスのホストとポートの場所を定義します。システム管理者が、組織の DNS インフラストラクチャ内に DNS SRV レコードを作成します。必要なレコードと検証情報については、「DNS SRV レコード」を参照してください。

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

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

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

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

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

  1. クラスター プロファイル マネージャーで、エクスポートするプロファイルを選択 (強調表示) します。

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

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

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

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

  1. クラスター プロファイル マネージャーで、[インポート] をクリックします。

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

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

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

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

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

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

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

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

次の例では、クラスター プロファイル マネージャーを使用してプロファイルの作成と変更を行う方法について説明します。

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

  1. クラスター プロファイル マネージャーで、[追加][カスタム][MATLAB ジョブ スケジューラ (MJS)] を選択します。これにより、MJS クラスターの新しいプロファイルの作成が指定されます。

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

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

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

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

      メモ   MJS が、mdce_def ファイルに定義されているように既定でない BASE_PORT 設定を使用している場合、クラスター プロファイルの Host プロパティに、この BASE_PORT 番号を追加しなければなりません。たとえば、MJS-Host:40000 です。

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

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

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

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

  1. クラスター プロファイル マネージャーのリストでプロファイル名 MyMJSprofile1 を右クリックし、[複製] を選択します。

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

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

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

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

  5. [ワーカー] セクションまで下にスクロールし、次の図で強調表示されているように [ジョブを実行するワーカーの数の範囲] フィールドで [4 4] を消去し、このフィールドを空白にします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

テストの実行中、クラスター プロファイル マネージャーによって進行状況が次のように表示されます。

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

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

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

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

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

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

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

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

  • クラスター プロファイル マネージャーにより、どれが既定のプロファイルであるかが示されます。リスト内の任意のプロファイルを選択して [既定に設定] をクリックできます。

  • 既定のプロファイルをプログラムによって取得または設定するには、関数 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.
この情報は役に立ちましたか?