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

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

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

Optimization Toolbox での並列計算の使用

マルチコア プロセッサでの並列計算の使用方法

マルチコア プロセッサを使用している場合は、並列処理を使用すると速度が向上することがあります。Parallel Computing Toolbox™ ライセンスで、いくつかのワーカーの並列プールを設定できます。Parallel Computing Toolbox ソフトウェアの説明および並列ワーカーの最大数については、「Parallel Computing Toolbox のご利用の前に」を参照してください。

デュアルコア プロセッサがあり、並列計算を使用すると仮定します。

  • コマンド プロンプトに次のように入力します。

    parpool

    MATLAB® はマルチコア プロセッサを使用してワーカーのプールを起動します。既定ではないクラスター プロファイルが既に設定されている場合は、マルチコア (ローカル) コンピューティングを強制できます。

    parpool('local')

      メモ:   設定によっては、MATLAB は並列プールを自動的に起動できます。この機能を有効にするには、[ホーム]、[並列]、[並列設定] を選択し、[parfor などの並列キーワードが実行されると、並列プールを自動的に作成 (まだ存在していない場合)] をオンにします。

    • コマンド ラインを使用する場合は、以下を入力します。

      options = optimoptions('solvername','UseParallel','always');
    • 最適化アプリケーションの場合は、[オプション]、[近似された導関数]、[並列評価] を選択します。

options を使用して適用可能なソルバーを実行すると、そのソルバーは自動的に並列計算を使用します。

並列での最適化計算を停止するには、UseParallel'never' に設定するか、最適化アプリケーションを並列で計算しないよう設定します。すべての並列計算を停止するには、次のように入力します。

delete(gcp)

マルチプロセッサ ネットワークでの並列計算の使用

ネットワーク上に複数のプロセッサがある場合は、Parallel Computing Toolbox 関数と MATLAB Distributed Computing Server™ ソフトウェアを使用して並列計算を設定します。実行するステップを次に示します。

  1. システムが並列計算用に正しく設定されていることを確認します。システム管理者にチェックを依頼するか、Parallel Computing Toolbox ドキュメンテーションを参照してください。

    基本チェックを実行するには

    1. コマンド ラインに以下を入力します。

      parpool(prof)

      ここで、prof はクラスター プロファイルです。

    2. ワーカーは目的関数のファイルと、該当する場合は非線形制約関数のファイルにアクセスできなければなりません。確実にアクセスできるようにするには、次の 2 つの方法があります。

      1. parpool AttachedFiles 引数を使用してワーカーにファイルを分散する。たとえば、objfun.m が目的関数ファイルであり、constrfun.m が非線形制約関数ファイルの場合は、次のように入力します。

        parpool('AttachedFiles',{'objfun.m','constrfun.m'});

        ワーカーはファイルの独自のコピーにアクセスします。

      2. ファイルへのネットワーク ファイル パスを与える。network_file_path が目的関数または制約関数のファイルへのネットワーク パスである場合は、次のように入力します。

        pctRunOnAll('addpath network_file_path')

        ワーカーはネットワークを通じて関数ファイルにアクセスします。

    3. ファイルがすべてのワーカーのパス上にあるかどうかをチェックするには、次のように入力します。

      pctRunOnAll('which filename')

      ワーカーにファイルへのパスがない場合は、次のように出力されます。

      filename not found.
    • コマンド ラインを使用する場合は、以下を入力します。

      options = optimoptions('solvername','UseParallel','always');
    • 最適化アプリケーションの場合は、[オプション]、[近似された導関数]、[並列評価] を選択します。

並列計算環境を設定した後は、適用可能なソルバーは、options を使用して呼び出したときにはいつでも自動的に並列計算を使用します。

並列での最適化計算を停止するには、UseParallel'never' に設定するか、最適化アプリケーションを並列で計算しないよう設定します。すべての並列計算を停止するには、次のように入力します。

delete(gcp)

並列計算のテスト

問題が正しく並列処理されるかをテストするには以下を行います。

  1. 並列計算せずに問題を解き、その問題が適切に連続して実行されているかを確認します。次のテストを行う前に、正しく処理されているか (正しい結果が得られるか) を確認します。

  2. UseParallel'always' に設定し、delete(gcp) を使用して並列プールが存在しないようにします。[ホーム]、[並列]、[並列設定][parfor などの並列キーワードが実行されると、並列プールを自動的に作成 (まだ存在していない場合)] をオフにして、MATLAB が並列プールを作成しないようにします。for ループとは逆の順序のループの反復を使って parfor で連続的に問題を実行します。次のテストを行う前に、正しく処理されているか (正しい結果が得られるか) を確認します。

  3. UseParallel'always' に設定し、parpool を使用して並列プールを作成します。マルチコア プロセッサまたはネットワーク設定をもたない場合、高速化できません。このテストは計算の正確性を検証するためのものです。

options 構造体を使用してソルバーを呼び出し、並列機能のテストや実行を行うようにしてください。

この情報は役に立ちましたか?