Main Content

使用通用调度器接口进行配置

通用调度器接口提供了灵活性,可以配置 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。有关详细信息,请参阅自定义示例插件脚本的行为

  • 如果其中一个存储库不支持您的调度器或集群配置,建议您修改其中一个包的脚本。有关如何为通用调度器编写一组插件脚本的更多信息,请参阅Plugin Scripts for Generic Schedulers (Parallel Computing Toolbox)

创建通用集群配置文件

LSF 的示例设置

此示例显示如何设置您的集群配置文件以使用通用调度器接口。它展示了在客户端和集群机器之间没有共享文件系统的网络中 LSF 调度器的设置。下图说明了集群设置:

Workflow that shows the operation of an LSF scheduler

在这种类型的配置中,作业数据从运行 Windows 操作系统的客户端主机复制到运行 UNIX® 操作系统的集群上的主机(集群登录节点)。从集群登录节点,LSF bsub 命令将作业提交给调度器。当作业完成时,其输出将被复制回客户端主机。

需求

设置必须满足以下条件:

  • 客户端节点和集群登录节点必须支持 sshsftp

  • 集群登录节点必须能够调用 bsub 命令向 LSF 调度器提交作业。您可以在安装文件夹内 nonshared 子文件夹中的 README 文件中找到有关此内容的更多信息。

配置集群配置文件

按照以下步骤配置集群配置文件。您可以根据您的设置修改这些选项中的任何一个。

  1. 提取 LSF GitHub 存储库文件夹并将其移动到 MATLAB 客户端可以访问的位置。

  2. 在客户端主机上启动 MATLAB 会话。

  3. 从 MATLAB 桌面启动集群配置文件管理器。在主页选项卡的环境部分中,选择并行 > 创建和管理集群

  4. 通过选择添加集群配置文件 > 其他第三方调度器,在集群配置文件管理器中创建一个新的配置文件。

    在 R2024a 之前: 在“集群配置文件管理器”中,选择添加集群配置文件 > 泛型

  5. 在列表中选择新的配置文件后,在管理配置文件部分中,选择重命名并将配置文件名称更改为 InstallTest。按 Enter

  6. 属性选项卡中,选择编辑并提供以下字段的设置:

    1. 描述设置为用于测试安装

    2. JobStorageLocation 设置为您希望在客户端计算机上存储作业和任务数据的位置(而不是集群位置),例如 C:\Temp\joblocation

      您不能在运行不同版本的并行计算产品之间共享 JobStorageLocation。集群上的每个版本都必须有自己的 JobStorageLocation

    3. NumWorkers 设置为您想要测试安装的工作进程数量。

    4. NumThreads 设置为每个工作进程上使用的线程数。

    5. ClusterMatlabRoot 设置为在工作进程机器上运行 MATLAB 的安装位置。

    6. 如果集群使用在线许可,请将 RequiresOnlineLicensing 设置为 true。

    7. 如果将 RequiresOnlineLicensing 设置为 true,请输入您的 LicenseNumber

    8. OperatingSystem 设置为集群工作进程机器的操作系统。

    9. HasSharedFilesystem 设置为 false。此设置表示客户端节点和工作进程节点不能共享相同的数据位置。

    10. PluginScriptsLocation 设置为插件脚本的位置。

    11. 要连接到远程集群,请在 AdditionalProperties 表下选择添加。指定一个名为 ClusterHost、值为 cluster-host-name、类型为 String 的新属性。

    12. 要在没有共享文件系统的远程集群上运行作业,请在 AdditionalProperties 表下选择添加。指定一个名为 RemoteJobStorageLocation、值为 /network/share/joblocation、类型为 String 的新属性。

  7. 点击完成以保存您的集群配置文件更改。对话框如下所示:

    Cluster Profile Manager with the InstallTest cluster profile selected. The properties of the InstallTest profile shown.

要检查配置文件是否有效,请按照以下步骤进行验证验证集群配置文件和安装

验证集群配置文件和安装

