在基于线程的环境中运行 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);

在线程池中运行函数

        如果基于线程的环境支持某个函数,并且您有 Parallel Computing Toolbox™,您可以在线程池中运行该函数。

parpool("threads");
parfor i = 1:100
    A{i} = rand(100);
end

自动扩展

        ​如果有 Parallel Computing Toolbox,则使用 backgroundPool 的代码会自动扩展以使用更多可用核。有关可用核数量的信息,请参阅 BackgroundPool 的 NumWorkers 属性。使用 Parallel Computing Toolbox 时,通过在后台同时运行多个函数可以加速以下代码。

for i = 1:100
    f(i) = parfeval(backgroundPool,@rand,1,100);
end

检查具有线程支持的函数

        如果 MATLAB 函数具有线程支持,可以在其函数页上查阅其他线程使用信息。可以参考函数页末尾“扩展功能”部分中的“基于线程的环境”。

提示

        通常,图形、App 构建、外部语言接口、文件和文件夹和环境和设置中的功能不受支持。

        MATLAB 和几个工具箱包括内置有线程支持的函数。要查看 MATLAB 和这些工具箱中具有线程支持的所有函数的列表,请使用下表中的链接。列表中带有警告指示标记的函数有特定于在线程中运行该函数的限制或用法说明。您可以在函数参考页的“扩展功能”部分中查看用法说明和限制。如需了解具有线程支持的各函数的更新,请参阅发行说明。

乘积具有线程支持的函数列表
MATLAB具有线程支持的函数
Image Processing Toolbox™具有线程支持的函数 (Image Processing Toolbox)
Signal Processing Toolbox™具有线程支持的函数 (Signal Processing Toolbox)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值