Statistics and Machine Learning Toolbox を使用した並列計算の基本操作
メモ
並列計算を使用するには、Parallel Computing Toolbox™ のライセンスをもっていなければなりません。
Statistics and Machine Learning Toolbox の並列機能
Statistics and Machine Learning Toolbox™ の関数はいずれも、parfor
(Parallel Computing Toolbox) や spmd
(Parallel Computing Toolbox) など Parallel Computing Toolbox の構成において使用できます。ただし、対話型表示を使用する関数など、並列に使用することでその機能を失う関数もあります。特に、表示および対話型の使用は、ワーカー上では有効ではありません (並列計算での用語を参照)。
さらに、Statistics and Machine Learning Toolbox の一部の関数は内部で並列計算を使用できるよう拡張されています。たとえば、一部のモデル近似関数は、ハイパーパラメーターの最適化を並列的に実行します。並列計算をサポートする Statistics and Machine Learning Toolbox の関数の完全な一覧については、関数リスト (自動並列サポート) を参照してください。各関数の使用上の注意および制限については、関数リファレンス ページの「自動並列サポート」の節を参照してください。
並列計算の方法
この節では、強化された関数を並列で使用する最も簡単な方法を説明します。再現性、入れ子形式の parfor
ループの問題などを含む詳細については、統計計算の速度の向上の別のトピックを参照してください。
コマンド ラインでの並列統計計算の詳細を表示するには、次のように入力します。
help parallelstats
関数を並列で計算させるには、次の手順を実行します。
並列環境の設定
統計計算を並列で実行するには、まず、並列環境を設定します。
メモ
並列環境の設定には、数秒かかる場合があります。
マルチコア マシンでは、MATLAB® コマンド ラインで次のように入力します。
parpool(n)
n
は、使用するワーカーの数です。
MATLAB Online™ で並列コードを実行することもできます。詳細については、MATLAB Online における Cloud Center クラスターとの Parallel Computing Toolbox の使用 (Parallel Computing Toolbox)を参照してください。
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 を開いたままにします。