您可以指定验证个人配置文件时要使用的工作进程数量。如果您没有在验证选项卡中指定工作进程的数量,那么验证进程将尝试使用与属性选项卡上的 NumWorkers 属性所指定的值一样多的工作进程。您可以指定较少数量的工作进程来验证您的配置,而无需占用整个集群。

  1. 从 MATLAB 桌面启动集群配置文件管理器。在主页选项卡的环境区域中,选择并行 > 创建和管理集群

  2. 在列表中选择您的集群配置文件。

  3. 点击验证选项选项卡。

  4. 使用复选框选择所有测试或验证阶段的子集,并指定验证您的配置文件时要使用的工作进程数量。

  5. 点击验证

验证结果选项选项卡显示输出。下图显示了通过所有验证测试的配置文件的结果。

Cluster Profile Manager with the InstallTest cluster profile selected. The validation results for the InstallTest cluster are shown in the right pane.

注意

如果您的验证在任何阶段失败,请联系 MathWorks 安装支持团队

如果验证通过,您将拥有一个可以在其他并行应用程序中使用的有效配置文件。您可以对配置文件进行适合您的应用程序的任何修改,例如 NumWorkersRangeAttachedFilesAdditionalPaths

要为其他用户保存您的配置文件,请选择该配置文件,然后点击导出。然后将您的配置文件保存到方便位置的文件中。运行集群配置文件管理器时,其他用户可以通过点击导入来导入您的配置文件。

要了解如何分发通用集群配置文件和插件脚本供其他人使用,请参阅分发通用集群配置文件和插件脚本

特殊配置

根据您的集群架构,您可能需要在连接到通用调度器之前执行其他任务。

自定义 MPI 构建

您可以使用与 Parallel Computing Toolbox 提供的 MPI 构建不同的 MPI 构建。有关将此选项与通用调度器接口结合使用的详细信息,请参阅在 UNIX 系统上使用不同的 MPI 版本

使用 Grid Engine 系列运行通信作业

Grid Engine 系列的示例脚本依赖于 matlab 并行环境的存在。并行环境(PE)是专为集群中的并行计算而设计的编程环境。要运行与 MATLABParallel Server 和 Grid Engine 系列集群通信的作业,您必须建立一个 matlab 并行环境。

创建并行环境.  以下步骤创建并行环境,然后使其在所有队列上均可运行。作为最佳实践,请在集群的头节点上执行以下步骤。某些步骤需要管理员访问权限。

  1. 从 GitHub 存储库下载 Grid Engine 的插件脚本:

    或者,您可以从 MATLAB Central File Exchange 下载插件脚本。

  2. 修改 matlabpe.template 的内容以使用您想要的插槽数以及 startmatlabpe.shstopmatlabpe.sh 文件的正确位置。这些文件可以存在于所有主机均可访问的共享位置,或者您可以将它们复制到每台主机上的相同位置。您还可以更改其他值或向 matlabpe.template 添加其他值以适合您的集群。有关详细信息,请参阅调度器附带的 sge_pe 文档。

  3. 添加 matlab 并行环境,使用 shell 命令如:

    qconf -Ap matlabpe.template

  4. 使 matlab 并行环境在所有队列上均可运行:

    qconf -mq all.q
    此命令会打开一个文本编辑器供您进行更改。搜索行 pe_list 并添加 matlab

  5. 确保您可以向 PE 提交一个简单的作业:

    $ echo "hostname" | qsub -pe matlab 1

  6. 使用 qstat 检查作业是否正确运行,并检查输出文件是否包含运行该作业的主机的名称。输出文件的默认文件名为 ~/STDIN.o###,其中 ### 是 Grid Engine 作业编号。

注意

如果将并行环境的名称更改为 matlab 以外的名称,也请更改提交函数。

在 Windows 群集上配置防火墙

如果您在集群节点上使用 Windows 防火墙,则可以将 MATLAB 添加为允许的程序。

在以下说明中,matlabroot 指的是 MATLAB 安装位置。

  1. 以具有管理权限的用户身份登录。

  2. 在 Windows® 命令提示符中执行以下脚本:

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat

如果您使用其他防火墙,则必须单独配置这些防火墙以将 MATLAB 添加为允许的程序。

相关主题