主要内容

设置MATLAB用于自动调整大小的作业调度器集群

你可以自定义你的MATLAB®作业调度器(MJS)集群自动调整大小。默认情况下,MJS集群没有启用调整大小功能。这意味着MJS会立即拒绝您提交给集群的任何工作,如果需要集群中超过当前工人数量的工作。自动调整大小,也称为自动伸缩,允许您向集群提交这样的工作,并使集群中的工作人员数量随着提交的工作量自动变化。当需要做的工作更多时,集群会增长(扩大),当需要做的工作更少时,集群会缩小(缩小)。这允许您更有效地使用计算资源,并可以节省成本。

要配置你的MJS集群自动调整大小,你需要:

  1. 中的最大工作数mjs_def文件。

  2. 启动MJS集群。

  3. 设置一个自动调整大小的过程。

设置最大工作数

要使MJS集群可调整大小,您需要通过编辑mjs_def文件如下:

  1. 打开文件mjs_def.sh(在Linux上®)或mjs_def.bat(在Windows上®)位于matlabroot /工具箱/并行/ bin,在那里matlabroot是您的MATLAB安装目录。

  2. 取消一行或两行的注释# MAX_LINUX_WORKERS =而且# MAX_WINDOWS_WORKERS =并将它们设置为所需的值。这些变量分别定义了可以调整集群大小的Linux和Windows工作者的最大数量。

可调整大小的MJS集群允许队列中的作业需要比集群中当前工人数量更多的工人,最多不超过MAX_LINUX_WORKERS和MAX_WINDOWS_WORKERS中指定的数量。其他工作立即取消。

请注意

若要更改集群启动后Linux和Windows worker的最大数量,请使用调整脚本位于matlabroot /工具箱/并行/ bin运行调整更新命令。例如:

% cd matlab/toolbox/parallel/bin % ./resize update -jobmanager myJobManager -maxlinuxworkers 4 -maxwindowsworkers 8 ./

开始mj集群

方法中定义的选项创建集群mjs_def文件,在编辑和保存该文件后启动MJS集群。有关如何安装、配置和启动MJS集群的更多信息,请参见为MATLAB作业调度程序和网络许可证管理器安装和配置MATLAB并行服务器

设置自动调整过程

为了让一个可调整大小的MJS集群自动改变大小,你必须设置一个后台进程来定期调整集群的大小。这个后台过程的具体实现取决于许多因素,但你可以遵循以下一般的推荐步骤:

  1. 确定所需的集群大小。可调整大小的MJS集群的期望大小被报告为每个操作系统的工作人员总数,因此包括集群中已经存在的所有繁忙工作人员和一些空闲工作人员。所需的大小根据正在运行的作业和队列中的作业而变化。使用调整脚本位于matlabroot /工具箱/并行/ bin运行调整状态命令:

    % CD matlab/toolbox/parallel/bin % ./调整大小状态
    调整状态以上命令以JSON格式返回关于可调整大小的集群的信息:
    {"jobManagers": [{"name": "myJobManager", "host": "myhostname", "desiredWorkers": {"linux": 1, "windows": 0}, "maxWorkers": {"linux": 4, "windows": 8,}, "workers": [{"name": "worker_1", "host": "myhostname", "operatingSystem": "linux", "state": "busy", "secondsIdle": 0}, {"name": "worker_2", "host": "myhostname", "operatingSystem": "linux", "state": "idle", "secondsIdle": 60}]}]}}}}
    解析JSON输出以提取desiredWorkers表示MJS集群所需的Linux和Windows工作人员数量的值。

  2. 将所需的工人数量与集群中的工人数量进行比较,以决定是否需要启动或停止工人。使用工人数组的输出调整状态命令检查集群中的worker。为了确保队列中的作业最终运行,您必须启动足够多的工人,以匹配或超过所需的工人数量。您可以选择停止超过所需工人数量的空闲工人。

    请注意

    如果在您的环境中启动工作需要很长时间,那么您可能希望等待多余的工作空闲一段时间后再停止它们。这种方法比立即停止多余的闲置工人更有效,如果他们在闲置后不久就需要再次使用。要检查一个工人闲置了多长时间,请检查secondsIdle对工人的价值。

  3. 必要时启动或停止工人。要做到这一点,请使用startworker而且停工实用程序脚本。为避免在停止工作时中断任何工作,建议您使用-onidle国旗的停工命令。

另请参阅

||

相关的话题

Baidu
map