配置 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.bat
Linux® 操作系统上的
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.bat
Linux 操作系统上的
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
服务、作业管理器和工作单元。