Presentation is loading. Please wait.

Presentation is loading. Please wait.

高能物理实验规模作业管理系统的设计与实现

Similar presentations


Presentation on theme: "高能物理实验规模作业管理系统的设计与实现"— Presentation transcript:

1 高能物理实验规模作业管理系统的设计与实现
中国科学院高能物理研究所 高能物理实验规模作业管理系统的设计与实现 索兵 中国科学院高能物理研究所

2 主要内容 Content 1.系统介绍 现状、问题 3.重要部分实现 组件,支持 2.分析设计 系统功能,架构 4.工作小结 进度,展望

3 系统介绍 每个高能物理实验项目都要运行大规模实验作业, 如何提交并管理? 目前途径: 编写简单脚本, 或利用第三方软件.
中国科学院高能物理研究所 系统介绍 Background 每个高能物理实验项目都要运行大规模实验作业, 如何提交并管理? 目前途径: 编写简单脚本, 或利用第三方软件. 问题: 不便于管理和扩展. 方案:开发一个通用性的作业管理系统

4 系统介绍 名称: 支持多实验多后端的作业提交管理系统(JSUB). 定位: 介于用户和作业处理层之间, 前端系统. 要求: 通用, 易扩展.
Background 名称: 支持多实验多后端的作业提交管理系统(JSUB). 定位: 介于用户和作业处理层之间, 前端系统. 要求: 通用, 易扩展. BESIII CEPC JUNO 用户 JSUB(fronted) 后端作业处理层(backend) JSUB DIRAC Condor PBS

5 系统功能 Design UI Job monitoring Data management Job submission split
CLI Conf web Job submission Job monitoring Data management split monitoring status dataset generate register reschedule workflow down/up-load task statistics submit query

6 系统架构 Design CLI Conf Web Core function submit monitor data Plugin
Experiment Backend BESIII DIRAC workspace repository JUNO Condor Persistence metadata CEPC PBS

7 用户接口 原则: 改变少量参数便可实现不同需求(实验类型,步骤,后端类型,拆分类型,运行软件名等).
Implementation 原则: 改变少量参数便可实现不同需求(实验类型,步骤,后端类型,拆分类型,运行软件名等). 配置文件方式:YAML标记语言+Python反射机制. 示例: Experiment: Name: cepc JobSteps: - Type: Sim Executable: Mokka Splitter: Type: ByFile EventMaxPerJob: 20 SeedStart: auto InputData: ./stdhep.list Backend: Name: Dirac Site: - CLOUD.IHEP.cn - GRID.JINR.ru

8 作业提交模块 Implementation Backend Job conf 核心模块 读取作业参数文件 提交运行 splitter
动态加载 subjobs jobFactory confParser 生成的作业文件 Job script jobSteps workflow opts optsParser 数据传入 生成对象 磁盘存储

9 Step S S Step:表示具体实验步骤(模拟、重建、分析)
Implementation Step:表示具体实验步骤(模拟、重建、分析) optionsFile:对实验执行软件的环境配置和传递参数文件,对每个Step需指定optionsFile模板 StepNumList: 记录本次作业的Step号,遍历每个Step获得。 S Step OptionsParser S HAS-A number optionsParser parser() generateOpts() List IS-A StepNumList

10 OptionsParser 解析options模板+传入有效参数->生成optionsFile
Implementation 解析options模板+传入有效参数->生成optionsFile parse(): 解析optionsFile模板,存入对象属性,以便下一步生成optionsFile generateOpts(): 根据模板内容和某个实际子作业的参数,产生有效的optionsFile文件。

11 Splitter 将作业任务拆分为批量作业集(subjobs), 再分发到计算节点运行.
Implementation 将作业任务拆分为批量作业集(subjobs), 再分发到计算节点运行. 拆分方式: ByEvent, ByFiles, ByRun. split(): 分解作业,是生成subjobs的基础. 以往Splitter直接返回作业对象集, 即Splitter和实验”高度耦合”; 本系统Splitter只返回作业参数集, 不用关心是什么实验, 而由jobFactory生成作业对象. Param1 (不完整的subjob1) Param2 Splitter split Param3

12 jobFactory 生成作业对象. 作业对象可以只用字典{}表示,包含作业所有必要信息.
Implementation 生成作业对象. 作业对象可以只用字典{}表示,包含作业所有必要信息. createSubJobs(): 根据实验名,后端平台,拆分器,步骤索引产生子作业对象集. splitter experiment subjob1 createSubjobs() subjob2 jobfactory subjob3 backend stepNumList subjobs

13 workFlow 控制作业中工作流执行的步骤和流程,根据用户指定而变化.
中国科学院高能物理研究所 workFlow Implementation 控制作业中工作流执行的步骤和流程,根据用户指定而变化. 当前将各种工作流元操作独立出来,形成modules,根据jobSteps动态添加相应的module. workflow module module module module module module module ... ... module step1 step2 ...

14 支持后端 DIRAC DIRAC Nodes Nodes Nodes JSUB 1 状态:平台部署已久,正常运转中 思路:
Implementation 1 DIRAC 状态:平台部署已久,正常运转中 DIRAC Nodes Nodes Nodes JSUB Backend Interface 思路: 1.提供DIRAC接口类,和DIRAC客户端实现对接.. 2.JSUB生成的作业属性和DIRAC定义的作业属性相一致. 3.DIRAC会把作业分发到远端,必要时有上传下载,注册数据的操作(数据管理).

15 支持后端 Condor JSUB 2 状态:在两台虚拟机上搭建环境以作测试 思路:与DIRAC类似,但要生成Condor格式的作业描述文件.
Implementation 2 Condor JSUB Condor Interface 状态:在两台虚拟机上搭建环境以作测试 central manager+ work machine submit machine 思路:与DIRAC类似,但要生成Condor格式的作业描述文件.

16 支持更多案例以完善功能,同时对框架进一步优化
工作小结 Summary 提交,数据部分实现,监控待开发 支持更多案例以完善功能,同时对框架进一步优化 提供图形化界面 其他

17 开发环境 Attachment Python2.7 Eclipse3.8 +PyDev JDK1.7 Ubuntu14.04

18 Thanks for watching~!


Download ppt "高能物理实验规模作业管理系统的设计与实现"

Similar presentations


Ads by Google