任务模板
“应用中心”的核心价值在于将复杂的调度器命令行操 作或者脚本编写操作简化为图形界面操作,使得新用户能够以尽快的速度开始使用HPC平台,降低使用门槛。因此任务管理提供了灵活的任务模板自定义能力,高级用户/管理员设定模板后,普通用户可以通过任务向导完成HPC任务的提交和管理。
权限
- 管理员:管理员不论是否设置应用中心的权限,可以管理平台中所有应用的权限,且拥有分配普通用户创建应用的权限。管理员拥有平台中所有应用的创建权限,管理员分配普通用户使用应用的权限。
- 普通用户:为普通用户设置应用读权限和应用写权限后,普通用户就会拥有创建应用的权限。普通用户仅能管理自己创建的应用。
应用中心的两种运行模式
- 基于CWL的任务模式
这是Fastone软件栈一直提供的任务模式,通过 Common Workflow Language(CWL)语言定义任务的运行流程。此模式中,基于 cwl 的任务模板的编写需要在Fastone支持团队的帮助下完成。
适用场景:生命科学领域的复杂工作流任务,云端随任务创建/销毁集群的任务。
- 直接面向调度器的任务模式
此模式在 24.03 版本中首次推出。目的是提供更符合CAE等传统HPC场景下的用户使用习惯的任务模式。这个模式简化了任务的调度过程,适用于非工作流任务或关心调度器任务信息的场景。在这个模式 中,任务模板的编写可以参考本文档完成。
适用场景: CAE等传统HPC领域的单job任务,关心调度器相关状态的任务。
两种运行模式的功能对比如下:
基于 CWL 的任务模式 | 直接面向调度器的任务模式 | |
---|---|---|
任务描述语言 | CWL | Fastone自定义Yaml格式 |
任务调度流程 | 基于工作流的二级调度 | 直接调度至调度器的作业 |
随任务创建动态集群 | 支持(仅限FCC-E资源池) | 不支持 |
任务状态显示 | 展示CWL工作流状态 | 展示调度器主任务状态 |
多步骤工作流支持 | 在CWL层面支持定义多步骤任务 | 支持在任务脚本中定义多步骤工作流 |
shell脚本模板 | 无直接支持 | 原生支持 |
参数联动 | 不支持 | 支持联动调度器相关指标(CPU/分区等参数) |
任务模板语法
注:此语法仅限“直接面向调度器的任务模式”下使用
parameters: # 参数列表, 可能有多个
- name: param1 # 取值范围: [a-zA-Z0-9_]
display: 显示名称 # 界面显示用的名称
description: 描述 # 用于生成帮助文档
type: 类型 # INT | FLOAT | PATH | ENUM | STRING | BOOL | INT_ARRAY | FLOAT_ARRAY | PATH_ARRAY | ENUM_ARRAY | STRING_ARRAY | BOOL_ARRAY | SYSTEM
required: bool | expr # 该参数是否为必填参数, 默认是false
usage: 用途 # SCRIPT | SCHEDULER, 默认为SCRIPT
schedPrefix: 前缀 # 如果是SCHEDULER类型, 则会在前缀后面加上参数值
visibility: true | false | expr # 是否可见, 默认为true, expr 见下
option:
enum: # 当type为enum时, 用于定义可选值
- value: 值 # 实际值
display: 描述 # 展示用
path: # 当type为file时, 用于定义文件类型
pattern: 过滤 # 文件名过滤, 缺省时不过滤
directory: bool # true | false, 是否为目录
float:
min: 最小值 | expr # 不存在时不限制
max: 最大值 | expr # 不存在时不限制
int:
min: 最小值 | expr # 不存在时不限制
max: 最大值 | expr # 不存在时不限制
string:
pattern: regex # 过滤用正则表达
outputs: # 用于展示的输出
- path: xxx/xxx/output.file # 文件名过滤, 缺省时不过滤
type: 类型 # TEXT | IMAGE | VIDEO | AUDIO | FILE
script: |-
#!/bin/bash
# 脚本内容
echo {{ param1 }} # 引用参数param1
我们也提供了若干常用应用的任务模板,作为示例供参考使用。
创建应用
创建应用的流程是:CWL流程工具 -> 安装应用 -> 应用运行脚本 -> 页面执行任务。点击“创建”按钮,即可进入应用的添加流程,如下图所示。
访问控制
管理员为普通用户分配应用使用权限
举例:为普通用户【test】分配新建【vina】应用的权限,前提是普通用户【test】拥有新建任务的权限
步骤一:点击访问控制
步骤二:弹出权限设置对话框,输入需要分配权限的用户名【test】,点击回车。将读写权限都勾选上,点击确定,为普通用户分配了新建【vina】应用的权限
步骤三:查看【test】用户,可以新建【vina】应用