配置第三方调度器集群发现
您可以让 MATLAB® 定位使用内置或通用调度器接口配置的第三方调度器集群。要使用 Parallel Computing Toolbox™ 集群发现功能发现集群,您必须创建一个集群配置文件并将其存储在 MATLAB 用户可以访问的位置。
前提条件
要在集群上运行作业,您必须向 MATLAB 客户端提供一组插件脚本。这些脚本包含特定于您的集群基础架构的指令,例如如何与作业调度器接口交互,以及如何将作业和任务数据传输到集群节点。
默认情况下,您的 MATLAB 安装附带这些调度器的插件脚本:
Slurm
PBS Pro® 和 OpenPBS
LSF®
Torque
Grid Engine
HTCondor
AWS® Batch
要了解有关如何配置 MATLAB 客户端以使用这些调度器向集群提交作业的更多信息,请参阅 配置用于 Slurm、Torque、LSF、PBS、Grid Engine、HTCondor 或 AWS 批处理系统。
如果您的调度器没有一组示例插件脚本,而您想要使用通用调度器接口配置 MATLAB 客户端端,则可以从 GitHub® 存储库下载并修改与您的设置最匹配的一组示例插件脚本。您必须将插件脚本保存在 MATLAB 客户端可以访问的位置。有关详细信息,请参阅使用通用调度器接口进行配置。
集群配置文件格式
集群配置文件是一个扩展名为 .conf
纯文本文件,其中包含描述集群配置信息的键值对。MATLAB 客户端将使用集群配置文件为发现集群的用户构建集群配置文件。集群配置文件允许您为集群定义某些属性,然后在 MATLAB 客户端中创建集群、作业和任务对象时应用这些属性。
集群配置文件必须符合以下规范:
配置文件必须具有扩展名
.conf
您必须以
格式指定每个集群属性名称和值。Name
=Value
Name = InstallTest
您必须为集群
Name
、Numworkers
、JobStorageLocation
和PluginScriptsLocation
属性指定值。要向配置文件添加注释,必须以井号 (#) 符号开头。
您可以提供结构体的属性。结构体字段名必须是属性名,字段值必须指定属性值。
您可以使用点表示法指定结构体,形式为
。例如,您可以为structName.fieldName
=fieldValue
Username
结构体中的AdditionalProperties
属性指定一个值。AdditionalProperties.Username = myUserName
或者,您可以使用方括号来表示后续的名称-值对属于同一结构体。
[AdditionalProperties] Username = myUserName ClusterHost = cluster-host-name
如果将
AdditionalProperties
结构体添加到配置文件中,MATLAB 会将该结构体转换为parallel.cluster
的属性parallel.cluster.AdditionalProperties
您可以指定适用于属性值的操作系统。在属性值的括号中添加一个或多个设定符
"Windows"
、"Mac"
、"Linux"
或"Unix"
MATLAB 将仅在指定的平台上执行属性值。例如,您可以为 Windows® 或 UNIX® 操作系统的客户端计算机设置不同的作业存储位置。JobStorageLocation (Windows) = C:\Temp\joblocation JobStorageLocation (Unix) = /home/Temp/joblocation
将操作系统环境变量名称指定为
"$VARIABLE"
MATLAB 使用getenv("VARIABLE")
来查找环境变量的值。例如,您可以使用环境变量为 Windows、macOS 或 Linux® 操作系统设置不同的用户名。[AdditionalProperties] Username (Windows) = "$USERNAME" Username (Mac, Linux) = "$USER" ClusterHost = cluster-host-name
注意
变量
"$MATLAB_VERSION_STRING"
返回 MATLAB 客户端的版本号,例如 2022a。根据需要添加“R”或“r”以完成 MATLAB 版本。ClusterMATLABRoot = /network/installs/MATLAB/R"$MATLAB_VERSION_STRING"
MATLAB 将数字的文本表示形式转换为双精度类型,将 true 和 false 转换为逻辑类型。
MATLAB 支持元胞数组和字符串数组,例如:
{'hello', 'world'}
或["hello", "world"]
。
存储配置文件
将集群配置文件存储在想要发现集群的用户的 MATLAB 客户端可以找到的位置。MATLABMATLAB 在以下位置搜索配置文件:
- 如果用户在集群上共享 MATLAB 安装,则可以使用此位置。matlabroot
/toolbox/parallel/user/clusterprofiles环境变量
$MATLAB_CLUSTER_PROFILES_LOCATION
定义的文件夹 - 如果集群管理员可以在组织的计算机上进行镜像处理时设置环境变量,这将很有用。用户的主文件夹 - Windows 上为
%USERPROFILE%
,UNIX 上为$HOME
。用户主文件夹中的下载文件夹 - 如果用户可以从其组织的内部网下载配置文件,这将很有用。
_mdcs._tcp.<domain>
如果上述选项均不可行,则这将很有用,并且是一种发现集群的便捷工作流,因为不需要对用户的计算机进行任何更改。DNS 文本 (TXT) 记录将文本字符串与特定域相关联。您的系统管理员在您组织的 DNS 基础架构中创建 DNS TXT 记录。
DNS TXT 记录必须具有
"discover_folder=<
的形式,其中folder
>"<
是文件系统上可访问的位置。folder
>如果您将配置文件存储在
<
MATLAB 将发现它。您可以在folder
><
并且可以folder
>under_mdcs._tcp
注册多个 DNS TXT 记录。有关所需记录和验证信息的描述,请参阅DNS TXT 记录。
发现用户计算机上的集群
要从 MATLAB 客户端定位集群,请使用发现集群。有关详细信息,请参阅发现集群 (Parallel Computing Toolbox)。
导入配置文件以创建集群配置文件
自 R2023b 起
或者,您也可以使用集群配置文件管理器或在 MATLAB 命令行窗口中以编程方式导入配置文件,以在 MATLAB 客户端中创建集群配置文件。
注意
导入的配置文件作为新的集群配置文件出现在集群配置文件管理器列表中。该列表包含集群配置文件名称,不一定是文件名。如果您已经有一个与配置文件中描述的集群同名的集群配置文件,则新的集群配置文件会在其名称中添加扩展名,以便您区分它。
使用集群配置文件管理器导入
要使用集群配置文件管理器导入配置文件:
在环境部分的主页选项卡上,选择并行 > 创建和管理集群。
在集群配置文件管理器中,选择导入。
在从文件导入配置文件对话框中,浏览以找到要导入的扩展名为
.conf
配置文件。选择文件并选择打开。
使用 parallel.importProfile
以编程方式导入
要在 MATLAB 命令行窗口中以编程方式导入配置文件,请使用 parallel.importProfile
(Parallel Computing Toolbox) 函数。
例如,此代码导入名为 clusterConfigFile.conf
的集群的配置文件 Slurm HPC
,并创建具有该集群名称的集群配置文件。
clusterProfile = parallel.importProfile("C:\User\Downloads\clusterConfigFile.conf")
clusterProfie = 'Slurm HPC'
另请参阅
主题
- 使用通用调度器接口进行配置
- 通用通用程序的插件脚本
- 发现集群并使用集群配置文件 (Parallel Computing Toolbox)