欢迎光临散文网 会员登陆 & 注册

【MATLAB】并发模式下子函数判断并发状态的问题

2021-12-10 15:12 作者:-何其-  | 我要投稿

背景

    有个项目生产,需要采用parfor来提高运行速度,函数使用方式如下:

function 函数A()

parfor iii = 1 : 1000

      函数Fcn(,,,,,,)  % 

end

end

    需要在"函数Fcn"中执行某个操作,需要判断是否处于并发状态

异常描述

  在"函数Fcn"中采用了gcp('nocreate')来判断程序是否处于并发状态,采用for循环替换parfor测试的时候(处于并发模式下),"函数Fcn"可以有效判断当前处于并发状态;

  但当使用parfor时,则"函数Fcn"一直按不并发来处理

解决方案

  1. 在parfor的函数结构中, 仅能在“ 函数A”中 gcp('nocreate')起作用;在"函数Fcn"则无法判断是否处于并发状态,该句柄无效;

  2. 只能在"函数Fcn"增加字符开关,由“ 函数A”给"函数Fcn"传递某个变量,让"函数Fcn"来判断当前是否处于并发状态。

  3. 通过增加字符开关的方式,测试通过。



【MATLAB】并发模式下子函数判断并发状态的问题的评论 (共 条)

分享到微博请遵守国家法律