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