主要内容

backgroundPool

在后台运行代码的环境

    描述

    使用后台池在后台运行代码。当您在后台运行代码时,您可以在MATLAB中运行其他代码®会话在同一时间。

    创建

    描述

    例子

    p= backgroundPool返回后台池。

    属性

    全部展开

    此属性是只读的。

    队列的FevalFuture对象在后台池上运行,指定为FevalQueue对象。您可以使用此属性检查并行池的挂起和运行的未来变量。要创建未来变量,请使用parfeval(并行计算工具箱)而且parfevalOnAll(并行计算工具箱).有关未来变量的更多信息,请参见未来

    数据类型:FevalQueue

    此属性是只读的。

    工人数量,指定为正整数标量。

    • 如果没有并行计算工具箱™,则值为1

    • 如果你有并行计算工具箱,NumWorkers等于物理核的数量。例如,如果在具有四个物理核心的机器上运行MATLAB,则值为4.您可以使用maxNumCompThreads第一次使用前backgroundPool

    此属性是只读的。

    标志,指示后台池是否繁忙,指定为真正的.如果有未完成的工作需要池完成,则该池是忙碌的。

    对象的功能

    parfeval 在后台运行函数
    parfevalOnAll(并行计算工具箱) 在并行池中的所有worker上异步执行函数

    例子

    全部折叠

    这个例子展示了如何在后台使用parfeval而且backgroundPool.当您在后台运行一个函数时,您可以同时运行其他MATLAB®代码。

    使用parfeval运行函数魔法(3)并检索一个输出。指定backgroundPool作为在后台运行函数的第一个参数。当你使用parfeval,则创建一个未来对象。

    f = parfeval(backgroundPool,@magic,1,3);

    要从后台检索输出,请使用fetchOutputs.的执行后,MATLAB返回输出魔法就完成了。

    fetchOutputs (f)
    ans =3×38 1 6 3 5 7 4 9 2

    这个例子展示了如何在后台从Amazon®S3存储桶读取映像。

    使用映像数据存储连接到存储桶。有关如何设置对S3桶的访问的详细信息,请参见使用远程数据

    取代“s3: / / MyBucket /数据”指向S3 bucket中的数据文件夹的URL。

    ds = imageDatastore(“s3: / / MyBucket /数据”);

    使用parfeval从S3桶中读取数据。指定backgroundPool作为在后台运行函数的第一个参数。然后,从数据存储中读取所有数据。

    f = parfeval(backgroundPool,@readall,1,ds);

    在从S3桶下载数据的同时,可以运行其他函数。要从背景中检索所有图像,请使用fetchOutputs.的执行后,MATLAB返回输出readall就完成了。

    T = fetchOutputs(f);imout = imtile(T);imshow (imout)

    限制

    • 使用parpool(“线程”)而且backgroundPool它们都是利用相同资源的基于线程的池。一个池上的活动可能会阻塞另一个池上的活动,反之亦然。此外,持久数据和随机数生成流状态在这些池之间共享。有关控制随机数流的详细信息,请参见控制工人上的随机数流(并行计算工具箱)

    版本历史

    R2021b中引入