如何在MATLAB中运行并行函数?

时间:2017-08-11 17:09:54

标签: matlab

我有两个函数可以在while循环中继续运行

其中一个是“getdata”,另一个是“data_analysis”

data_analysis需要几秒钟,getdata需要几秒钟

我需要data_analysis使用最新的可用数据,因此我希望get_ata在data_analysis运行时继续运行。

我有并行计算工具箱2017a

1 个答案:

答案 0 :(得分:0)

您希望不断运行getdata,并且只要getdata的实例完成,您就想并行运行data_analysis,对吗?

然后,您需要在while循环中运行getdata,并调用data_analysis以在并行池中运行。以下代码应该这样做:

p = gcp(); % builds a parallel pool
while true
    getdata(); % continuously runs the getdata function
    f = parfeval(p, @data_analysis, numOuts, args); % runs the data_analysis function
                                                % in the parallel pool
end

numOut是data_analysis提供的输出数量 args是传递给data_analysis的参数。

正如Edric所说:在某些时候,您还需要在fetchOutputs上致电f来检索结果。

如果data_analysis没有返回任何内容,则行parfeval(p, @data_analysis, 0, args);就足够了。

免责声明:我目前无法运行matlab,所以我还没有测试过。