主要内容

确保透明度议案- 或者SPMD.陈述

一个人的身体议案- 或者SPMD.块必须是透明。透明度意味着必须在代码的文本中可见对变量的所有引用。

在以下示例中,变量X没有转移给工人。只有字符向量'X'被传递到求解, 和X在循环或块体中作为输入变量不可见。结果,Matlab®在运行时发出错误。

x = 5;议案II = 1:4 eval('X');结尾
x = 5;SPMD.eval('X');结尾

同样,您无法通过执行来清除工作空间的变量清晰的在A内议案SPMD.陈述:

议案II = 1:4 <陈述......>清除('X'%无法清除:透明度违规<陈述......>结尾
SPMD.;清除('X');结尾

或者,您可以在不再需要时将其值设置为空而释放变量的内存。

议案II = 1:4 <陈述......>x = [];<陈述......>结尾

在……的情况下SPMD.块,您可以从客户端工作空间清除其复合材料。

通常,透明度的要求限制了对变量的所有动态访问,因为整个变量可能不存在于任何给定的工作者中。在透明的工作空间中,如果未在代码中明确指定这些变量,则无法创建,删除,修改,访问或查询变量。

违反透明度的其他行动或函数的示例议案-Loop包括:

  • WHO谁是

  • evalc.评价, 和赋予与之工作区指定的论点“来电”

  • 保存加载,除非产出加载被分配给变量

  • 如果脚本尝试读取或写入父工作空间的变量,则运行此脚本可能会导致透明度违规。为避免此问题,将脚本转换为函数,并将其作为输入或输出参数的必要变量调用。

笔记

透明度仅适用于直接的身体议案SPMD.构造,而不是从那里打来的任何功能。解决方法保存加载是隐藏呼叫保存加载在功能内。

马铃薯成功执行求解evalc.函数中出现的陈述议案身体。

平行金宝app模拟

你可以运行simulin金宝appk®模型与之平行Parsim命令代替使用议案- 砍伐。有关更多信息和使用Simulink并行的示例,请参阅金宝app运行多个模拟(金宝appSimulink)

  • 如果您的Simu金宝applink模型需要访问包含在A中包含的变量。垫文件,您必须在每个工作空间中加载这些参数。你必须在之前做到这一点议案- 开放后和开放后parpool.。要实现这一点,可以使用SPMD.Parfevalonall.,如示例所示。

    SPMD.评价('根据''加载(''路径/到/文件'')'结尾
    parfevalOnAll (@evalin 0'根据''加载(''路径/到/文件'')'

  • 如果您的模型还需要在MATLAB脚本的正文中定义的变量,则必须使用赋予评价将这些变量移动到每个工作人员的基本工作空间中,每个变量议案迭代。

也可以看看

|

相关的话题