E-HPC提供了调度器插件作为平台的外扩组件,在E-HPC现有调度器类型或版本不满足当前业务时,您可以通过该插件构建自定义调度器并接入E-HPC平台的能力。本文为您介绍E-HPC集群调度器插件的概念及组成。
什么是调度器插件
E-HPC作为一款PaaS平台,集成了常用的开源调度器来提供平台级服务。当您的业务需要迁移到云上时,往往需要将云下的调度器集成至云上,但因HPC行业调度器众多,且不同调度器有多种定制版本,会出现E-HPC内置调度器无法满足的情况。
因此,E-HPC提供了调度器插件作为平台的外扩组件,您可以使用E-HPC提供的调度器插件接入自定义调度器,避免受到调度器类型或版本的限制。例如,在EDA业务场景下,通常情况使用的调度器为商用调度器,但E-HPC平台无法提供商用License供您安装,此时,您可以自行安装调度器并通过调度器插件接入E-HPC平台的能力。
调度器插件为您提供了插件模版及配置文件,并将功能定义进行模块化分拆,您可以根据自身业务需求及调度器特征进行任意方式的自定义实现。在构建出自定义调度器插件之后,即可在E-HPC控制台创建带有插件的集群,无缝衔接至E-HPC以提供对应的节点管理、作业管理、自动伸缩等能力。
插件使用流程
以在E-HPC控制台提交作业为例,为您展示调度器插件在集群操作中的具体作用,插件示例流程图及说明如下:
登录E-HPC控制台,选择指定集群并提交作业。
E-HPC云管控接收到控制台的请求,向指定集群下发作业命令。
集群调度器节点识别插件类型,下载调度器插件到本地路径,并解析插件配置文件JobSubmit功能项是否打开。若JobSubmit=false,则返回插件功能不支持的错误,反之则调用具体插件功能并实现。
调用插件中的作业提交实现代码,例如pbs会调用qsub相关命令、lsf会调用bsub相关命令。作业提交执行完成,则返回执行结果。
调度器插件组成
调度器插件主要分为以下两个组成部分,目录结构如下图所示:目录结构说明如下:
ehpc_custom.conf:插件配置文件,记录插件包含的调度器信息及调度器可接入的功能项。更多信息,请参见调度器插件配置文件。
*.py:根据调度器模版,对自定义调度器进行具体功能实现的脚本文件。该文件需要位于/<调度器名>/<调度器版本号>的二级目录下,例如/LSF/10.1.0。
调度器插件配置文件
插件配置文件定义了调度器信息及调度器可接入功能项,详细功能定义如下所示:其中,[Scheduler]表示调度器信息,包含了调度器名称及版本号。[SchedulerCapability]表示调度器可接入功能项,包含了众多可接入E-HPC的调度器功能,等号左侧表示调度器功能名称,等号右侧表示是否打开该功能。功能项具体说明如下:
调度服务检测(三星):通过检测节点调度服务设置集群在控制台展示的节点状态。
节点操作(两星):通过节点操作可以在控制台实现手动扩容或缩容。
资源信息获取(两星):通过节点资源信息获取到正确资源在控制台展示。
节点状态信息(一星):通过获取不同节点状态在控制台实现自动伸缩能力。
作业操作(一星):通过作业操作在控制台实现提交作业、查询作业等能力。
队列操作(一星):通过队列操作在控制台实现增加队列、查询队列等能力。
星级越高,代表该功能越基础。并且,调度服务检测作为最基础的功能,只有当该功能项设置为true时,其他功能项可用。