在基于线程的环境中运行 MATLAB 函数
MATLAB® 和其他工具箱中的数百个函数可以在基于线程的环境中运行。您可以使用 backgroundPool
或 parpool("threads")
在基于线程的环境中运行代码。
要在后台运行函数,请使用
parfeval
和backgroundPool
。有关线程池的详细信息,请参阅Choose Between Thread-Based and Process-Based Environments (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 函数的过滤列表,请参阅函数列表(基于线程的环境)。
通常,图形、App 构建、外部语言接口、文件和文件夹和环境和设置中的功能不受支持。
MATLAB 和几个工具箱包括内置有线程支持的函数。要查看 MATLAB 和这些工具箱中具有线程支持的所有函数的列表,请使用下表中的链接。列表中带有警告指示标记的函数有特定于在线程中运行该函数的限制或用法说明。您可以在函数参考页的“扩展功能”部分中查看用法说明和限制。如需了解具有线程支持的各函数的更新,请参阅发行说明。
另请参阅
相关主题
- Run MATLAB Functions on a GPU (Parallel Computing Toolbox)