主要内容

parpool.

在群集中创建并行池

描述

例子

parpool.使用默认的群集配置文件启动并行工人池。使用默认首选项,Matlab®在本地机器上启动一个池,每个物理CPU核心有一个worker,最多为首选的worker数量。有关并行偏好的更多信息,请参阅指定您的并行偏好

通常,池大小是由并行首选项和默认配置文件指定的。parpool.在默认群集中创建一个池numworkers.在范围内[1,Profectsnumworkers]用于运行并行语言特性。preferredNumWorkers是在并行首选项中定义的值。有关影响池大小的所有因素,请参见池大小和群集选择

parpool.通过在工人池中创建特殊作业,并将MATLAB客户端连接到并行池中,可以在MATLAB中的完整功能。并行语言功能包括议案Parfeval.Parfevalonall.SPMD., 和分散式。如果可能,工作人员上的工作文件夹设置为匹配MATLAB客户端会话的工作文件夹。

例子

Parpool(poolsize创建并返回具有指定数量的工人的池。poolsize可以是正整数或指定为整数的2元素向量的范围。如果poolsize是一个范围,得到的池在所要求的范围内具有尽可能大的大小。

指定poolsize覆盖首选项或配置文件中指定的工人数量,并启动一个完整的工人数量的池,即使它必须等待它们可用。大多数集群都有最多可以启动的工人。如果配置文件指定MATLAB作业调度程序群集,parpool.在该Matlab作业调度程序下,从已经运行和可用的人员中保留其工人。如果配置文件指定本地或第三方调度程序,parpool.指示调度程序启动池的工作程序。

例子

Parpool(资源或者Parpool(资源poolsize在指定的资源上启动工人池资源

例子

Parpool(___名称,价值在启动池时为某些属性应用指定的值。

例子

博彩= parpool(___返回A.并行.Pool.对象到表示群集中池的客户端工作区。您可以使用池对象以编程方式删除池或访问其属性。用删除(池)关闭并行池。

例子

全部收缩

使用默认配置文件启动并行池,以定义工作人员的数量。使用默认首选项,默认池在本地机器上。

parpool.

您可以在本地计算机上的不同类型的并行环境中创建池。

  • 开始一个平行的流程工人池。

    Parpool('当地的'
  • 启动一个并行线程工作器池。

    Parpool('线程'

有关并行环境的更多信息,请参阅在基于线程和基于过程的环境之间进行选择

使用调用的配置文件启动16名工人的平行池myProf

Parpool(“myProf”16)

创建表示默认配置文件标识的群集的对象,并使用该群集对象启动并行池。池大小由默认配置文件确定。

C = Parcluster Parpool(C)

使用默认配置文件启动并行池,并将两个代码文件传递给工人。

Parpool('附加的文件',{'mod1.m''mod2.m'})

如果您可以访问多个GPU,可以使用并行池并行地对多个GPU进行计算。

要确定可用于MATLAB的GPU数,请使用gpuDeviceCount功能。

可用可用= gpudeviceCount(“可用的”
可用issgpus = 3.

启动一个并行池,与众多工人为可用的GPU。为了获得最佳性能,Matlab默认为每个工人分配不同的GPU。

Parpool('当地的',可用);
使用“本地”配置文件...连接到并行池(工人数:3)开始并行池(Parpool)。

要确定每个工人使用哪个GPU,请致电GPudevice.内侧SPMD.堵塞。这SPMD.块运行GPudevice.在每个工人身上。

SPMD.GPudevice.结尾

使用并行语言功能,如议案或者Parfeval.,将您的计算分发到并行池中的工人。如果你使用GPUArray.在计算中启用了功能,这些功能在工作者的GPU上运行。有关更多信息,请参阅在GPU上运行matlab函数。例如,看到在多个GPU上运行MATLAB功能

使用计算完成后,请关闭并行池。你可以使用GCP.获取当前并行池的功能。

删除(GCP('noicreate'));

如果您想使用不同的gpu选择,那么您可以使用GPudevice.要使用GPU设备索引在每个工作人员上选择特定的GPU。您可以使用系统中每个GPU设备的索引gpuDeviceCount功能。

假设您的系统中有三个GPU,但您希望仅使用两个计算。获取设备的索引。

[isolassgpus,gpuindx] = gpudevicecount(“可用的”
可用issgpus = 3.
gpuindx =1×3.1 2 3.

定义要使用的设备的索引。

使用gpus = [1 3];

启动并行池。用A.SPMD.GPudevice.使用设备索引将每个worker与您想要使用的一个gpu关联起来。这Labindex.函数标识每个工人的索引。

Parpool('当地的',numel(usegpus));
使用“本地”配置文件启动并行池(Parpool)连接到并行池(工人数量:2)。
SPMD.GPudevice(使用寿命(Labindex));结尾

作为最佳实践,并为最佳性能,为每个工人分配不同的GPU。

使用计算完成后,请关闭并行池。

删除(GCP('noicreate'));

使用默认配置文件创建并行池,稍后删除池。

poolobj = parpool;删除(poolobj)

查找当前并行池中的工人数量。

poolobj = gcp ('noicreate');%如果没有存储池,则不要创建新的存储池。如果Isempty (poolobj) poolsize = 0;别的poolsize = poolobj.numworkers.结尾

输入参数

全部收缩

并行池的大小指定为正整数或指定为整数的2元素向量的范围。如果poolsize是一个范围,得到的池在所要求的范围内具有尽可能大的大小。在并行首选项或并行配置文件中设置默认的首选工作人员。

例子:Parpool('本地',2)

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32.|UINT64

资源开始池,指定为'当地的''线程',群集配置文件名称或群集对象。

例子:Parpool('local')

例子:Parpool('threads')

例子:Parpool('myclusterprofile',16)

例子:c = parcluster;Parpool(c)

数据类型:字符|细绳|平行的。集群

名称值对参数

指定可选的逗号分离对名称,价值参数。姓名是参数名称和价值是相应的价值。姓名必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'contactionfiles',{'myfun.m'}

要附加到池的文件,指定为字符向量,字符串或字符串数​​组或字符向量的单元格数组。

用这个参数对,parpool.启动并行池并将所识别的文件传递给池中的工人。此处指定的文件已附加到附加的文件适用的并行配置文件中指定的属性,以形成附加文件的完整列表。这'附加的文件'属性名称区分大小写,必须如图所示出现。

例子:{'myfun.m','myfun2.m'}

数据类型:字符|细胞

标志指定客户端路径上的用户添加条目是否被添加到启动时的每个工作人员的路径中,指定为逻辑值。

数据类型:逻辑

环境变量的名称从客户端会话复制到工人,指定为字符向量,字符串或字符串数​​组或字符向量的单元格数组。此处指定的名称已附加到'环境变量'适用的并行配置文件中指定的属性,以形成完整的环境变量列表。未设置的任何未设置的变量都不会复制到工人。这些环境变量在工人上设置了并行池的持续时间。

数据类型:字符|细胞

标志指定是否SPMD.万博1manbetx池中已启用支持,指定为逻辑值。您只能在本地或MATLAB作业计万博1manbetx划程序集群上禁用支持。议案迭代不涉及工人之间的沟通。因此,如果“SpmdEnabled”错误的, 一种议案- 即使一个或多个工人在循环执行期间中止时,仍在继续。

数据类型:逻辑

在几分钟内池在空闲时关闭,指定为大于零的整数。如果它不是在工人上运行代码,则池是空闲的。默认情况下“IdleTimeout”与并行偏好中的值相同。有关并行偏好的更多信息,请参阅指定您的并行偏好

例子:池= Parpool('idlemout',120)

输出参数

全部收缩

从客户端访问并行池,作为一个并行.Pool.目的。

提示

  • 桌面左下角的池状态指示灯显示到池和池状态的客户端会话连接。单击“支持池操作”菜单的图标。万博1manbetx

    跑步:没有池运行:

  • 如果设置并行首选项以在必要时自动创建并行池,则无需明确调用parpool.命令。您可能会显式创建一个池可以控制励志设置它的开销时间,因此池已准备好用于后续并行语言构造。

  • 删除(poolobj)关闭并行池。没有平行池,SPMD.议案作为客户端中的单个线程运行,除非您的并行首选项被设置为自动启动它们的并行池。

  • 当您使用MATLAB编辑器更新连接到并行池的客户端上的文件时,这些更新会自动传播到池中的工人。(此自动更新不适用于Simulink万博1manbetx®模型文件。要将更新的模型文件传播给工人,请使用updateattachedfiles.函数)。

  • 如果可能,工人上的工作文件夹最初将设置为匹配MATLAB客户端会话的匹配。随后,在客户端命令窗口中输入的以下命令也在池中的所有工人上执行:

    此行为允许您设置所有工人的工作文件夹和命令搜索路径,以便后续池活动如议案- 在适当的上下文中执行。

    更改文件夹或添加路径时光盘或者目录关于带窗户的客户®,发送给工人的值是文件夹的UNC路径(如果可能的话)。Linux客户端®操作系统,它是绝对文件夹位置。

    如果这些命令中的任何一个不适用于客户端,则它也不会在工人身上执行。例如,如果目录指定客户端无法访问的文件夹,目录命令未在工人身上执行。但是,如果可以在客户端上设置工作文件夹,但无法设置在任何工人上的规定,则不会收到返回到客户端命令窗口的错误消息。

    小心在混合平台环境中的行为中的这种轻微差异,其中客户端与工人不同的平台,其中来自客户端的本地或映射的文件夹不可以与工人相同的方式,或者文件夹在一个非正式的文件系统中。例如,如果您在Microsoft上运行Matlab客户端®Windows操作系统,而Matlab Workers全部在Linux操作系统上运行,同样的参数目录不能在两者上工作。在这种情况下,您可以使用该功能PCTRunonall.确保命令在所有工人身上运行。

    客户和工人之间的另一个区别是任何目录论点是matlabroot.文件夹未设置在工人上。假设是MATLAB安装基础已包含在工人路径中。规则目录关于游泳池的工人是:

    • 摘要的子文件夹matlabroot.文件夹未发送给工人。

    • 任何出现在第一次出现之前的文件夹matlabroot.文件夹已添加到工人的路径的顶部。

    • 任何出现在第一次出现之后的文件夹matlabroot.文件夹已添加到后matlabroot.一组文件夹在工人的路径上。

    例如,假设matlabroot.在客户端上为C:\ Applications \ Matlab \。使用“打开并行池”,执行以下内容以在客户端和所有工人上设置路径:

    目录'p1''p2''c:\ applications \ matlab \ t3''C:\ Applications \ Matlab \ T4''p5''c:\ applications \ matlab \ t6''p7''p8');

    因为T3.T4., 和T6.是子文件夹matlabroot.,他们没有设置在工人的路径上。因此,工人上,此命令产生的路径的相关部分是:

    P1 P2  P5 P7 P8
  • 如果您正在使用Macintosh.或Linux,并在大型并行池创建期间看到问题,请参阅Macintosh和Linux的推荐系统限制

介绍在R2013B.