このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
スレッドベースの環境での MATLAB 関数の実行
MATLAB® および他のツールボックスの数百もの関数はスレッドベースの環境で実行できます。backgroundPool
または parpool("threads")
を使用してコードをスレッドベースの環境で実行できます。
関数をバックグラウンドで実行するには、
parfeval
とbackgroundPool
を使用します。スレッド プールの詳細については、スレッドベースの環境またはプロセスベースの環境の選択 (Parallel Computing Toolbox)を参照してください。
バックグラウンドでの関数の実行
関数がスレッドベースの環境でサポートされている場合は、parfeval
と backgroundPool
を使用してその関数をバックグラウンドで実行できます。
関数 rand
を使用して、100
行 100
列の乱数の行列をバックグラウンドで生成します。
f = parfeval(backgroundPool,@rand,1,100);
バックグラウンドでのコード実行の詳細については、backgroundPool
を参照してください。
スレッド プールでの関数の実行
関数がスレッドベースの環境でサポートされている場合は、Parallel Computing Toolbox™ があればその関数をスレッド プールで実行できます。
parpool("threads"); parfor i = 1:100 A{i} = rand(100); end
スレッド プールの詳細については、ThreadPool
(Parallel Computing Toolbox) を参照してください。
自動的なスケール アップ
Parallel Computing Toolbox がある場合、backgroundPool
を使用するコードは自動的にスケール アップし、より多くの使用可能なコアを使います。
使用できるコア数の詳細については、BackgroundPool
の NumWorkers
プロパティを参照してください。
Parallel Computing Toolbox を使用している場合に複数の関数をバックグラウンドで同時に実行すると、次のコードを高速化できます。
for i = 1:100 f(i) = parfeval(backgroundPool,@rand,1,100); end
スレッドでサポートされている関数の確認
MATLAB 関数がスレッドでサポートされている場合は、その関数のページでスレッドの使用に関する追加情報を参照できます。関数ページの最後にある「拡張機能」節の「スレッドベースの環境」を参照してください。
ヒント
スレッドでサポートされている MATLAB 関数の一覧 (フィルター処理済み) については、関数リスト (スレッドベースの環境) を参照してください。
一般に、グラフィックス、アプリの作成、外部言語インターフェイス、ファイルとフォルダー、および環境と設定の機能はサポートされません。
MATLAB およびいくつかのツールボックスには、組み込みのスレッド サポートをもつ関数が含まれています。MATLAB およびこれらのツールボックスに含まれる、スレッド サポートをもつすべての関数のリストを表示するには、次の表のリンクを使用してください。リスト内にある警告インジケーター付きの関数には、関数をスレッド上で実行する場合に固有の制限または使用に関するメモがあります。使用に関するメモと制限は、関数のリファレンス ページの「拡張機能」の節で確認できます。スレッドでサポートされている個々の関数の更新の詳細については、リリース ノートを参照してください。
製品 | スレッドでサポートされている関数の一覧 |
---|---|
MATLAB | スレッドでサポートされている関数 |
Image Processing Toolbox™ | スレッドでサポートされている関数 (Image Processing Toolbox) |
Signal Processing Toolbox™ | スレッドでサポートされている関数 (Signal Processing Toolbox) |
参考
関連するトピック
- GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)