ドキュメンテーション

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

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

Cluster Profile Manager

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

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

[並列] メニューおよびクラスター プロファイルの使用

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

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

  • MATLAB Parallel Cloud™: Amazon EC2 で実行する MATLAB Parallel Cloud クラスター用。可用性に関する更新情報は、こちらで確認できます。MATLAB Parallel Cloudparpool ベースの対話型の並列処理をサポートします。MATLAB Parallel Cloudを参照してください。

以下のタスクでは、MATLAB の [ホーム] タブにある [並列] メニューを使用します。

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

  • MATLAB Parallel Cloud への接続に問題がある場合は、[並列][クラウド接続のテスト] を選択する。

  • ライセンス使用状況を表示するには、[並列][ライセンス使用状況の表示] を選択する。あるいは https://www.mathworks.com/licensecenter を参照して、ライセンス使用状況を表示する。

  • 外部 Web ブラウザーで MATLAB から MathWorks Cloud Center を開く場合は、[並列][クラウド センター Web アプリケーション] を選択する。Cloud Center の詳細については、https://www.mathworks.com/help/cloudcenter/を参照してください。

クラスターの検出

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 レコード (MATLAB Distributed Computing Server)を参照してください。

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

  • Amazon EC2 — クラスター検出機能では、クライアントと mathworks.com で実行されている Cloud Center の 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 の値を設定できます。並列アプリケーションの配布の詳細と例については、実行時に Parallel Computing Toolbox プロファイルを渡す (MATLAB Compiler)およびUse Parallel Computing Toolbox in Deployed Applications (MATLAB Compiler SDK)を参照してください。

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

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

クラスター プロファイル マネージャーをはじめて開いたときには、localMATLAB Parallel Cloud の 2 つのプロファイルがリストされます。

以下のようなプロファイル プロパティを指定できます。

  • NumWorkers: プールを開始するワーカーの数。実際のプールのサイズはライセンス、クラスターのサイズ、クラスターのプロファイル設定により制限されることがあります。プール サイズとクラスターの選択を参照してください。

  • NumThreads: 各ワーカー上で使用する計算スレッドの数。ワーカーがマルチスレッド モードで実行されてクラスター上のすべてのコアを使用できるように、NumThreads を変更することが可能です。これにより、ワーカー数 NumWorkers を増加させずに各ワーカーで計算スレッド数 NumThreads を増やすことができます。より多くのコアが使用できる場合は、NumThreads を増加して、組み込み並列処理を最大限に活用します。この並列処理は、基となる MATLAB ライブラリの多数が持つマルチスレッド特性によって提供されます。詳細については、Run MATLAB on multicore and multiprocessor machines を参照してください。

    メモ

    1 台のマシン上のすべてのワーカーで、物理コアの数を超えてスレッド数を増やさないでください。つまり、必ず NumWorkers x NumThreads をマシンの物理コア数以下にしてください。そうしない場合、パフォーマンスが低下することがあります。

  • MaxNumMachines:MATLAB Parallel Cloud が使用できるマシンの最大数。より多くのワーカーが必要な場合、自動的に最大値までのマシンがクラスターに追加されます。MATLAB Parallel Cloudを参照してください。

    クラスターのすべてのプロパティの表示や編集をプログラムで行うには、parallel.cluster.Cloud オブジェクトを使用します。詳細については、parallel.Clusterの Cloud プロパティを参照してください。

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

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 のインストール手順にあるクラスターの構成 (MATLAB Distributed Computing Server)を参照してください。

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

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

プロファイルの検証に際して、検証段階のサブセットの実行を選択し、使用するワーカーの数を指定することができます。場合によっては、こうすることでより適切な、あるいはより高速の検証につながることがあります。

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

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

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

  3. 実行する検証段階を選択します。

  4. スピン ホイールを使用してワーカー数を選択します。

  5. [検証] を選択します。

すべての段階を選択した場合、プロファイルの検証には 5 つのステップが含まれます。

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

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

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

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

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

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

Number of workers to use の下のペインで対応行を選択することで、異なる段階の詳細を表示することができます。

メモ:

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

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

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

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

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

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

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

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

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

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

    parallel.defaultClusterProfile('MyMJSProfile1')
    parpool

    または

    parpool('MyMJSProfile1')

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

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

c = parcluster('MyMJSProfile1')

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

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

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

c = parcluster('MyMJSProfile1');
job1 = createJob(c); % Uses profile of cluster object c.
createTask(job1,@rand,1,{3}) % Uses profile of cluster object c.

参考

| | | | | |

関連する例

詳細

外部の Web サイト