parpool
在集群上创建并行池
语法
描述
parpool
使用默认配置文件启动并行工作池。默认首选项,MATLAB®在本地机器上启动一个池,每个物理CPU核心有一个worker,直到首选的worker数量。有关并行首选项的更多信息,请参见指定你的并行偏好.
通常,池大小由并行首选项和默认配置文件指定。parpool
属性在默认概要文件上创建一个池NumWorkers
在范围内[1, preferredNumWorkers]
用于运行并行语言特性。preferredNumWorkers
在并行首选项中定义的值。有关所有可能影响您的泳池大小的因素,请参阅池大小和群集选择.
parpool
通过在工作池上创建一个特殊的作业,并将MATLAB客户端连接到并行池,从而实现MATLAB中并行语言特性的全部功能。并行语言特性包括parfor
,parfeval
,parfevalOnAll
,spmd
,分布式
.如果可能,将worker上的工作文件夹设置为与MATLAB客户端会话的工作文件夹匹配。
parpool (
创建并返回具有指定数量的工作人员的池。poolsize
)poolsize
可以是正整数或指定为2元素整数向量的范围。如果poolsize
为范围,则生成的池的大小在请求的范围内尽可能大。
指定poolsize
覆盖在首选项或概要文件中指定的工作者数量,并启动一个具有相同数量的工作者的池,即使必须等待它们可用。大多数集群都有可以启动的最大worker数量。如果概要文件指定MATLAB作业调度器群集,则parpool
从MATLAB Job Scheduler下已经运行和可用的worker中保留它的worker。如果概要文件指定了本地或第三方调度器,parpool
指示调度程序启动池的作业。
例子
输入参数
输出参数
提示
桌面左下角的池状态指示灯显示客户端与池的会话连接和池的状态。单击图标以查看支持的池操作菜单。
游泳池正在运行:没有运行池:
如果将并行首选项设置为在必要时自动创建并行池,则不需要显式调用
parpool
命令。您可以显式地创建一个池来控制设置它的开销时间,这样池就可以用于后续的并行语言构造。删除(poolobj)
关闭并行池。如果没有平行池,spmd
而且parfor
在客户端中作为单个线程运行,除非您的并行首选项设置为自动为它们启动并行池。当您使用MATLAB编辑器更新客户机上附加到并行池的文件时,这些更新将自动传播到池中的工作线程。(此自动更新不适用于Simulink®模型文件。要将更新的模型文件传播给工作者,请使用
updateAttachedFiles
函数)。如果可能,首先将工作目录设置为与MATLAB客户端会话相匹配。随后,在客户端命令窗口中输入的以下命令也会在池中的所有工人上执行:
此行为允许您在所有工作者上设置工作文件夹和命令搜索路径,以便后续的池活动,例如
parfor
-loops在适当的上下文中执行。在更改文件夹或添加路径时使用
cd
或目录
Windows客户端®如果可能的话,发送给worker的值是文件夹的UNC路径。Linux客户端®在操作系统中,它是文件夹的绝对位置。如果这些命令中的任何一条在客户机上不起作用,那么它也不会在worker上执行。例如,如果
目录
指定客户端不能访问的文件夹目录
命令不会在worker上执行。但是,如果工作文件夹可以在客户端上设置,但不能在任何工作程序上设置,则不会向客户端命令窗口返回错误消息。在混合平台环境中,客户端与工作者不是同一个平台,客户端本地文件夹或从客户端映射的文件夹不能以相同的方式对工作者可用,或者文件夹位于非共享文件系统中,请注意这种轻微的行为差异。例如,如果您有一个运行在Microsoft上的MATLAB客户机®而MATLAB的工作程序都运行在Linux操作系统上,同样的道理
目录
不能同时工作。在这种情况下,您可以使用该函数pctRunOnAll
确保对所有工人都有命令。客户和工人之间的另一个区别是任何
目录
参数的一部分matlabroot
文件夹上没有设置。假设MATLAB安装库已经包含在工作路径中。的规则目录
关于池中的工作人员有:的子文件夹
matlabroot
文件夹不发送给工人。项第一次出现之前出现的任何文件夹
matlabroot
文件夹被添加到工作者路径的顶部。项第一次出现之后出现的任何文件夹
matlabroot
文件夹后添加matlabroot
工作路径上的文件夹组。
例如,假设
matlabroot
客户端的是C: \应用matlab \ \
.对于一个开放的并行池,执行以下命令在客户端和所有worker上设置路径:目录“P1”,“P2”,“C: \ matlab应用程序\ \ T3”,“C: \ matlab应用程序\ \ T4”,“P5”,“C: \ matlab应用程序\ \ T6”,“P7”,“P8”);
因为
T3
,T4
,T6
的子文件夹matlabroot
他们没有在工人的道路上设置。因此,在worker上,由这个命令产生的路径的相关部分是:P1 P2
p5 p7 p8 如果你正在使用麦金塔电脑或Linux,并参见大型并行池创建期间的问题,请参见Macintosh和Linux的推荐系统限制.