主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

配置用于 Slurm、Torque、LSF、PBS、Grid Engine、HTCondor 或 AWS 批处理系统。

按照以下说明配置您的 MATLAB® Parallel Server™ 安装,以便与这些调度器的内置集群类型一起使用:

  • Slurm

  • LSF®

  • Torque

  • PBS Pro® 和 OpenPBS

  • Grid Engine

  • HTCondor

  • AWS® Batch

对于某些调度器,您可以使用内置集群类型或通用调度器接口创建集群配置文件。作为最佳做法,请尽可能使用内置集群类型。

当连接到没有内置集群类型的集群时,必须使用 Generic 集群配置文件。

要使用 Generic 集群类型配置集群,请参阅使用通用调度器接口进行配置

创建集群配置文件并验证安装

此过程验证并行计算产品是否在您的集群上正确安装和配置。

步骤 1:创建集群配置文件

在此步骤中,您将创建一个集群配置文件以供后续步骤使用。

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

  2. 通过选择添加集群配置文件 > Slurm(或 AWS BatchGrid EngineHTCondorLSFPBS ProTorque(视情况而定))在集群配置文件管理器中创建一个新的配置文件。

  3. 在列表中选择新的配置文件后,点击重命名并将配置文件名称编辑为 InstallTest。选择 Enter

  4. 在“属性”选项卡中,提供以下字段的设置:

    1. 描述字段设置为 For testing installation

    2. JobStorageLocation 字段设置为您想要在客户端计算机上存储作业和任务数据的位置,例如 C:\Temp\joblocation。如果该位置也可以从集群上的节点访问,则 MATLAB 工作单元可以直接对其进行读取和写入。否则,客户端使用 sftp 在集群之间复制作业和任务数据文件。

      注意

      不能对不同版本的并行计算产品使用相同的作业存储位置。集群上的每个版本都必须使用其自己的作业存储位置。

    3. 在许可限制范围内,将 NumWorkers 字段设置为您想要运行验证测试的工作单元数量。

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

    5. ClusterMatlabRoot 设置为在工作单元计算机上运行的 MATLAB 安装位置。

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

    7. 如果将 RequiresOnlineLicensing 设置为 true,则在 LicenseNumber 字段中输入您的许可证号。

    8. 如果您使用的是 LSF,请将 OperatingSystem 字段设置为您的工作单元计算机的操作系统。

    9. 设置 HasSharedFilesystem 字段来指示客户端和工作单元是否可以共享相同的 JobStorageLocation 属性值。

    10. 默认情况下,您的 MATLAB 安装附带可立即使用的调度器程序插件脚本。您可以将 PluginScriptsLocation 字段保留为 MathWorks® 提供的默认插件脚本。

      如果您想在集群配置文件中使用自定义插件脚本,您可以在 PluginScriptsLocation 字段中指定自定义插件脚本的位置。要了解如何下载和修改默认插件脚本,请参阅下载并自定义插件脚本

    11. 您可以向 AdditionalProperties 表添加其他属性,以自定义客户端如何使用内置调度器属性或自定义调度器属性与集群交互。有关每个调度器的内置附加属性的完整列表,请参阅 自定义示例插件脚本的行为

      例如,您可以使用这些附加属性来连接远程集群并在其上运行作业。

      • ClusterHost

        如果客户端无法访问调度器实用程序来直接将作业提交给第三方调度器,则插件脚本会创建一个到集群的 ssh 会话并通过该连接运行调度器命令。由于 MATLAB 运行调度器实用程序(例如 sbatchsqueue),因此您必须提供集群头节点或登录节点的主机名。在 AdditionalProperties 表下,选择添加。指定一个名为 ClusterHost 的新属性。对于值,指定集群头节点的主机名,例如 cluster-host-name。将类型设置为 String

      • RemoteJobStorageLocation

        如果客户端和工作单元不共享相同的作业存储位置,并且您将 HasSharedFilesystem 设置为 false,则必须提供头节点和集群工作单元可以访问的作业存储位置。客户端使用 sftp 在您的计算机和集群上的远程作业存储位置之间复制作业和任务文件。在 AdditionalProperties 表下,选择添加。指定一个名为 RemoteJobStorageLocation 的新属性。对于值,提供集群工作单元可以存储作业和任务数据的位置的路径,例如 /network/share/joblocation。将类型设置为 String

    12. 点击完成以保存您的集群配置文件。完成的集群配置文件应类似于这些图形之一。

       没有附加属性的集群配置文件

       具有附加属性的集群配置文件

步骤 2:验证集群配置文件

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

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

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

  3. 点击验证选项卡。

  4. 使用复选框选择全部或部分验证阶段,并指定验证您的配置文件时要使用的工作单元数量。

  5. 点击验证

客户端完成集群验证后,验证选项卡显示输出。

 该图显示了通过所有验证测试的 InstallTest 配置文件的结果。

注意

如果您的验证未通过,请联系 MathWorks 安装支持团队

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

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

下载并自定义插件脚本

Parallel Computing Toolbox™ 使用一组插件脚本来定义您的计算机如何与您的调度器通信。您的 MATLAB 安装附带可立即使用的调度器特定插件脚本。但是,您可以下载并修改插件脚本来配置 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 下载插件。

