自動並列サポートを使用した MATLAB 関数の実行
いくつかの MATLAB および Simulink 製品では、追加のコーディング不要で並列計算リソースを活用できる関数および機能が増えています。フラグまたは基本設定を設定するだけでこのサポートを有効にすることができます。
デスクトップでこの機能を利用するには、Parallel Computing Toolbox が必要です。ローカル ワーカーを使用して計算を並列で実行し、大規模な計算を高速化します。並列計算をコンピューター クラスターなどのより大きなリソースにスケールするには、MATLAB Parallel Server クラスターも必要です。
その他多くの関数は、並列を使用するオプションを設定すると自動的に並列実行されます。
並列が有効な関数を実行すると、MATLAB® は自動的にワーカーの並列プールを開きます。MATLAB は利用可能な複数のワーカーで計算を実行します。
自動並列サポートは既定のクラスター プロファイルを使用してワーカーの並列プールを起動します。並列設定を変更していない場合、既定のプロファイルは Processes です。並列設定を使用して、クラスターへのスケールアップやプールの自動作成などの並列動作を制御します。
関数を並列実行する方法の選択
MATLAB と Simulink® の自動並列サポートがあるいくつかの関数では、名前と値の引数 UseParallel を使用して並列実行を有効にします。名前と値の引数 UseParallel は、"off"、"auto"、"on" の値を受け入れます。目的に応じて UseParallel 引数の適切な値を選択できます。
| 目的 | 値 | 関数の動作 |
|---|---|---|
デバッグを目的としているか、並列化によるメリットが得られないタスクであるため、コードを逐次実行する。 |
| MATLAB クライアントで逐次実行されます。 |
Parallel Computing Toolbox™ がある場合は自動的に並列プールを使用し、Parallel Computing Toolbox がない場合でも実行できる、移植可能な並列コードを記述する。 |
| 並列プールが開いているか MATLAB で自動的に作成できる場合は、自動的に並列プールが使用されます。それ以外の場合は、MATLAB クライアントでの逐次実行に戻ります。 |
常に並列プールで実行する。 |
| 並列プールが開いているか MATLAB で自動的に作成できる場合は、自動的に並列プールが使用されます。それ以外の場合は、エラーがスローされます。 |
自動並列処理のサポートを見つける
関数のページの「拡張機能」で情報を見つけます。
次のリンクで、すべての MathWorks® 製品から、サポートされる機能を閲覧できます。すべての関数リスト (自動並列サポート)。あるいは、製品別にフィルター処理できます。[ヘルプ] バーの [関数] タブをクリックして製品を選択し、[自動並列サポート] チェック ボックスをオンにします。たとえば、Statistics and Machine Learning Toolbox™ で自動並列サポートのある関数のフィルター処理されたリストについては、関数リスト (自動並列サポート) (Statistics and Machine Learning Toolbox) を参照してください。選択した製品の関数に自動並列処理サポートがない場合、[自動並列サポート] フィルターは使用できません。
目的の関数が自動並列処理サポートを含んでいない場合は、代替方法がいくつかあります。
GPU がある場合、多くの MATLAB 関数は自動的に GPU で実行されます。GPU での MATLAB 関数の実行を参照してください。
for ループ内のすべての MATLAB コードは並列 for ループにすることができます (反復が独立している場合)。
parforを参照してください。処理を高速化する他の方法、またはビッグ データの計算をスケール アップする方法を探している場合は、並列計算の解決策の選択を参照してください。