主要内容

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

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

并行计算工具箱™には,ローカルデスクトップマシンで並列コードを実行するためのクラスタープロファイル当地的が事前に設定されています。

MATLAB®[ホーム]タブの[並列]メニューを使用して並列動作を制御します。

[並列]メニューを使用して次を設定できます。

  • ネットワークまたはAmazon EC2で実行されている他のクラスターの検出。[並列][クラスターの検出)をクリックします。詳細については,クラスターの検出を参照してください。

  • クラスタープロファイルマネージャーを使用したクラスタープロファイルの作成と管理。[並列][クラスターの作成と管理)をクリックします。詳細については,クラスタープロファイルの作成と管理を参照してください。

クラスタープロファイルの作成と管理

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

クラスタープロファイルマネージャーを使用してクラスタープロファイルを管理します。クラスタープロファイルマネージャーを開くには,[ホーム]タブの[環境]セクションで,[並列][クラスターの作成と管理)を選択します。

クラスタープロファイルマネージャーを使用して,次のことができます。

クラスターの検出

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

  • [ホーム]タブの[環境]セクションで,[並列][クラスターの検出)を選択する

  • クラスタープロファイルマネージャーで,[クラスターの検出)を選択する

これによって[クラスターの検出]ダイアログボックスが開き,そこでMATLAB并行服务器™クラスターを検索できます。

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

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

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

クラスター検出はMATLABジョブスケジューラ,微软®窗户®高性能计算服务器,Amazon EC2クラウドクラスターでのみサポートされています。スケジューラをMATLAB并行服务器と統合する必要がある場合,またはサポートされている他のスケジューラ用のクラスタープロファイルを作成する必要がある場合は,MATLABParallel服务器入門(MATLAB并行服务器)を参照してください。クラスターの検出には次の要件が適用されます。

  • MATLABジョブスケジューラ——MATLABジョブスケジューラクラスターでは,2通りの異なる検出方法がサポートされます。

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

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

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

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

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

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

クラウドクラスターの作成

クラスタープロファイルマネージャーから直接に,Amazon AWSクラウドサービスでクラスターを作成できます。クラスタープロファイルマネージャーで,[クラウドクラスターの作成)を選択します。MathWorks®アカウントでサインアップし,必要な手順を完了します。次に,クラウドクラスターを作成して,マシンの数,マシンごとのワーカー数などのパラメーターを設定できます。使用できる各パラメーターの詳細については,创建云集群を参照してください。すべての手順を完了すると、MATLAB により新しいクラスター プロファイルが作成されます。そのプロパティをクラスター プロファイル マネージャーから変更できます。

MathWorks云中心でライセンスの管理,クラウド接続のテスト,クラウドクラスターの管理を行うには,クラスタープロファイルマネージャーのツールストリップの[クラウド]セクションに移動します。

クラスタープロファイルの追加と変更

クラスタープロファイルマネージャーを使用して,MATLABジョブスケジューラ用またはサードパーティ製スケジューラ用のクラスタープロファイルを追加できます。MATLABで使用するためにクラスターをセットアップする必要がある場合は,MATLABParallel服务器入門(MATLAB并行服务器)を参照してください。

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

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

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

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

  2. リスト内の新しいプロファイル名をダブルクリックし,プロファイル名をMyMJSProfile1に変更します。

  3. ツールストリップの[編集]を選択します。これでプロファイルのプロパティ値を設定できます。

    [説明]フィールドに,次の図に示されているようにテキストMJS有4个工人を入力します。MATLABジョブ スケジューラを実行するマシンのホスト名と、MATLAB ジョブ スケジューラの名前を入力します。既にネットワークで実行されている実際の MATLAB ジョブ スケジューラの情報を入力する場合は、その実際の名前を入力します。MATLAB ジョブ スケジューラの名前とネットワーク上の場所がわからない場合は、システム管理者に問い合わせてください。

    メモ

    MATLABジョブスケジューラが,mjs_defファイルに定義されている既定とは異なるBASE_PORT設定を使用している場合,クラスタープロファイルの宿主プロパティにこのBASE_PORT番号を追加しなければなりません。たとえば,MJS-Host: 40000です。

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

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

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

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

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

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

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

  3. [編集]を選択して,プロファイルのプロパティ値を変更可能にします。

  4. [説明]フィールドを編集して,そのテキストをMJS与任何工人に変更します。

  5. [ワーカー]セクションまで下にスクロールし,[ジョブを実行するワーカーの数の範囲]フィールドの(4 - 4)を消去して,このフィールドを空白にします。

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

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

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

サポートされているさまざまな種類のスケジューラのプロファイル例は,MATLAB并行服务器のインストール手順にあるクラスターの構成(MATLAB并行服务器)を参照してください。

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

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

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

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

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

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

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

云中心の個人用クラスターのプロファイルはエクスポートできないことに注意してください。

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

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

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

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

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

MATLAB编译器用プロファイルのエクスポート

エクスポートしたプロファイルをMATLAB编译器™MATLAB编译器SDK™で使用して,コンパイルされたアプリケーションをクラスターで実行するためのクラスターセットアップ情報を特定することができます。たとえば,関数setmcruserdata(MATLAB编译器)では,エクスポートしたプロファイルファイル名を使用して,キーParallelProfileの値を設定できます。並列アプリケーションの配布の詳細と例については,実行時に并行计算工具箱プロファイルを渡す(MATLAB编译器)および在已部署应用程序中使用并行计算工具箱(MATLAB编译器SDK)を参照してください。

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

ワーカー数とクラスター設定の編集

クラスタープロファイルの作成後に,ワーカー数と他のプロファイルプロパティを指定できます。

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

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

    メモ

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

MATLABからのクラスターの使用

クラスター上でparpool批处理などの並列言語関数を実行するには,クラスタープロファイルを既定として設定するか,クラスターオブジェクトを使用します。

既定のクラスターの指定

クラスタープロファイルを既定として設定するには,次の方法のいずれかを使用します。

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

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

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

    parallel.defaultClusterProfile (“MyMJSProfile1”) parpool

    または

    parpool (“MyMJSProfile1”

プログラムによるクラスターの指定(parcluster

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

c = parcluster (“MyMJSProfile1”

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

参考

||||(MATLAB编译器)|||

関連する例

詳細

外部のWebサイト