并行池的工人并行执行代码
SPMD语句
结束
spmd,
定义语句
, 结束SPMD
语句放在单行上。MATLAB®执行SPMD
身体通过表示语句
在几个MATLAB工作人员的同时。每个worker可以操作不同的数据集或分布式数据的不同部分,并且可以在执行并行计算时与其他参与的worker通信。该SPMD
语句可以用来只有当你有并行计算工具箱™。要并行执行的语句,必须先使用MATLAB创建工人池parpool
或有你的喜好平行允许池的自动启动。
里面的身体SPMD
声明中,每个MATLAB工人都有独特的价值labindex
,而numlabs
表示并行执行块工人的总数。内的身体SPMD
声明中,对通信工作的通信功能(如labSend
和labReceive
)可以在工人之间传输数据。
从价值观的身体返回SPMD
声明转化为综合
对象在MATLAB客户机上。复合对象包含对存储在远程MATLAB工作器上的值的引用,可以使用单元数组索引检索这些值。工人的实际数据在以后仍然可用SPMD
执行时,只要组合存在于客户端上并且并行池保持打开状态。
默认情况下,MATLAB使用池中的所有worker。当没有活动的池时,MATLAB将创建一个池并使用该池中的所有worker。如果首选项不允许自动创建池,MATLAB将在本地执行块体并根据需要创建复合对象。你不能执行SPMD
方框如果任何工人忙于执行一个parfeval
请求,除非你使用SPMD(0)
。
有关详细信息SPMD
和复合物,见分发数组并运行SPMD。
使用parfevalOnAll
代替PARFOR
或SPMD
如果你想使用清晰的
。这保留了工作区的透明度。看到确保透明度在PARFOR-循环或SPMD声明。
spmd (
使用ñ
)语句
, 结束ñ
指定MATLAB工人的确切人数,以评估语句
,前提是ñ
并行池中可以使用workers。如果没有足够的工人可用,就会抛出一个错误。如果ñ
是零,MATLAB本地执行的块体,并创建复合对象,一样的,如果没有可用的游泳池。
spmd (
使用最少的米
,ñ
),声明,端米
和最多ñ
员工评估语句
。如果没有足够的工人可用,就会抛出一个错误。米
可以是零,这使得如果无工可用块在本地运行。
一个SPMD
块运行在现有的并行池的工人。如果没有池存在,SPMD
将启动一个新的并行池,除非在并行首选项中禁用了池的自动启动。如果没有平行池和SPMD
无法启动,代码在客户端会话中串行运行。
如果AutoAttachFiles
在并行池的集群配置文件中设置为真正的
, MATLAB对an进行分析SPMD
块,以确定哪些代码文件所需的其执行的,那么代码是提供给工人自动附加这些文件进行并行池工作。
有关约束和限制的信息时使用SPMD
见在多个数据集运行单个程序。