parfor
执行为
并行循环迭代并行工人池
语法
parfor loopVar = initVal: endVal;语句;结束
parfor (loopVar = initVal: endVal, M);语句;结束
描述
parfor
执行loopVar
=initVal
:endVal
;语句
;结束为
循环迭代并行工人在一个平行的池。
MATLAB®在循环体执行命令语句
的值loopVar
之间的initVal
和endVal
。loopVar
指定一个向量的整数值增加1。如果你有并行计算工具箱™,迭代语句
可以执行并行的工人多核计算机或集群。与一个为
循环,可以包括一行或多行语句
。
找出parfor
可以帮助提高你的吞吐量,看到了吗决定何时使用parfor。
parfor
不同于一个传统的为
循环在以下方式:
循环迭代并行执行在一个不确定的秩序。这意味着你可能需要修改代码来使用
parfor
。更多的帮助,请参阅for循环转换成parfor-Loops。必须连续循环迭代,增加整数值。
的主体
parfor
循环必须独立。一个循环迭代不能依赖于前一个迭代中,因为不确定的顺序迭代执行。更多的帮助,请参阅确保parfor-Loop迭代是独立的。你不能使用
parfor
循环在另一个parfor
循环。更多的帮助,请参阅嵌套parfor-Loops和for循环。
parfor (
使用loopVar
=initVal
:endVal
,米
);语句
;结束米
指定的最大数量的工人从平行池使用评估语句
在循环体。米
必须是一个非负整数。
默认情况下,MATLAB使用可用的工人在你平行池。你可以改变工人的数量家选项卡中环境部分中,选择平行>平行的偏好。你可以覆盖默认的工人数量在一个平行池使用parpool
。当没有工人正在池中可用的或米
是零,MATLAB仍然不确定的顺序执行循环体,而不是平行的。使用这个语法之间切换并行和串行执行测试代码时。
并行执行迭代,你必须有一个平行的工人。默认情况下,如果你执行parfor
,您会自动创建一个平行的工人在集群上所定义的默认集群配置文件。默认集群当地的。你可以改变你的集群平行的偏好。更多细节,请参阅指定您的平行的偏好。
例子
输入参数
提示
使用一个
parfor
循环时间:你有很多循环迭代的一个简单的计算。
parfor
将循环迭代划分为组,每个线程可以执行一组迭代。你有一些循环迭代,需要很长时间来执行。
不使用
parfor
循环当迭代循环的结果取决于其他迭代。削减是一个例外。一个减少变量积累的值取决于一起迭代,但独立于迭代顺序。有关更多信息,请参见减少变量。
当你使用
parfor
,你必须等待循环完成获得结果。客户MATLAB被阻塞,提前你不能打破循环。如果你想获得中间结果,或突破为
循环早期,试试parfeval
代替。一个
parfor
循环运行在现有的并行池。如果池不存在,parfor
开始一个新的并行池,除非禁用自动启动池在你平行的偏好。如果没有游泳池和平行parfor
不能启动,循环连续运行在客户端会话。如果
AutoAttachFiles
财产的集群配置文件将平行池真正的
,MATLAB执行一个分析parfor
循环判断为其执行代码文件是必要的,看到的listAutoAttachedFiles
。然后MATLAB自动高度这些文件并行池,以便可用的代码工人。你不能直接调用脚本中
parfor
循环。然而,您可以调用的函数调用脚本。不要使用
清晰的
在一个parfor
循环,因为它违反了工作空间的透明度。看到确保透明度parfor-Loops。您可以运行仿真软件万博1manbetx®与并行模型
parsim
命令,而不是使用parfor
循环。的更多信息和示例使用并行仿真软件,明白了万博1manbetx运行多个模拟(万博1manbetx模型)。