发现集群并使用集群配置文件
Parallel Computing Toolbox™ 预先配置了集群配置文件 Processes
和 Threads
,以便在本地桌面计算机上运行并行代码。
使用 MATLAB® 主页选项卡上的 并行 菜单控制并行行为。
您可以使用并行菜单来:
发现在您的网络或 Cloud Center 运行的其他集群。点击并行 > 发现集群。有关详细信息,请参阅发现集群。
使用集群配置文件管理器创建和管理集群配置文件。点击并行 > 创建和管理集群。有关详细信息,请参阅创建和管理集群配置文件。
创建和管理集群配置文件
集群配置文件允许您为集群定义某些属性,然后在 MATLAB 客户端中创建集群、作业和任务对象时应用这些属性。支持使用集群配置文件的一些函数包括
使用集群配置文件管理器管理集群配置文件。要打开集群配置文件管理器,请在主页选项卡上的环境部分中选择并行 > 创建和管理集群。
您可以使用集群配置文件管理器来执行以下操作:
发现在您的网络或 Cloud Center 运行的其他集群。有关详细信息,请参阅发现集群。
在云中创建一个集群,例如 Amazon® AWS®。有关详细信息,请参阅创建云集群。
添加集群配置文件并修改其属性。有关详细信息,请参阅添加和修改集群配置文件。
导入和导出集群配置文件。有关详细信息,请参阅导入和导出集群配置文件。
指定配置文件属性。有关详细信息,请参阅编辑工作单元数量和集群设置。
验证集群配置文件是否已准备好在 MATLAB 中使用。
发现集群
您可以让 MATLAB 为您发现集群。使用以下任一技术来发现可供使用的集群:
在主页选项卡的环境部分中,选择并行 > 发现集群
在集群配置文件管理器中,选择发现集群
这将打开“发现集群”对话框,您可以在其中搜索 MATLAB Parallel Server™ 集群:
如果您选择在您的网络上,您会看到一个新窗口。如果您的集群使用 MATLAB 作业调度器、Microsoft® Windows® HPC 服务器或其他第三方调度器集群,请选择此选项。当发现集群时,它们会填充一个列表供您选择。如果您已经拥有任何列出的集群的配置文件,则这些配置文件名称将包含在列表中。如果您想要为其中一个发现的集群创建一个新的配置文件,请选择您想要使用的集群的名称,然后选择下一步。随后出现的对话框让您选择是否要将创建的配置文件设置为默认配置文件。MATLAB Online 不支持此选项。
如果选择在 MathWorks Cloud Center,则会搜索在 Cloud Center 上运行的集群。要访问这些集群,您必须提供您的 MathWorks 帐户登录信息。
集群发现的要求
支持 MATLAB 作业调度器、Microsoft Windows HPC 服务器集群、其他第三方调度器集群和 MathWorks Cloud Center 集群的集群发现。如果您需要将您的调度器与 MATLAB Parallel Server 集成,或者为不同的受支持的调度器创建集群配置文件,请参阅 安装 (MATLAB Parallel Server)。以下要求适用于集群发现:
MATLAB 作业调度器 - MATLAB 作业调度器集群支持两种不同的发现方式:
多播:发现集群功能使用来自客户端的多播网络协议来搜索正在运行 MATLAB 作业调度器的头节点。这要求启用多播网络协议,并且该协议在连接 MATLAB 作业调度器头节点(调度器正在运行的位置)和客户端计算机的网络上运行。这种形式的发现可能仅限于客户端本地子网,因此并不总是能够在网络中的其他地方发现 MATLAB 作业调度器。
DNS SRV:另一种发现技术是通过 DNS 服务记录搜索集群。
域名系统 (DNS) 是一种在 Internet 或私有网络中通过 IP 地址识别主机名的标准。使用 DNS 可以通过识别特定主机而不是通过网络广播来发现 MATLAB 作业调度器集群。
DNS 服务 (SRV) 记录定义服务主机和端口的位置,例如与您要发现的集群相关的服务。您的系统管理员在您组织的 DNS 基础架构中创建 DNS SRV 记录。有关所需记录和验证信息的描述,请参阅DNS SRV 记录 (MATLAB Parallel Server)。
HPC Server - 发现集群功能使用 Active Directory 域服务来发现头节点。HPC Server 头节点在安装 HPC Server 软件期间添加到 Active Directory 中。
第三方调度器 – 发现集群功能使用配置文件来发现第三方调度器集群。有关详细信息,请参阅配置第三方调度器集群发现 (MATLAB Parallel Server)。
Cloud Center - 发现集群功能需要客户端和在 mathworks.com 中运行的 Cloud Center Web 服务之间建立有效的网络连接。
创建云集群
您可以直接从集群配置文件管理器在 Cloud Center 云服务中创建集群。在集群配置文件管理器中,选择创建云集群。
使用您的 MathWorks® 帐户注册并完成所需的步骤。然后,您可以创建一个云集群并配置参数,例如计算机数量或每台计算机的工作单元数量。有关每个可用参数的更多信息,请参阅创建云集群。当您完成所有步骤后,MATLAB 会为您创建一个新的集群配置文件。您可以从集群配置文件管理器修改其属性。
要管理您的许可证、测试云连接或在 MathWorks Cloud Center 管理您的云集群,请转到集群配置文件管理器工具条 > CLOUD 部分。
添加和修改集群配置文件
使用集群配置文件管理器,您可以为 MATLAB 作业调度器或第三方调度器添加集群配置文件。如果您需要设置集群以与 MATLAB 一起使用,请参阅 安装 (MATLAB Parallel Server)。
以下示例提供了有关如何使用集群配置文件管理器添加和修改配置文件的说明。
假设您想要创建一个配置文件来设置在 MATLAB 作业调度器集群中运行的作业的几个属性。以下示例说明了一种可能的工作流,其中您可以创建两个仅通过其使用的工作单元数量来区分的配置文件。
在集群配置文件管理器中,选择添加集群配置文件 > MATLAB 作业调度器。这指定您需要一个用于 MATLAB 作业调度器集群的新配置文件。
这将创建并显示一个名为 MJSProfile1 的新配置文件。
双击列表中的新配置文件名称,并将配置文件名称修改为
MyMJSProfile1
。在工具条中选择编辑,以便您可以设置您的配置文件属性值。
在描述字段中输入文本
MJS with 4 workers
,如下图所示。输入运行 MATLAB 作业调度器的计算机的主机名,以及 MATLAB 作业调度器的名称。如果您要输入已在网络上运行的实际 MATLAB 作业调度器的信息,请输入实际名称。如果您不确定网络上的 MATLAB 作业调度器名称和位置,请向系统管理员寻求帮助。注意
如果 MATLAB 作业调度器使用
BASE_PORT
文件中定义的非默认mjs_def
设置,则集群配置文件中的Host
属性必须附加此BASE_PORT
编号。例如,MJS-Host:40000
。向下滚动到“工作单元”部分,对于工作单元数量范围,输入二元素向量
[4 4]
。这指定使用此配置文件的作业至少需要四个工作单元且不超过四个工作单元。因此,使用此配置文件的作业只需要四个工作单元就可以运行,即使必须等到四个工作单元可用才能开始。您可能需要根据特定的网络和集群情况编辑其他属性。
选择完成以保存配置文件设置。
要创建只有少量差异的类似配置文件,您可以复制现有配置文件并仅修改需要更改的部分,如下所示:
在集群配置文件管理器中,右键点击列表中的配置文件名称
MyMJSProfile1
,然后选择复制。这将创建一个重复的配置文件,其名称基于原始配置文件名称加上
_Copy
。双击新的配置文件名称并将其名称编辑为
MyMJSprofile2
。选择编辑可以更改配置文件属性值。
编辑描述字段以将其文本更改为
MJS with any workers
。向下滚动到“工作单元”部分,对于工作单元数量范围,清除
[4 4]
并将字段留空。选择完成以保存配置文件设置并关闭属性编辑器。
您现在有两个配置文件,它们的区别仅在于运行一项作业所需的工作单元数量。
创建作业时,您可以将任一配置文件应用于该作业,以指定该作业应在多少个工作单元上运行。
您可以在 配置集群 (MATLAB Parallel Server) 的 MATLAB Parallel Server 安装说明中看到不同类型的受支持调度器的配置文件示例。
导入和导出集群配置文件
集群配置文件作为 MATLAB 设置的一部分存储,因此通常可供各个用户使用。为了让其他人可以使用集群配置文件,您可以将其导出到单独的 .mlsettings
文件。通过这种方式,可以创建一个配置文件存储库,以便计算集群的所有用户都可以共享通用的配置文件。
要导出集群配置文件:
在集群配置文件管理器中,选择(突出显示)要导出的配置文件。
选择导出 > 导出。(或者,您可以右键点击列表中的配置文件并选择导出。)
如果您想将所有配置文件导出到一个文件,请选择导出 > 全部导出。
在将配置文件导出到文件对话框中,指定文件的位置和名称。默认文件名与其包含的配置文件的名称相同,但附加
.mlsettings
扩展名;如果您愿意,可以更改名称。
请注意,您无法导出 Cloud Center 个人集群的配置文件。
其他 MATLAB 用户可以将以这种方式保存的配置文件导入:
在集群配置文件管理器中,选择导入。
在从文件导入配置文件对话框中,浏览以找到要导入的配置文件的
.mlsettings
文件。选择文件并选择打开。导入的配置文件将出现在您的集群配置文件管理器列表中。请注意,列表包含配置文件名称,但不一定是文件名。如果您已经拥有与要导入的配置文件,则导入的配置文件的名称中会添加扩展名,以便您区分它。
您还可以使用 parallel.exportProfile
和 parallel.importProfile
函数以编程方式导出和导入配置文件。
导出 MATLAB Compiler 的配置文件
您可以使用带有 MATLAB Compiler™ 和 MATLAB Compiler SDK™ 的导出配置文件来识别在集群上运行已编译应用程序的集群设置信息。例如,setmcruserdata
(MATLAB Compiler) 函数可以使用导出的配置文件文件名来设置键 ParallelProfile
的值。有关部署并行应用程序的更多信息和示例,请参阅 在运行时传递 Parallel Computing Toolbox 配置文件 (MATLAB Compiler) 和 在部署的应用程序中使用 Parallel Computing Toolbox (MATLAB Compiler SDK)。
已编译的应用程序具有与编译用户在编译应用程序时相同的默认配置文件和相同的备用配置文件列表。这意味着在许多情况下不需要配置文件文件,就像使用本地工作单元的 Processes
配置文件时的情况一样。如果使用导出的文件,则导入时文件中的第一个配置文件将成为默认配置文件。如果任何导入的配置文件与任何现有配置文件同名,则它们会在导入过程中重命名(尽管文件中的名称保持不变)。
编辑工作单元数量和集群设置
创建集群配置文件后,您可以指定工作单元数量和其他配置文件属性:
NumWorkers
:启动池的工作单元数量。实际池大小可能受许可、集群大小和集群配置文件设置的限制。请参阅影响池大小的因素NumThreads
:每个工作单元上使用的计算线程的数量。您可以更改NumThreads
,以便您的工作单元可以在多线程模式下运行并使用集群上的所有核心。这使您可以增加每个工作单元上的计算线程NumThreads
的数量,而无需增加工作单元NumWorkers
的数量。如果您有更多可用核心,请增加NumThreads
以充分利用许多底层 MATLAB 库的多线程特性所提供的内置并行性。有关详细信息,请参阅在多核和多处理器计算机上运行 MATLAB。注意
不要将计算机上所有工作单元的线程数增加到超过物理核心的数量。换句话说,确保
NumWorkers x NumThreads
≤ 您的计算机上的物理核心数量。否则,您的性能可能会降低。
从 MATLAB 使用您的集群
要在集群上运行并行语言函数(例如 parpool
或 batch
),请将集群配置文件文件设置为默认值,或使用集群对象。
指定默认集群
要将集群配置文件设置为默认配置文件,请使用以下方法之一:
在环境部分的主页选项卡中,选择并行 > 选择并行环境,然后即可使用所有配置文件。已指示默认配置文件。您可以选择列表中的任何配置文件作为默认配置文件。
集群配置文件管理器指示哪个是默认配置文件。您可以选择列表中的任意配置文件,然后选择设为默认值。
您可以使用
parallel.defaultClusterProfile
函数以编程方式获取或设置默认配置文件。以下命令集实现相同的功能:parallel.defaultClusterProfile('MyMJSProfile1') parpool
或者
parpool('MyMJSProfile1')
以编程方式指定集群 (parcluster
)
parcluster
函数根据指定的配置文件在您的工作区中创建一个集群对象。该配置文件识别特定集群并应用属性值。例如,
c = parcluster('MyMJSProfile1')
此命令查找由名为 MyMJSProfile1
的配置文件的设置定义的集群,并根据配置文件中的设置设置集群对象的属性值。在诸如 parpool
或 batch
等函数中使用集群对象。通过应用不同的配置文件,您可以改变集群选择,而无需更改 MATLAB 应用程序代码。
另请参阅
batch
| parpool
| parcluster
| createJob
| setmcruserdata
(MATLAB Compiler) | parallel.exportProfile
| parallel.importProfile
| parallel.defaultClusterProfile
主题
- 在并行池上运行代码
- 从桌面扩展到集群
- 在运行时传递 Parallel Computing Toolbox 配置文件 (MATLAB Compiler)
- 在部署的应用程序中使用 Parallel Computing Toolbox (MATLAB Compiler SDK)
- 验证集群发现的网络通信 (MATLAB Parallel Server)
- 安装 (MATLAB Parallel Server)
- 集群和云