自定义插件脚本

您可以通过添加自己的自定义附加属性来自定义插件脚本。自定义附加属性允许您在向集群提交作业时修改这些属性的值,而无需重复修改插件脚本。

作为示例,考虑一个 Slurm 调度器。Slurm 的提交命令接受 –-nodelist 参量,允许您指定想要运行的节点。为 –-nodelist 创建一个附加属性允许您更改此参量的值,而无需修改插件脚本。要创建 –-nodelist 参量附加属性,请将此代码模式包含在插件脚本文件夹中的 independentSubmitFcn.mcommunicatingSubmitFcn.m 脚本中。

% Basic SLURM submit command
submitCommand = 'sbatch';
 
% Check if property is defined
if isprop(cluster.AdditionalProperties, 'NodeList')
    % Add appropriate argument and value to submit string
    submitCommand = [submitCommand ' --nodelist=' cluster.AdditionalProperties.NodeList];
end 

或者,要修改独立作业和通信作业的提交命令,请在 getCommonSubmitArgs 函数中包含上述代码模式。getCommonSubmitArgs 函数是示例插件脚本中包含的辅助函数,您可以使用它来修改两种类型作业的提交命令。您可以像内置附加属性一样向集群配置文件中的 AdditionalProperties 表中添加自定义附加属性。您还可以使用集群对象设置自定义附加属性。要了解更多信息,请参阅 设置其他属性

在远程集群或没有共享文件系统的集群上运行作业

如果 MATLAB 客户端无法直接向调度器提交作业,MATLAB 支持使用 ssh 协议向远程集群提交命令。要配置集群通过 ssh 提交调度器命令,在 AdditionalProperties 表中,将 ClusterHost 附加属性的值设置为 MATLAB 通过 ssh 连接到集群节点的名称。

如果客户端和集群节点没有共享文件系统,MATLAB 支持使用 sftp 在您的计算机和集群之间复制作业和任务文件。要配置您的集群以使用 sftp 在客户端和集群之间移动文件,请在 AdditionalProperties 表中,将 RemoteJobStorageLocation 附加属性的值设置为工作单元可以访问的集群上的文件夹。

下图说明了不与客户端共享文件系统的远程 Slurm 集群的 sshsftp 连接。在这种配置中,作业数据从运行 Windows 操作系统的客户端主机复制到运行 UNIX® 操作系统的集群上的主机(集群登录节点)。从集群登录节点,Slurm sbatch 命令将作业提交给调度器。当作业完成时,作业输出将被复制回客户端主机。

LSF 集群上配置 Windows 调度器

如果您的集群已设置为使用 mpiexec 和 smpd,并且您使用兼容的 MPI 实现库(如 matlabroot\toolbox\parallel\mpi\mpiLibConf.m 中所定义),则可以将 Parallel Computing Toolbox 软件与您现有的配置结合使用。但是,如果您的集群上没有 mpiexec 但您想使用它,那么您可以使用并行计算产品附带的 mpiexec 软件。

有关 mpiexec 和 smpd 的更多信息,请参阅 MPICH 主页。要查看该页面上的用户指南和安装说明,请选择文档 > 用户文档

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

要使用 mpiexec 分配作业,smpd 服务必须在用于运行 MATLAB 工作单元的所有节点上运行。

注意

smpd 可执行文件不支持从映射驱动器运行。使用本地安装或可执行文件的完整 UNC 路径名。Microsoft Microsoft® Windows Vista® 不支持网络共享安装中的 smpd 可执行文件,因此对于 Windows Vista 安装必须是本地的。

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

  2. 在 Windows® 命令提示符中输入以下内容来启动 smpd:

    matlabroot\bin\win64\smpd -install

    此命令安装该服务并启动它。只要该服务保持安装,它将在每次节点启动时启动。

  3. 如果这是一台工作单元计算机,并且您没有在其上运行安装程序来安装 MATLAB Parallel Server 软件(例如,如果您从共享安装运行 MATLAB Parallel Server 软件),请在 Windows 命令提示符中执行以下命令。

    matlabroot\bin\matlab.bat -install_vcrt
    

    此命令安装使用调度器运行作业所需的 Microsoft 运行时库。

  4. 如果您在集群节点上使用 Windows 防火墙,请在 Windows 命令提示符中执行以下命令。

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
    

    此命令将 MATLAB 添加为允许的程序。如果您正在使用其他防火墙,则必须对其进行配置以做出类似的调整。

  5. 以将在此节点上提交作业执行的用户身份登录。

  6. 通过输入以下内容注册此用户以使用 mpiexec:

    matlabroot\bin\win64\mpiexec -register
  7. 对将在此计算机上运行作业的所有用户重复步骤 5-6。

  8. 在集群中的所有 Windows 节点上重复所有这些步骤。

在服务器上配置 Windows 防火墙

如果您在集群节点上使用 Windows 防火墙,

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

  2. 在 Windows 命令提示符中执行以下操作。

    matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
    

    此命令将 MATLAB 添加为允许的程序。如果您正在使用其他防火墙,则必须对其进行类似的配置。

另请参阅

主题