Main Content

スレッドベースの環境での MATLAB 関数の実行

MATLAB® および他のツールボックスの数百もの関数はスレッドベースの環境で実行できます。backgroundPool または parpool("threads") を使用してコードをスレッドベースの環境で実行できます。

バックグラウンドでの関数の実行

関数がスレッドベースの環境でサポートされている場合は、parfevalbackgroundPool を使用してその関数をバックグラウンドで実行できます。

関数 rand を使用して、100100 列の乱数の行列をバックグラウンドで生成します。

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 を使用するコードは自動的にスケール アップし、より多くの使用可能なコアを使います。

使用できるコア数の詳細については、BackgroundPoolNumWorkers プロパティを参照してください。

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)
Statistics and Machine Learning Toolbox™スレッドでサポートされている関数 (Statistics and Machine Learning Toolbox)

参考

|

関連するトピック