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