使用通用调度器接口进行配置
通用调度器接口提供了灵活性,可以配置 MATLAB® 客户端、MATLAB 工作单元和第三方调度器的交互。当您的调度器没有内置集群类型时,请使用通用调度器接口。
对于某些调度器,您可以使用内置集群类型或通用调度器接口创建集群配置文件。作为最佳做法,请尽可能使用内置集群类型。
要使用内置集群类型配置集群,请参阅配置用于 Slurm、Torque、LSF、PBS、Grid Engine、HTCondor 或 AWS 批处理系统。,配置 Hadoop 集群,或者配置 Microsoft 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 存储库。例如,要使用 Slurm 克隆 MATLAB Parallel Server 的 Parallel Computing Toolbox 插件的存储库,请使用:
git clone https://github.com/mathworks/matlab-parallel-slurm-plugin
在浏览器中访问 GitHub 页面并将插件下载为 ZIP 存档。
或者,要从 MATLAB 附加功能资源管理器安装附加功能,请转到主页选项卡,在环境部分中点击附加功能图标。在附加功能资源管理器中,搜索附加功能并安装它。
您还可以从 MATLAB Central™ File Exchange 下载插件。
如果 MATLAB 客户端无法直接向调度器提交作业,MATLAB 支持使用 ssh
协议向远程集群提交命令。
如果客户端和集群节点没有共享文件系统,MATLAB 支持使用 sftp
(SSH 文件传输协议)在您的计算机和集群之间复制作业和任务文件。
修改示例脚本
您可以设置其他属性来自定义客户端与集群的交互方式,而无需修改插件脚本。有关详细信息,请参阅自定义示例插件脚本的行为。
如果您的调度器或集群配置未完全由某个存储库支持,您可以修改其中一个包的脚本以满足您的要求。有关如何为通用调度器编写一组插件脚本的更多信息,请参阅通用通用程序的插件脚本。
创建通用集群配置文件
类似 Slurm 的通用集群的示例设置
此示例显示如何设置您的集群配置文件以使用通用调度器接口。它展示了在客户端和集群计算机之间没有共享文件系统的网络中如何设置类似 Slurm 的调度器。下图说明了集群设置:
在这种配置中,作业数据从运行 Windows 操作系统的客户端主机复制到运行 UNIX® 操作系统的集群上的主机(集群登录节点)。从集群登录节点,Slurm sbatch
命令将作业提交给调度器。当作业完成时,作业输出将被复制回客户端主机。
要求
设置必须满足以下条件:
客户端节点和集群登录节点必须支持
ssh
和sftp
。集群登录节点必须能够调用
sbatch
命令向 Slurm 调度器提交作业。
配置通用集群配置文件
按照以下步骤配置集群配置文件。您可以根据您的设置修改这些选项中的任何一个。
提取 Slurm GitHub 存储库文件夹并将其移动到 MATLAB 客户端可以访问的位置。
在客户端主机上启动 MATLAB 会话。
从 MATLAB 桌面启动集群配置文件管理器。在主页选项卡的环境部分中,选择并行 > 创建和管理集群。
通过选择添加集群配置文件 > 其他第三方调度器,在集群配置文件管理器中创建一个新的配置文件。
在 R2024a 之前的版本中: 在“集群配置文件管理器”中,选择添加集群配置文件 > 泛型。
在列表中选择新的配置文件后,在管理配置文件部分中,选择重命名并将配置文件名称更改为
InstallTest
。按 Enter 键。在属性选项卡中,选择编辑并提供以下字段的设置:
将描述字段设置为用于测试安装。
将 JobStorageLocation 字段设置为您想要在客户端计算机上存储作业和任务数据的位置,例如
C:\Temp\joblocation
。如果该位置也可以从集群上的节点访问,则 MATLAB 工作单元可以直接对其进行读取和写入。否则,客户端使用sftp
在集群之间复制作业和任务数据文件。不能对不同版本的并行计算产品使用相同的作业存储位置。集群上的每个版本都必须使用其自己的作业存储位置。
将 NumWorkers 设置为您想要测试安装的工作单元数量。
将 NumThreads 设置为每个工作单元上使用的线程数。
将 ClusterMatlabRoot 设置为在工作单元计算机上运行 MATLAB 的安装位置。
如果集群使用在线许可,请将 RequiresOnlineLicensing 设置为 true。
如果将 RequiresOnlineLicensing 设置为
true
,请输入您的 LicenseNumber。将 OperatingSystem 设置为集群工作单元计算机的操作系统。
将 HasSharedFilesystem 设置为
false
。此设置表示客户端端节点和工作单元节点不能共享相同的JobStorageLocation
属性值。将 PluginScriptsLocation 设置为修改后的插件脚本的位置。
要连接到远程集群,请在 AdditionalProperties 表下选择添加。指定一个名为
ClusterHost
、值为cluster-host-name
、类型为String
的新属性。要在没有共享文件系统的远程集群上运行作业,请在 AdditionalProperties 表下选择添加。指定一个名为
RemoteJobStorageLocation
、值为/network/share/joblocation
、类型为String
的新属性。
点击完成以保存您的集群配置文件更改。对话框如下所示:
要检查配置文件是否有效,请按照以下步骤进行验证验证集群配置文件和安装。
验证集群配置文件和安装
您可以指定验证个人配置文件时要使用的工作单元数量。如果您没有在验证选项卡中指定工作单元的数量,那么验证进程将尝试使用与属性选项卡上的 NumWorkers 属性所指定的值一样多的工作单元。您可以指定较少数量的工作单元来验证您的配置,而无需占用整个集群。
从 MATLAB 桌面启动集群配置文件管理器。在主页选项卡的环境区域中,选择并行 > 创建和管理集群。
在列表中选择您的集群配置文件。
点击验证选项卡。
使用复选框选择所有测试或验证阶段的子集,并指定验证配置文件时要使用的工作单元数量。
点击验证。
客户端完成集群验证后,验证选项卡显示输出。下图显示了通过所有验证测试的配置文件的结果。
注意
如果您的验证在任何阶段失败,请联系 MathWorks 安装支持团队。
如果验证通过,您将拥有一个可以在其他并行应用程序中使用的有效配置文件。您可以对配置文件进行适合您的应用程序的任何修改,例如 NumWorkersRange、AttachedFiles 或 AdditionalPaths。
要为其他用户保存您的配置文件,请选择该配置文件,然后点击导出。然后将您的配置文件保存到方便位置的文件中。运行集群配置文件管理器时,其他用户可以通过点击导入来导入您的配置文件。
要了解如何分发通用集群配置文件和插件脚本供其他人使用,请参阅分发通用集群配置文件和插件脚本。
您可以通过创建配置文件然后将该文件分发给集群用户,让 MATLAB 客户端使用 Parallel Computing Toolbox“发现集群”功能来定位您的集群。有关详细信息,请参阅配置第三方调度器集群发现。
特殊配置
根据您的集群架构,您可能需要在连接到通用调度器之前执行其他任务。
自定义 MPI 编译
您可以使用与 Parallel Computing Toolbox 不同的 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 添加为允许的程序。