ドキュメンテーション

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

Statistics and Machine Learning Toolbox を使用した並列計算の基本操作

メモ

この章で説明されている並列計算を使用するには、Parallel Computing Toolbox™ ライセンスをもっていなければなりません。

並列統計機能とは

Statistics and Machine Learning Toolbox™ の関数はいずれも、parforspmd など Parallel Computing Toolbox の構成において使用できます。ただし、対話型表示を使用する関数など、並列に使用することでその機能を失う関数もあります。特に、表示および対話型の使用は、ワーカー上では有効ではありません (並列計算での用語を参照)。

さらに、次の関数は内部で並列計算を使用できるよう拡張されています。これらの関数は、parfor を内部的に使用して計算を並列化します。

サポート ベクター マシンや他の分類器向けのマルチクラス モデルを近似する以下の関数も、内部で並列計算を使用できるよう拡張されています。

以下の関数は、ハイパーパラメーターの最適化を並列的に実行します。

この章では、これらの強化された関数を並列で使用する最も簡単な方法を説明します。再現性、入れ子形式の parfor ループの問題などを含む詳細は、この章の別の節を参照してください。

コマンド ラインでの並列統計計算の詳細を表示するには、次のように入力します。

help parallelstats

並列計算の方法

関数を並列で計算させるには、次の手順を実行します。

並列環境の設定

統計計算を並列で実行するには、まず、並列環境を設定します。

メモ

並列環境の設定には、数秒かかる場合があります。

マルチコア マシンでは、MATLAB® コマンド ラインで次のように入力します。

parpool(n)

n は、使用するワーカーの数です。

UseParallel オプションを true に設定する

関数 statset を使用してオプション構造体を作成します。並列実行するには、UseParallel オプションを true に設定します。

paroptions = statset('UseParallel',true);

オプション構造体を使用して関数を呼び出す

オプション構造体を使用する構文で関数を呼び出します。次に例を示します。

% Run crossval in parallel
cvMse = crossval('mse',x,y,'predfun',regf,'Options',paroptions);

% Run bootstrp in parallel
sts = bootstrp(100,@(x)[mean(x) std(x)],y,'Options',paroptions);

% Run TreeBagger in parallel
b = TreeBagger(50,meas,spec,'OOBPred','on','Options',paroptions);

より完全な並列統計関数の例については、回帰 TreeBagger ワークフローに対する並列処理の使用並列計算を使用する jackknife の実装並列計算を使用する交差検証の実装および並列計算を使用するブートストラップの実装を参照してください。

並列計算が終了したら、並列環境を終了します。

delete mypool

ヒント

すぐにまた並列で計算が行われる場合に時間を節約するには、pool を開いたままにします。