CN107203421A - 一种云计算环境中自适应的组合工作流方法 - Google Patents
一种云计算环境中自适应的组合工作流方法 Download PDFInfo
- Publication number
- CN107203421A CN107203421A CN201610743105.5A CN201610743105A CN107203421A CN 107203421 A CN107203421 A CN 107203421A CN 201610743105 A CN201610743105 A CN 201610743105A CN 107203421 A CN107203421 A CN 107203421A
- Authority
- CN
- China
- Prior art keywords
- computing
- computing unit
- unit
- sub
- work
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种云计算环境中自适应的组合工作流方法,包括以下步骤:建立组合服务对象的计划工作流和规则构造类;将初始运行实例通过规则构造器,转换为初始计算单元,所述计算单元由实际计算实例,返回状态函数和结合状态函数组成;运行初始计算单元,初始计算单元的输出带有新的规则构造器和状态信息的子计算单元;与日志库通信同步后根据计算环境变化,更新子计算单元内的上下文信息;子计算单元根据规则构造器和状态信息执行计算实例,执行结束后,子计算单元生成下一代的计算单元。本发明中方法的主要优点有几个方面:1.提升工作流运行的鲁棒性。2.降低用户的工作量。3.能够同时运行在多个计算资源内,提高计算资源利用率。
Description
技术领域
本发明涉及高性能计算领域,具体涉及一种云计算环境中自适应的组合工作流方法。
背景技术
随着互联网和云计算等技术的迅速发展,网络上汇集的计算资源越来越多,利用这些广域分布的计算资源构建并执行科学计算工作流,已成为当前学术界和工业界关注的热点问题。在实际应用中,一般业务服务的分工越来越细,一个复杂的工作任务往往需要多个小任务按照一定的次序组合完成。而这些任务可能运行在不同系统平台上,这些计算平台具有不同的控制访问、事务处理等自洽策略,其服务的状态和性质也在不断动态变化;同时,计算应用的多样性和复杂性的增加,导致复杂的工作流对系统可靠性,可用性等要求也越来越高。
这种动态复杂的计算运行环境,使得普通的工作流服务的执行具有不确定性,限制了科学计算工作流的实际可用性。为满足用户和计算控制机制的需求和保证科学计算工作流的正确执行,提高系统运行鲁棒性,迫切需要能根据实际运行状态自动实现动态调度的工作流方法。
工作流技术是指:把多个工作活动按正确的结构组合起来,使用工作流语言定义使用这些工作活动的流程。具体包括制定一组计算操作的执行顺序,确定服务共享的数据、业务流程涉及的伙伴和各伙伴在工作流中的角色,以及多个活动如何参与等。工作流语言主要定义基本的计算活动和结构控制活动两种类型的活动。工作流模型可以被工作流执行引擎执行。一般的结构控制活动包括:顺序活动,选择活动,并行活动,循环活动。
科学计算工作流的计算任务有多种实现形式,通常一个简单任务仅需要在一个特定的计算资源内来完成。但在实践过程中还存在一种特殊任务,主任务会生成一系列的任务来运行,运行完这一系列任务,收集任务结果,再生成下一系列的任务,直至达到某种收敛标准而退出。这种任务的特点是其工作量较大,消耗时间长,往往需要众多计算资源来共同完成,同时这些子任务之间还存在着一定的关联顺序。通常在工作流中,可以将这类任务分解成一组由多个并行或顺序结构组成的子任务流来运行,而且需要与计算资源的调度系统相互配合,且只能运行在一种计算资源内。
在实际的科学计算工作流中,为获得期望的计算数据结果,可能需要多种不同的数据集合和应用操作。这些数据和应用操作可以按照模块的形式,以合理的时序运行并获得计算结果。但是保证这些应用操作在实际计算环境顺序运行而不发生出错是很困难的,一些错误可能是由人为引起,还有就是计算资源类错误,比如任务内存分配不当、网络通信突然中断、运行环境缺少某些库文件等。这会导致工作流业务的失败,造成大量机时和人员的时间浪费。
目前的高性能调度系统比如slurm/PBS都针对单一作业资源来调度和优化,对单个计算作业的效率很高,可以高效地支持顺序类型的工作流。但对一些复杂工作流程,比如需要使用多种计算模块完成一个计算任务时,现有的计算系统的调度能力就无法充分发挥,往往需要用户自行通过修改程序脚本来实现。比如slurm调度时会为每个作业单独分配一个节点,即多个作业不能分配到一个节点中,这导致在运行核数少的小作业带来很多的计算浪费。
发明内容
本发明要解决的技术问题是:提出一种改善复杂科学计算工作流的状态不可控,提高工作流的柔性,在一定程度上实现过程定义重用性的云计算环境中自适应的组合工作流方法。本发明为解决上述技术问题提出的技术方案是:一种云计算环境中自适应的组合工作流方法,其特征在于包括以下步骤:建立组合服务对象的计划工作流和规则构造类,通过规则构造类的类型计算验证计划工作流执行逻辑的准确性,所述建立计划工作流包括定义计算最小单元和控制规则集;
计算资源初始化,生成工作流初始日志,初始化状态记录表,确定可用的计算资源和环境;
将初始运行实例通过规则构造器,转换为初始计算单元,所述计算单元由实际计算实例,返回状态函数和结合状态函数组成;
运行初始计算单元,初始计算单元的输出带有新的规则构造器和状态信息的子计算单元;
与日志库通信同步后根据计算环境变化,更新子计算单元内的上下文信息;
子计算单元根据规则构造器和状态信息执行计算实例,执行结束后,子计算单元生成下一代的计算单元。
进一步的,所述日志库适于定时轮询各个计算单元的状态信息和备选计算环境的信息,用于更新计算单元的状态信息。有益效果
本发明中方法的主要优点有几个方面:
1.提升工作流运行的鲁棒性。
2.降低用户的工作量。
3.能够同时运行在多个计算资源内,提高计算资源利用率。
附图说明
下面结合附图对本发明的云计算环境中自适应的组合工作流方法作进一步说明。
图1是本发明中云计算环境中自适应的组合工作流方法的步骤图;
图2是含有计算实例的计算单元示意图;
图3是计算单元的状态变换表达(a)分叉/复制;
图4是计算单元的状态变换表达(b)聚合;
图5是计算单元运行失败后的重新计算;
图6是计算单元组成的简单工作流;
图7是计算单元组成的复杂的工作流。
具体实施方式
实施例
为了能在云环境中简化复杂的工作流过程,我们设计了可以组合的工作流模式。这里的组合工作流的核心是定义了计算最小单元和控制规则集。借鉴范畴论中的Monad单子概念,设计一种可以抽象化的计算单元,其为带有上下文环境值的计算单元:如图2所示,该基础单元由实际计算实例,返回状态函数(return)和结合状态函数(bind)组成。当计算单元内部不存在计算输入时,计算是暂停的,计算单元等待计算输入的出现后执行。若不存在计算输入,则计算单元会取消或删除。将计算实体a转变为计算单元Ma可以用式子return::a->M a表示;将计算单元Ma组合成新的计算单元Mb可以用bind::M a->(a->M b)->M b表示。
为构建需要的计算单元,我们还需要拥有一个控制规则集,使得计算单元能够将一个计算状态转为另一个状态。状态控制规则可以定义为能够接收状态,并输出新状态和返回计算结果的一种函数。其可与计算单元具有相似的结构,只是其计算实例换为已经定义好的状态控制器。状态控制器可以有返回自身的Identity,用于处理错误信息的Error,如图5所示。处理数据读取的Reader,数据输出的Writer,任务状态State,任务状态变换的transformers等多种,用户也可根据不同任务的需要自行定义新的状态控制方式,如图3和图4所示。将一个实际作业与Monad单子结合后形成的计算单元会改变计算作业的一些行为,比如可以拥有作业失败后能够重新提交作业的功能。其它的计算单元功能可以包括作业状态监控,更新状态上下文等等。同样,数据的上传和下载也可包装成IO计算单元。使用这种方式,动态的云计算环境可以抽象化为大量的cpu核心,而计算单元的组合可以创建一个任务处理管线。将原有的包含复杂控制的工作流变为一系列不同计算单元的顺序叠加,如图6和图7所示。这样带来的好处是:
(1)模块化,复杂计算工作流可通过monad抽象化,转变为更简单的计算过程组合。便于计算子任务在分布式环境中运行。
(2)隔离,降低单个计算子任务对整个工作流的运行影响,从而有效地降低因未知因素引起的工作流运行失败,提升系统鲁棒性。当运行环境复杂时,能够配合日志状态记录系统和控制规则集,可以自动拼接未完成的工作流。
计算单元用于封装在云计算系统中运行的计算任务。实际的一个作业可以包装成计算单元M<Job>,比如计算化学用户采用第一性原理程序VASP的运行应用作业,可表示为M<VaspJob>。计算单元含有除了运行计算实例额外的功能,包含输入/输出,执行环境(集群,作业优先级等)和作业状态等。
比如一位计算化学的用户使用VASP计算一个分子结构的多体色散校正,其需要计算过程大致有2步,第一步做结构优化,第二步在结构优化后的基础上修改参数做多体色散校正的计算。将这一计算过程抽象为一个类型M<VaspMBD>,用声明式语义描述这一计算过程,并添加到计算单元中,如图4表示过程。控制规则集是科学计算工作流引擎的主要组成部分。工作流引擎根据计算目的和控制规则构建计算单元。为了应对计算资源的不稳定性,比如正在进行计算的集群节点突然没电或失去网络链接,建立基于日志的状态记录系统,动态调节工作流程,根据上一个计算单元生成下一代计算单元。日志消息则通过规则构造器的模式匹配技术可转化为另一个计算单元的输入部分,只有完成匹配的计算单元才可以最终被创建。
为维护科学计算工作流的正常运行,还需要定时监控状态信息,需要定义一些定时参数,比如考虑网络延时的心跳间隔,连续常规故障时间间隔等。
而日志库主要用于提取各种备选服务的实际执行质量数据;定时提取正在运行和备选服务的运行环境数据,而计算单元可携带上下文需要的日志信息。工作流系统的状态变化通过日志库记录来同步更新。
本发明的不局限于上述实施例,本发明的上述各个实施例的技术方案彼此可以交叉组合形成新的技术方案,另外凡采用等同替换形成的技术方案,均落在本发明要求的保护范围内。
Claims (2)
1.一种云计算环境中自适应的组合工作流方法,其特征在于包括以下步骤:
建立组合服务对象的计划工作流和规则构造类,通过规则构造类的类型计算验证计划工作流执行逻辑的准确性,所述建立计划工作流包括定义计算最小单元和控制规则集;
计算资源初始化,生成工作流初始日志,初始化状态记录表,确定可用的计算资源和环境;
将初始运行实例通过规则构造器,转换为初始计算单元,所述计算单元由实际计算实例,返回状态函数和结合状态函数组成;
运行初始计算单元,初始计算单元的输出带有新的规则构造器和状态信息的子计算单元;
与日志库通信同步后根据计算环境变化,更新子计算单元内的上下文信息;
子计算单元根据规则构造器和状态信息执行计算实例,执行结束后,子计算单元生成下一代的计算单元。
2.根据权利要求1所述云计算环境中自适应的组合工作流方法,其特征在于:所述日志库适于定时轮询各个计算单元的状态信息和备选计算环境的信息,用于更新计算单元的状态信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610743105.5A CN107203421B (zh) | 2016-08-28 | 2016-08-28 | 一种云计算环境中自适应的组合工作流方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610743105.5A CN107203421B (zh) | 2016-08-28 | 2016-08-28 | 一种云计算环境中自适应的组合工作流方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203421A true CN107203421A (zh) | 2017-09-26 |
CN107203421B CN107203421B (zh) | 2020-07-21 |
Family
ID=59904751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610743105.5A Active CN107203421B (zh) | 2016-08-28 | 2016-08-28 | 一种云计算环境中自适应的组合工作流方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203421B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958937A (zh) * | 2018-06-29 | 2018-12-07 | 国家超级计算天津中心 | 一种模板化计算环境配置方法 |
WO2019134323A1 (zh) * | 2018-05-10 | 2019-07-11 | 深圳晶泰科技有限公司 | 科学计算流程管理系统 |
CN112162727A (zh) * | 2020-09-16 | 2021-01-01 | 深圳晶泰科技有限公司 | 云端高性能科学计算工作流设计控制系统及用户图形界面 |
CN112445595A (zh) * | 2020-11-26 | 2021-03-05 | 深圳晶泰科技有限公司 | 基于slurm计算平台的多任务提交系统 |
CN113011978A (zh) * | 2021-03-10 | 2021-06-22 | 贺新征 | 基于可认证数据结构的区块链语义分析的方法 |
WO2022104596A1 (zh) * | 2020-11-18 | 2022-05-27 | 深圳晶泰科技有限公司 | 分子动力学力场参数拟合工作流控制系统及其控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882255A (zh) * | 2009-05-07 | 2010-11-10 | 中兴通讯股份有限公司 | 一种基于面向服务体系结构的工作流装置、系统及配置方法 |
US20120324455A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Monad based cloud computing |
-
2016
- 2016-08-28 CN CN201610743105.5A patent/CN107203421B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882255A (zh) * | 2009-05-07 | 2010-11-10 | 中兴通讯股份有限公司 | 一种基于面向服务体系结构的工作流装置、系统及配置方法 |
US20120324455A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Monad based cloud computing |
Non-Patent Citations (1)
Title |
---|
鲍亮: ""基于函数式编程的Web服务组合技术研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019134323A1 (zh) * | 2018-05-10 | 2019-07-11 | 深圳晶泰科技有限公司 | 科学计算流程管理系统 |
US10817532B2 (en) | 2018-05-10 | 2020-10-27 | Shenzhen Jingtai Technology Co., Ltd. | Scientific computing process management system |
CN108958937A (zh) * | 2018-06-29 | 2018-12-07 | 国家超级计算天津中心 | 一种模板化计算环境配置方法 |
CN112162727A (zh) * | 2020-09-16 | 2021-01-01 | 深圳晶泰科技有限公司 | 云端高性能科学计算工作流设计控制系统及用户图形界面 |
WO2022104596A1 (zh) * | 2020-11-18 | 2022-05-27 | 深圳晶泰科技有限公司 | 分子动力学力场参数拟合工作流控制系统及其控制方法 |
CN112445595A (zh) * | 2020-11-26 | 2021-03-05 | 深圳晶泰科技有限公司 | 基于slurm计算平台的多任务提交系统 |
CN112445595B (zh) * | 2020-11-26 | 2022-10-25 | 深圳晶泰科技有限公司 | 基于slurm计算平台的多任务提交系统 |
CN113011978A (zh) * | 2021-03-10 | 2021-06-22 | 贺新征 | 基于可认证数据结构的区块链语义分析的方法 |
CN113011978B (zh) * | 2021-03-10 | 2023-05-26 | 河南大学 | 基于可认证数据结构的区块链语义分析的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107203421B (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203421A (zh) | 一种云计算环境中自适应的组合工作流方法 | |
WO2021213293A1 (zh) | 一种面向群智感知的泛在操作系统 | |
Zhan et al. | Cloud computing resource scheduling and a survey of its evolutionary approaches | |
Hu et al. | Time-and cost-efficient task scheduling across geo-distributed data centers | |
CN102254246B (zh) | 一种工作流管理方法及其系统 | |
CN109325008A (zh) | 面向消息中间件的跨域数据同步方法与系统 | |
CN101946257A (zh) | 建模基于计算机的业务过程以及模拟操作 | |
CN104572290A (zh) | 消息处理线程的控制方法及装置 | |
CN103488775A (zh) | 一种用于大数据处理的计算系统及计算方法 | |
CN101946258A (zh) | 基于计算机的业务过程在专用硬件上的基于模型的部署 | |
Huang et al. | Service requirement conflict resolution based on ant colony optimization in group-enterprises-oriented cloud manufacturing | |
Zhang et al. | Research and development of off-line services for the 3D automatic printing machine based on cloud manufacturing | |
CN102088475B (zh) | 控制流集中数据流分布的组合服务执行系统及执行方法 | |
CN105809302A (zh) | 一种基于cep推理引擎的产线调度方法和系统 | |
CN108304168A (zh) | 一种边缘计算机操作系统 | |
Muhammad et al. | Fundamental simulation studies of CONWIP in front-end wafer fabrication | |
Hong et al. | A dynamic demand-driven smart manufacturing for mass individualization production | |
Amini Motlagh et al. | A new reliability‐based task scheduling algorithm in cloud computing | |
Cavallo et al. | H2F: a Hierarchical Hadoop Framework for big data processing in geo-distributed environments | |
Miao et al. | Efficient flow-based scheduling for geo-distributed simulation tasks in collaborative edge and cloud environments | |
CN109447497A (zh) | 一种项目时间预估管理方法及系统 | |
Xie et al. | A Two‐Workshop Collaborative, Integrated Scheduling Algorithm considering the Prescheduling of the Root‐Subtree Processes | |
Liu et al. | Performance modeling, real-time dispatching and simulation of wafer fabrication systems using timed extended object-oriented Petri nets | |
CN111539685A (zh) | 基于私有云的船舶设计制造协同管理平台及方法 | |
CN115056234B (zh) | 基于事件驱动和无限状态机的rpa控制器调度方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 4th Floor, No. 9, Hualian Industrial Zone, Xinshi Community, Dalang Street, Longhua District, Shenzhen City, Guangdong Province Applicant after: XTALPI Inc. Address before: Big business center No. 9680 518000 Guangdong city of Shenzhen province Nanshan District Guangdong streets 1 Shennan Avenue, building 1 612 Applicant before: XTALPI Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |