配置 MATLAB 作业调度器集成的高级选项
按照以下说明为 MATLAB® 作业调度器集群配置高级选项。
在以下说明中,matlabroot 指的是您安装的 MATLAB Parallel Server™ 软件的位置。如果在随后的说明中看到此术语的使用,请将其替换为您位置的路径。
设置 Windows 集群主机
如果这是在 Windows® 计算机集群上首次安装 MATLAB Parallel Server,则需要为这些主机配置作业通信。
注意
如果您没有 Windows 集群,或者已经在 Windows 集群上安装了以前的版本 MATLAB Parallel Server,则可以跳过此步骤。
在集群节点上配置 Windows 防火墙
如果您在集群节点上使用 Windows 防火墙,
以具有管理员特权的用户身份登录。
在 Windows 命令提示符中执行以下操作。
matlabroot\toolbox\parallel\bin\addMatlabToWindowsFirewall.bat
此命令将 MATLAB 添加为允许的程序。如果您正在使用其他防火墙,则必须对其进行类似的配置。
在服务器上打开所需端口
mjs 服务使用所需的端口数量,从 mjs_def 文件中 BASE_PORT 参数定义的值开始。默认情况下,BASE_PORT 为 27350。
如果您使用的主机总共运行了 nJ 作业管理器和 nW 工作单元,则 mjs 服务将保留总共 7+2*nJ+4*nW 连续端口供自己使用。所有要一起工作的作业管理器和工作单元(即使是位于不同主机上的作业管理器和作业执行器)都必须使用相同的基本端口。否则,作业管理器和工作单元将无法相互联系。此外,MPI 通信发生在从 BASE_PORT+1000 开始的端口上,并使用 2*nW 连续端口。
例如,如果您使用具有 1 个作业管理器和 16 个工作单元的主机,那么您需要打开以下范围的端口:
27350 – 27422用于mjs服务。28350 – 28382用于 MPI 通信。
您可以在 mjs_def 文件中更改 BASE_PORT 参数的默认值。您必须在集群中的所有主机上的 mjs_def 文件中为 BASE_PORT 参数使用相同的值。要更改 BASE_PORT 参数的值,请在安装 mjs 服务并启动 MATLAB 作业调度器之前,编辑集群主机上的 mjs_def 文件。您可以在以下位置找到 mjs_def 文件:
Windows 操作系统上的
matlabroot\toolbox\parallel\bin\mjs_def.batLinux® 操作系统上的
matlabroot/toolbox/parallel/bin/mjs_def.sh
要了解有关 mjs_def 文件中参数的更多信息,请参阅定义 MATLAB 作业调度器启动参数。
要从 MATLAB 连接到具有非默认 BASE_PORT 值的集群,必须将 BASE_PORT 的值附加到 MATLAB 作业调度器集群配置文件中的 Host 属性。您必须以 Hostname:BASE_PORT 形式执行此操作,例如 myMJSHost:44001。
增加堆内存
MATLAB Parallel Server 支持最多具有 10,000 个工作单元的 MATLAB 作业调度器集群。当您扩大集群中工作单元或任务的数量时,您必须增加作业管理器可用的堆内存。
为此,您必须在安装 mjs 服务并启动 MATLAB 作业调度器之前,编辑集群节点上的 mjs_def 文件。您可以在以下位置找到此文件:
Windows 操作系统上的
matlabroot\toolbox\parallel\bin\mjs_def.batLinux 操作系统上的
matlabroot/toolbox/parallel/bin/mjs_def.sh
要了解有关 mjs_def 文件中参数的更多信息,请参阅定义 MATLAB 作业调度器启动参数。
在 mjs_def 文件中,根据以下建议在 mjs_def 文件中设置 JOB_MANAGER_MAXIMUM_MEMORY 参数。
使用最小值
1000m(1000 MiB)。每 1000 个工作单元使用
1000m。预计在峰值负载下排队的每 100,000 个任务增加
1000m。
例如,对于具有 10,000 个工作单元且峰值队列大小为 400,000 个任务的集群,将 JOB_MANAGER_MAXIMUM_MEMORY 设置为 14000m。
更新 mjs_def 文件后,必须重新启动 mjs 服务、作业管理器和工作单元。