使用通用调度器接口进行配置
通用调度器接口提供了灵活性,可以配置 MATLAB® 客户端、MATLAB 工作进程和第三方调度器的交互。当您希望完全定制 MATLAB 与调度器设置的接口时,请使用通用调度器接口。
您可以使用内置集群类型或 Generic
集群类型创建集群配置文件。作为最佳实践,请尽可能使用内置集群类型。
在以下情况下,您必须使用 Generic
集群配置文件:
您连接到没有内置集群类型的集群
MATLAB 客户端和集群节点没有共享文件系统
MATLAB 客户端计算机无法直接向第三方调度器提交作业,或者
您需要完全自定义如何将并行作业提交到集群
要使用内置集群类型配置集群,请参阅针对 Slurm、PBS Pro、OpenPBS、LSF、TORQUE 进行配置,配置 Hadoop 集群,或者配置 HPC Pack。
与第三方调度程序接口
通用调度器接口提供了一种将任务从 Parallel Computing Toolbox™ 客户端会话获取到调度器和集群节点的方法。为了实现这一点,您必须为您的 MATLAB 客户端提供一组插件脚本。这些脚本包含特定于您的集群基础架构的指令,例如如何与作业调度器通信,以及如何将作业和任务数据传输到集群节点。
支持脚本
为了帮助您与调度器交互,MathWorks® 为以下第三方调度器提供了附加组件或插件,您可以从 GitHub® 存储库或附加组件管理器下载。
插件 | GitHub 存储库 |
---|---|
Parallel Computing Toolbox plugin for MATLAB Parallel Server™ with Slurm | https://github.com/mathworks/matlab-parallel-slurm-plugin |
Parallel Computing Toolbox plugin for MATLAB Parallel Server with IBM Spectrum® LSF® | https://github.com/mathworks/matlab-parallel-lsf-plugin |
Parallel Computing Toolbox plugin for MATLAB Parallel Server with Grid Engine | https://github.com/mathworks/matlab-parallel-gridengine-plugin |
Parallel Computing Toolbox plugin for MATLAB Parallel Server with PBS | https://github.com/mathworks/matlab-parallel-pbs-plugin |
Parallel Computing Toolbox plugin for MATLAB Parallel Server with HTCondor | https://github.com/mathworks/matlab-parallel-htcondor-plugin |
使用这些工作流程之一为您的调度器下载适当的插件脚本。
您可以从 GitHub 存储库下载插件。
从您机器上的命令窗口克隆 GitHub 存储库。例如,要使用 IBM Spectrum LSF 克隆 MATLAB Parallel Server 的 Parallel Computing Toolbox 插件的存储库,请使用:
git clone https://github.com/mathworks/matlab-parallel-lsf-plugin
在浏览器中访问 GitHub 页面并将插件下载为 ZIP 存档。
或者,要从 MATLAB 附加组件管理器安装附加组件,请转到主页选项卡,然后在环境部分中点击附加功能图标。在附加组件资源管理器中,搜索附加组件并安装它。
您还可以从 MATLAB Central™ File Exchange 下载插件。
其他信息
如果 MATLAB 客户端无法直接向调度器提交作业,MATLAB 支持使用
ssh
协议向远程集群提交命令。如果客户端和集群节点没有共享文件系统,MATLAB 支持使用
sftp
(SSH 文件传输协议)在您的计算机和集群之间复制作业和任务文件。如果您想自定义插件脚本的行为,您可以设置附加属性,例如
AdditionalSubmitArgs
。有关详细信息,请参阅自定义示例插件脚本的行为。如果其中一个存储库不支持您的调度器或集群配置,建议您修改其中一个包的脚本。有关如何为通用调度器编写一组插件脚本的更多信息,请参阅通用通用程序的插件脚本 (Parallel Computing Toolbox)。
创建通用集群配置文件
LSF 的示例设置
此示例显示如何设置您的集群配置文件以使用通用调度器接口。它展示了在客户端和集群机器之间没有共享文件系统的网络中 LSF 调度器的设置。下图说明了集群设置:
在这种类型的配置中,作业数据从运行 Windows 操作系统的客户端主机复制到运行 UNIX® 操作系统的集群上的主机(集群登录节点)。从集群登录节点,LSF bsub
命令将作业提交给调度器。当作业完成时,其输出将被复制回客户端主机。
需求
设置必须满足以下条件:
客户端节点和集群登录节点必须支持
ssh
和sftp
。集群登录节点必须能够调用
bsub
命令向 LSF 调度器提交作业。您可以在安装文件夹内nonshared
子文件夹中的README
文件中找到有关此内容的更多信息。
配置集群配置文件
按照以下步骤配置集群配置文件。您可以根据您的设置修改这些选项中的任何一个。
提取 LSF GitHub 存储库文件夹并将其移动到 MATLAB 客户端可以访问的位置。
在客户端主机上启动 MATLAB 会话。
从 MATLAB 桌面启动集群配置文件管理器。在主页选项卡的环境部分中,选择并行 > 创建和管理集群。
通过选择添加集群配置文件 > 其他第三方调度器,在集群配置文件管理器中创建一个新的配置文件。
在 R2024a 之前: 在“集群配置文件管理器”中,选择添加集群配置文件 > 泛型。
在列表中选择新的配置文件后,在管理配置文件部分中,选择重命名并将配置文件名称更改为
InstallTest
。按 Enter。在属性选项卡中,选择编辑并提供以下字段的设置:
将描述设置为用于测试安装。
将 JobStorageLocation 设置为您希望在客户端计算机上存储作业和任务数据的位置(而不是集群位置),例如
C:\Temp\joblocation
。您不能在运行不同版本的并行计算产品之间共享 JobStorageLocation。集群上的每个版本都必须有自己的 JobStorageLocation。
将 NumWorkers 设置为您想要测试安装的工作进程数量。
将 NumThreads 设置为每个工作进程上使用的线程数。
将 ClusterMatlabRoot 设置为在工作进程机器上运行 MATLAB 的安装位置。
如果集群使用在线许可,请将 RequiresOnlineLicensing 设置为 true。
如果将 RequiresOnlineLicensing 设置为
true
,请输入您的 LicenseNumber。将 OperatingSystem 设置为集群工作进程机器的操作系统。
将 HasSharedFilesystem 设置为
false
。此设置表示客户端节点和工作进程节点不能共享相同的数据位置。将 PluginScriptsLocation 设置为插件脚本的位置。
要连接到远程集群,请在 AdditionalProperties 表下选择添加。指定一个名为
ClusterHost
、值为cluster-host-name
、类型为String
的新属性。要在没有共享文件系统的远程集群上运行作业,请在 AdditionalProperties 表下选择添加。指定一个名为
RemoteJobStorageLocation
、值为/network/share/joblocation
、类型为String
的新属性。
点击完成以保存您的集群配置文件更改。对话框如下所示:
要检查配置文件是否有效,请按照以下步骤进行验证验证集群配置文件和安装。
验证集群配置文件和安装
您可以指定验证个人配置文件时要使用的工作进程数量。如果您没有在验证选项卡中指定工作进程的数量,那么验证进程将尝试使用与属性选项卡上的 NumWorkers 属性所指定的值一样多的工作进程。您可以指定较少数量的工作进程来验证您的配置,而无需占用整个集群。
从 MATLAB 桌面启动集群配置文件管理器。在主页选项卡的环境区域中,选择并行 > 创建和管理集群。
在列表中选择您的集群配置文件。
点击验证选项选项卡。
使用复选框选择所有测试或验证阶段的子集,并指定验证您的配置文件时要使用的工作进程数量。
点击验证。
验证结果选项选项卡显示输出。下图显示了通过所有验证测试的配置文件的结果。
注意
如果您的验证在任何阶段失败,请联系 MathWorks 安装支持团队。
如果验证通过,您将拥有一个可以在其他并行应用程序中使用的有效配置文件。您可以对配置文件进行适合您的应用程序的任何修改,例如 NumWorkersRange、AttachedFiles 或 AdditionalPaths。
要为其他用户保存您的配置文件,请选择该配置文件,然后点击导出。然后将您的配置文件保存到方便位置的文件中。运行集群配置文件管理器时,其他用户可以通过点击导入来导入您的配置文件。
要了解如何分发通用集群配置文件和插件脚本供其他人使用,请参阅分发通用集群配置文件和插件脚本。
特殊配置
根据您的集群架构,您可能需要在连接到通用调度器之前执行其他任务。
自定义 MPI 构建
您可以使用与 Parallel Computing Toolbox 提供的 MPI 构建不同的 MPI 构建。有关将此选项与通用调度器接口结合使用的详细信息,请参阅在 UNIX 系统上使用不同的 MPI 版本。
使用 Grid Engine 系列运行通信作业
Grid Engine 系列的示例脚本依赖于 matlab
并行环境的存在。并行环境(PE)是专为集群中的并行计算而设计的编程环境。要运行与 MATLABParallel Server 和 Grid Engine 系列集群通信的作业,您必须建立一个 matlab
并行环境。
创建并行环境. 以下步骤创建并行环境,然后使其在所有队列上均可运行。作为最佳实践,请在集群的头节点上执行以下步骤。某些步骤需要管理员访问权限。
从 GitHub 存储库下载 Grid Engine 的插件脚本:
或者,您可以从 MATLAB Central File Exchange 下载插件脚本。
修改
matlabpe.template
的内容以使用您想要的插槽数以及startmatlabpe.sh
和stopmatlabpe.sh
文件的正确位置。这些文件可以存在于所有主机均可访问的共享位置,或者您可以将它们复制到每台主机上的相同位置。您还可以更改其他值或向matlabpe.template
添加其他值以适合您的集群。有关详细信息,请参阅调度器附带的sge_pe
文档。添加
matlab
并行环境,使用 shell 命令如:qconf -Ap matlabpe.template
使
matlab
并行环境在所有队列上均可运行:此命令会打开一个文本编辑器供您进行更改。搜索行qconf -mq all.q
pe_list
并添加matlab
。确保您可以向 PE 提交一个简单的作业:
$ echo "hostname" | qsub -pe matlab 1
使用
qstat
检查作业是否正确运行,并检查输出文件是否包含运行该作业的主机的名称。输出文件的默认文件名为~/STDIN.o###
,其中###
是 Grid Engine 作业编号。
注意
如果将并行环境的名称更改为 matlab
以外的名称,也请更改提交函数。
在 Windows 群集上配置防火墙
如果您在集群节点上使用 Windows 防火墙,则可以将 MATLAB 添加为允许的程序。
在以下说明中,matlabroot
指的是 MATLAB 安装位置。
以具有管理权限的用户身份登录。
在 Windows® 命令提示符中执行以下脚本:
matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
如果您使用其他防火墙,则必须单独配置这些防火墙以将 MATLAB 添加为允许的程序。
相关主题
- 通用通用程序的插件脚本 (Parallel Computing Toolbox)
- 分发通用集群配置文件和插件脚本
- 在 UNIX 系统上使用不同的 MPI 版本
- 配置第三方调度器集群发现