CN111861412B - 面向完成时间优化的科学工作流调度方法及*** - Google Patents
面向完成时间优化的科学工作流调度方法及*** Download PDFInfo
- Publication number
- CN111861412B CN111861412B CN202010732161.5A CN202010732161A CN111861412B CN 111861412 B CN111861412 B CN 111861412B CN 202010732161 A CN202010732161 A CN 202010732161A CN 111861412 B CN111861412 B CN 111861412B
- Authority
- CN
- China
- Prior art keywords
- task
- workflow
- cpu
- function
- running
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000006870 function Effects 0.000 claims abstract description 101
- 238000013468 resource allocation Methods 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 238000005457 optimization Methods 0.000 claims abstract description 12
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000143060 Americamysis bahia Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种面向完成时间优化的科学工作流调度方法及***,包括:将科学工作流任务转换成无服务器函数并部署到对应集群中;将给定的科学工作流转换成对应的有向无环图;对于有向无环图中的每层任务,根据参数配置,将资源分配给所述任务并运行;在任务运行的过程中,保持对集群的监控,动态调整每个任务的资源分配。本发明相较于现有技术,通过充分利用无服务器框架提供的弹性伸缩能力,实现了获得更高的整体完成时间和集群性能。
Description
技术领域
本发明涉及计算机技术领域,具体地,涉及一种基于无服务器架构的面向完成时间优化的科学工作流调度方法及***。
背景技术
在科学计算中,科学工作流是一个被广泛使用的抽象概念。
一个工作流一般用一个有向无环图(DAG)来表示,包括一系列任务和任务内或者任务间所输入或者输出的数据。将一个科学应用构建成一个工作流提供了一种表示科学问题的方便抽象,将复杂的并行调度下沉到工作流调度***中。
对于科学工作流来说,其工作的可重复性至关重要。一个科学工作流任务可能会有多个依赖或者多个配置文件,因为这些复杂的依赖和配置文件,不同的工作流任务之间可能会存在依赖冲突问题。如何处理好这些依赖问题,是一个成熟的科学工作流***的标志之一。
为此,现有一部分科学工作流***选择了将任务打包成容器,然后运行在基于容器的集群中。这解决了工作流任务的依赖问题,但是,如何在集群中高效调度执行工作流任务的容器依然是一个很有挑战性的问题。
此外,工作流任务有着不同的类型,一般会基于时间将其分类成两种:长任务或者短任务。大量已知的工作流***会将工作流任务放入预先设定好的一些虚拟机、容器或者其自定义的工作流运行时中进行运行,但在工作流任务运行的过程中无法对其进行资源调整,使得在有多个工作流任务同时运行的情况下,可能会导致工作流任务之间所分配资源的不均衡,延长一个或者多个工作流的调度长度。对于有着异构任务的科学工作流来说,如何动态优化长任务或者短任务的资源配置,现有的***缺乏高效的解决方案。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向完成时间优化的科学工作流调度方法及***。
根据本发明提供的一种面向完成时间优化的科学工作流调度方法,包括:
DAG转换步骤:将给定的科学工作流配置转换成对应的有向无环图;
函数转换步骤:将科学工作流中的每层任务转换成无服务器函数并部署到对应集群中;
资源分配步骤:对于有向无环图中的每层任务,根据参数配置,将资源分配给所述任务并运行;
动态调整步骤:在任务运行的过程中,保持对集群的监控,根据任务的剩余运行时间和***可用资源动态调整每个任务的资源分配。
优选地,所述DAG转换步骤包括:
S101、提取工作流配置中的每个任务,并在对应的有向无环图中创建一个图节点,并指定每个任务的运行最大实例数;
S102、根据工作流任务间的依赖关系,在创建的有向无环图中添加对应的边;
S103、基于工作流的名称生成对应有向无环图的ID;
S104、标记创建的有向无环图中的根节点;
S105、将ID、截止时间和有向无环图在内的要素封装成一个工作流对象。
优选地,在所述函数转换步骤中,将一个科学工作流中个功能相同但输入不同的任务汇总,并通过Restful API将任务暴露,使用同样的任务镜像打包成相同的无服务器函数。
优选地,所述函数转换步骤包括:
S201、根据指标提取当前需要转换的任务;
S202、提取当前需要转换的任务的名称和镜像地址;
S203、将任务的名称、镜像地址、命名空间、自动伸缩规则配置在内的信息打包生成一个对应的无服务器函数;
S204、工作流***根据任务指定的输入和输出,给每个无服务器函数实例分配一对输入key和输出key;
S205、工作流***在每个无服务器函数实例所对应的输入key和输出key中,写入输入文件和输出文件的集合K_input和K_output;
S206、当无服务函数执行时,工作流***下载函数镜像,并在集群中根据镜像部署对应的无服务器函数,生成一个函数运行实例,并保留实例暴露出来的Restful API接口。
优选地,所述资源分配步骤包括确定单位任务所需的资源量:
工作流***根据工作流池中运行的所有任务的函数总实例数、工作流的剩余运行时间以及当前集群可用资源,将整个集群的资源按比例分配给所有正在运行的任务;
采用以下方法来确定每个任务单个实例所需的CPU资源和内存资源量:
对于每个即将运行的任务,在容器中启动该任务的1个实例,每隔固定的时间间隔对容器所消耗的CPU资源和内存资源数据进行收集,收集结果会形成两个时间序列,分别记为dcpu={dcpu,1,…,dcpu,n}和dmem={dmem,1,…,dmem,n};
记当前的时间间隔序号为i,所收集的CPU数据为dcpu,i,内存数据为dmem,i;若在某一个时间间隔i内,同时满足以下两个条件:
则视为当前任务资源消耗趋于稳定,将dcpu,i和dmem,i作为任务间资源分配算法时所使用的任务资源消耗量;
若在时间间隔j,j>i时,所收集的CPU数据dcpu,j和内存数据dmem,j也满足上述两个条件,则对于CPU资源数据,取dcpu,i和dcpu,j中的最大值作为用于调度的CPU资源量;对于内存资源数据同样处理;
若一直没有时间间隔i满足以上两个条件,则取dcpu和dmem中的最大值作为任务单个实例所需的资源量。
优选地,单个任务的总资分配方法包括:
根据任务单个实例所需的资源,确定当前工作流正在运行的第k个任务τi,k中单个容器的CPU资源量dcpu,i,k和内存资源量dmem,i,k;
统计整个集群所有节点的CPU和内存总的可用资源cpuTot和memTot;
对于每个有任务正在运行的科学工作流,第一个任务开始执行的时间为ti,当前时间为tcur,当前工作流的截止日期为Di,则工作流的时间因子Δti为:
正在运行的第i个工作流的第k个任务Ti,k的新资源数按照以下公式计算:
其中,n表示有任务正在运行的科学工作流数量,是第i个科学工作流正在运行的任务k的当前等级下的实例数,/>是第j个科学工作流正在运行的任务k的当前等级下的实例数。
优选地,单个任务的函数实例个数的确定方法包括:
通过传入的请求的数据,根据任务设置的实例数量Fi,向请求缓存池中放入请求;
根据任务单个实例所需的资源量和当前任务所持有的资源数,监视线程计算出新的函数实例数量:
将当前运行的函数实例数ai和新的函数实例数量a′i进行比较:如果ai<a′i,启动运行a′i-ai个函数实例;如果ai>a′i,根据执行时间终止后ai-a′i个运行的函数,并将被终止的函数重新构造之后放入请求池;
在所有请求池中的对应的函数成功完成之后,记录所有请求所收到的回复,并向工作流控制线程返回当前任务完成的消息。
根据本发明提供的一种面向完成时间优化的科学工作流调度***,包括:
DAG转换模块:将给定的科学工作流配置转换成对应的有向无环图;
函数转换模块:将科学工作流中的每层任务转换成无服务器函数并部署到对应集群中;
资源分配模块:对于有向无环图中的每层任务,根据参数配置,将资源分配给所述任务并运行;
动态调整模块:在任务运行的过程中,保持对集群的监控,根据任务的剩余运行时间和***可用资源动态调整每个任务的资源分配。
优选地,所述DAG转换模块包括:
提取工作流配置中的每个任务,并在对应的有向无环图中创建一个图节点,并指定每个任务的运行最大实例数;
根据工作流任务间的依赖关系,在创建的有向无环图中添加对应的边;
基于工作流的名称生成对应有向无环图的ID;
标记创建的有向无环图中的根节点;
将ID、截止时间和有向无环图在内的要素封装成一个工作流对象。
优选地,所述函数转换模块包括:
根据指标提取当前需要转换的任务;
提取当前需要转换的任务的名称和镜像地址;
将任务的名称、镜像地址、命名空间、自动伸缩规则配置在内的信息打包生成一个对应的无服务器函数;
工作流***根据任务指定的输入和输出,给每个无服务器函数实例分配一对输入key和输出key;
工作流***在每个无服务器函数实例所对应的输入key和输出key中,写入输入文件和输出文件的集合K_input和K_output;
当无服务函数执行时,工作流***下载函数镜像,并在集群中根据镜像部署对应的无服务器函数,生成一个函数运行实例,并保留实例暴露出来的Restful API接口。
与现有技术相比,本发明具有如下的有益效果:
1)通过DAG转换模块,用户在提交工作流时只需指定输入、输出和镜像即可运行工作流,无需指定工作流所需的资源量,减轻了用户的负担,提高了用户体验;
2)通过函数转换模块实现工作流任务到无服务器函数的自动转换,提高了无服务器框架的易用性和工作流的自动化部署水平;
3)函数实例数量调节,***会自动根据科学工作流任务的剩余时间和集群的资源可用情况调整函数所占有的资源和数量,不仅优化了工作流的完成时间,还提高了集群的资源复用率,实现双目标优化;
4)适配各类云环境,由于下层结构独立以及本***不依赖于某些特定的服务,从而可以方便的部署在各类集群上,具有良好的通用性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为工作流***的架构图;
图2为Shrimp工作流示意图;
图3为工作流***的运行过程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本申请提出了一个基于无服务器架构运行科学工作流的技术方案,其中使用容器技术在Kubernetes和Knative框架下进行工作流调度,从而实现获得更高的整体完成时间和集群性能。因此,此技术方案可以作为一个科学工作流的执行平台,用以执行包含异构任务的各类科学工作流。
在本方案中,为了解决工作流任务的依赖问题,并与容器编排***k8s进行匹配,将所有工作流中的任务打包成docker镜像,通过Restful API方式进行通信及传输数据。本方案的一个难点在于如何平衡不同工作流任务之间使用的资源。本申请提出通过监视当前运行的所有任务的CPU和内存使用率,以及任务所属的工作流的截止日期要求,动态调整不同任务在平台上运行的函数数量,以达到同时优化工作流完成时间和集群利用率的目标。
科学工作流可以被定义为一个有向无环图DAG,定义为:G={T,E,Data,D,F},其中T={τ1,τ2,...τn}是一个任务的集合,E是表示任务数据依赖的边的集合。一个依赖保证了一个子任务在它所有的父任务执行完成并传输完成数据之后才会运行。Data代表为了执行一个给定的任务所需要的一个或者多个文件。在一个DAG上的所有任务可以根据从起始点到当前节点的路径长度分为不同的等级。D为当前工作流的截止日期。对于每个DAG中的任务,相同等级下某任务τi出现的次数记为Fi。
本发明的工作流***的架构见图1。
在本发明中,用户运行一个工作流时,需要提交一个定义工作流任务、工作流依赖、工作流数据的yaml文件和初始的输入文件到工作流***;工作流***接收这些文件之后,完成以下处理步骤:
1.将科学工作流任务转换成无服务器函数并部署到对应集群中;
2.根据用户所给定的工作流,将其转换成对应的DAG;
3.对于DAG中的每层任务,工作流会根据多个参数,将适量的资源分配给此任务并运行;
4.在任务运行的过程中,工作流***会保持对集群资源的监控,动态调整每个任务的资源分配。
一、科学工作流任务到无服务器函数的转换:
一个科学工作流中会包含许多个功能相同但输入不同的任务,例如,在如图2所示的Shrimp工作流中,有多个rmapper任务,通过接收不同的输入来产生与之相对应的输出。因此,将这些同类型的任务请求汇总,并通过Restful API将任务暴露,使用同样的任务镜像打包成相同的函数以处理请求,以达到通过复用任务函数来降低资源消耗的目的。
具体步骤如图3所示,包括:
1.工作流***根据用户指定的输入和输出,给每个任务分配一对输入key和输出key;
2.工作流***在每个任务所对应的输入key和输出key中,写入输入文件和输出文件的集合Kinput和Koutput;
3.工作流***将每个任务镜像下载,在集群中根据镜像部署对应的函数,并保留其暴露出来的Restful API接口。
二、请求执行一个函数的过程:
一个请求对应的是一个具体的函数实例,即一个请求及其输入输出会有一个独立的函数对其进行处理。
1.每个请求在执行之前,工作流***会给每个请求发送其对应的输入Key和输出Key;
2.请求得到执行时,会根据其发送的输入Key从指定的Redis数据库中获取数据;
3.请求接受数据,产出对应的输出;
4.请求根据其获取的输出Key将输出发送回指定的Redis数据库。
三、确定单位任务所需的资源量:
定义τi,k为第i个工作流的第k个任务。
工作流***会根据工作流池中运行的所有任务的函数总实例数、工作流的剩余运行时间,将整个集群的资源按比例分配给所有正在运行的任务。
本发明会采用以下算法来确定每个任务单个实例所需的CPU资源和内存资源量:
1.对于每个即将运行的任务,在容器中启动该任务的1个实例,每隔固定的时间间隔对容器所消耗的CPU资源和内存资源数据进行收集,收集结果会形成两个时间序列,分别记为dcpu={dcpu,1,...,dcpu,n}和dmem={dmem,1,...,dmem,n};
2.记当前的时间间隔序号为i,其所收集的CPU数据为dcpu,i,内存数据为dmem,i;
若在某一个时间间隔i内,同时满足以下两个条件:
则视为当前任务资源消耗趋于稳定,将dcpu,i和dmem,i作为任务间资源分配算法时所使用的任务资源消耗量;
3.若在时间间隔j(j>i)时,其所收集的CPU数据dcpu,j和内存数据dmem,j也满足上述两个条件,则对于CPU资源数据,取dcpu,i和dcpu,j中的最大值作为用于调度的CPU资源量;对于内存资源数据同样处理;
4.若一直没有时间间隔i满足以上两个条件,则取dcpu和dmem中的最大值作为任务单个实例所需的资源量。
四、调整单个任务的总资源量:
1.根据第二步确定任务单个实例所需的资源,确定当前工作流正在运行的第k个任务τi,k中单个容器的CPU资源量dcpu,i,k和内存资源量dmem,i,k;
2.统计整个集群所有节点的CPU和内存总的可用资源cpuTot和memTot;
3.对于每个有任务正在运行的工作流,其第一个任务开始执行的时间为ti,当前时间为tcur,当前工作流的截止日期为Di,则工作流的时间因子Δti为:
4.工作流i正在运行的第k个任务任务Ti,k的新资源数按照以下公式计算:
其中,n表示有任务正在运行的工作流数量,是第i个科学工作流正在运行的任务k的当前等级下的实例数,/>是第j个科学工作流正在运行的任务k的当前等级下的实例数。
资源分配过程每隔一定时间(本算法设置成10秒)进行一次。
五、确定单个任务的函数实例个数,步骤如下:
1.通过传进来的请求链接、请求参数等数据,根据任务设置的实例数量Fi,向请求缓存池中放入请求;
2.根据第三步确定的任务单个实例所需的资源量和第四步的算法所计算出的新的当前任务所持有的资源数,监视线程计算出新的函数实例数量:
3.将当前运行的函数实例数ai和目标实例数量a′i进行比较:如果ai<a′i,启动运行a′i-ai个函数实例;如果ai>a′i,根据执行时间终止后ai-a′i个运行的函数,并将被终止的函数重新构造之后放入请求池;
在所有请求池中的对应的函数成功完成之后,记录所有请求所收到的回复,并向工作流控制线程返回当前任务完成的消息。
本发明还提供一种面向完成时间优化的科学工作流调度***,包括:
函数转换模块:将科学工作流任务转换成无服务器函数并部署到对应集群中。
DAG转换模块:将给定的科学工作流转换成对应的有向无环图。
资源分配模块:对于有向无环图中的每层任务,根据多个参数,将资源分配给所述任务并运行。
动态调整模块:在任务运行的过程中,保持对集群的监控,动态调整每个任务的资源分配
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的***及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (7)
1.一种面向完成时间优化的科学工作流调度方法,其特征在于,包括:
DAG转换步骤:将给定的科学工作流配置转换成对应的有向无环图;
函数转换步骤:将科学工作流中的每层任务转换成无服务器函数并部署到对应集群中;
资源分配步骤:对于有向无环图中的每层任务,根据参数配置,将资源分配给所述任务并运行;
动态调整步骤:在任务运行的过程中,保持对集群的监控,根据任务的剩余运行时间和***可用资源动态调整每个任务的资源分配;
所述资源分配步骤包括确定单位任务所需的资源量:
工作流***根据工作流池中运行的所有任务的函数总实例数、工作流的剩余运行时间以及当前集群可用资源,将整个集群的资源按比例分配给所有正在运行的任务;
采用以下方法来确定每个任务单个实例所需的CPU资源和内存资源量:
对于每个即将运行的任务,在容器中启动该任务的1个实例,每隔固定的时间间隔对容器所消耗的CPU资源和内存资源数据进行收集,收集结果会形成两个时间序列,分别记为dcpu={dcpu,1,...,dcpu,n}和dmem={dmem,1,...,dmem,n};
记当前的时间间隔序号为i,所收集的CPU数据为dcpu,i,内存数据为dmem,i;若在某一个时间间隔i内,同时满足以下两个条件:
则视为当前任务资源消耗趋于稳定,将dcpu,i和dmem,i作为任务间资源分配算法时所使用的任务资源消耗量;
若在时间间隔j,j>i时,所收集的CPU数据dcpu,j和内存数据dmem,j也满足上述两个条件,则对于CPU资源数据,取dcpu,i和dcpu,j中的最大值作为用于调度的CPU资源量;对于内存资源数据同样处理;
若一直没有时间间隔i满足以上两个条件,则取dcpu和dmem中的最大值作为任务单个实例所需的资源量;
单个任务的总资分配方法包括:
根据任务单个实例所需的资源,确定当前工作流正在运行的第k个任务τi,k中单个容器的CPU资源量dcpu,i,k和内存资源量dmem,i,k;
统计整个集群所有节点的CPU和内存总的可用资源cpuTot和memTot;
对于每个有任务正在运行的科学工作流,第一个任务开始执行的时间为ti,当前时间为tcur,当前工作流的截止日期为Di,则工作流的时间因子Δti为:
正在运行的第i个工作流的第k个任务Ti,k的新资源数按照以下公式计算:
其中,n表示有任务正在运行的科学工作流数量,是第i个科学工作流正在运行的任务k的当前等级下的实例数,/>是第j个科学工作流正在运行的任务k的当前等级下的实例数;
单个任务的函数实例个数的确定方法包括:
通过传入的请求的数据,根据任务设置的实例数量Fi,向请求缓存池中放入请求;
根据任务单个实例所需的资源量和当前任务所持有的资源数,监视线程计算出新的函数实例数量:
将当前运行的函数实例数ai和新的函数实例数量a′i进行比较:如果ai<a′i,启动运行a′i-ai个函数实例;如果ai>a′i,根据执行时间终止后ai-a′i个运行的函数,并将被终止的函数重新构造之后放入请求池;
在所有请求池中的对应的函数成功完成之后,记录所有请求所收到的回复,并向工作流控制线程返回当前任务完成的消息。
2.根据权利要求1所述的面向完成时间优化的科学工作流调度方法,其特征在于,所述DAG转换步骤包括:
S101、提取工作流配置中的每个任务,并在对应的有向无环图中创建一个图节点,并指定每个任务的运行最大实例数;
S102、根据工作流任务间的依赖关系,在创建的有向无环图中添加对应的边;
S103、基于工作流的名称生成对应有向无环图的ID;
S104、标记创建的有向无环图中的根节点;
S105、将ID、截止时间和有向无环图在内的要素封装成一个工作流对象。
3.根据权利要求1所述的面向完成时间优化的科学工作流调度方法,其特征在于,在所述函数转换步骤中,将一个科学工作流中个功能相同但输入不同的任务汇总,并通过Restful API将任务暴露,使用同样的任务镜像打包成相同的无服务器函数。
4.根据权利要求2所述的面向完成时间优化的科学工作流调度方法,其特征在于,所述函数转换步骤包括:
S201、根据指标提取当前需要转换的任务;
S202、提取当前需要转换的任务的名称和镜像地址;
S203、将任务的名称、镜像地址、命名空间、自动伸缩规则配置在内的信息打包生成一个对应的无服务器函数;
S204、工作流***根据任务指定的输入和输出,给每个无服务器函数实例分配一对输入key和输出key;
S205、工作流***在每个无服务器函数实例所对应的输入key和输出key中,写入输入文件和输出文件的集合K_input和K_output;
S206、当无服务函数执行时,工作流***下载函数镜像,并在集群中根据镜像部署对应的无服务器函数,生成一个函数运行实例,并保留实例暴露出来的RestfulAPI接口。
5.一种面向完成时间优化的科学工作流调度***,其特征在于,包括:
DAG转换模块:将给定的科学工作流配置转换成对应的有向无环图;
函数转换模块:将科学工作流中的每层任务转换成无服务器函数并部署到对应集群中;
资源分配模块:对于有向无环图中的每层任务,根据参数配置,将资源分配给所述任务并运行;
动态调整模块:在任务运行的过程中,保持对集群的监控,根据任务的剩余运行时间和***可用资源动态调整每个任务的资源分配;
所述资源分配模块包括确定单位任务所需的资源量:
工作流***根据工作流池中运行的所有任务的函数总实例数、工作流的剩余运行时间以及当前集群可用资源,将整个集群的资源按比例分配给所有正在运行的任务;
采用以下方法来确定每个任务单个实例所需的CPU资源和内存资源量:
对于每个即将运行的任务,在容器中启动该任务的1个实例,每隔固定的时间间隔对容器所消耗的CPU资源和内存资源数据进行收集,收集结果会形成两个时间序列,分别记为dcpu={dcpu,1,...,dcpu,n}和dmem={dmem,1,...,dmem,n};
记当前的时间间隔序号为i,所收集的CPU数据为dcpu,i,内存数据为dmem,i;若在某一个时间间隔i内,同时满足以下两个条件:
则视为当前任务资源消耗趋于稳定,将dcpu,i和dmem,i作为任务间资源分配算法时所使用的任务资源消耗量;
若在时间间隔j,j>i时,所收集的CPU数据dcpu,j和内存数据dmem,j也满足上述两个条件,则对于CPU资源数据,取dcpu,i和dcpu,j中的最大值作为用于调度的CPU资源量;对于内存资源数据同样处理;
若一直没有时间间隔i满足以上两个条件,则取dcpu和dmem中的最大值作为任务单个实例所需的资源量;
单个任务的总资分配方法包括:
根据任务单个实例所需的资源,确定当前工作流正在运行的第k个任务τi,k中单个容器的CPU资源量dcpu,i,k和内存资源量dmem,i,k;
统计整个集群所有节点的CPU和内存总的可用资源cpuTot和memTot;
对于每个有任务正在运行的科学工作流,第一个任务开始执行的时间为ti,当前时间为tcur,当前工作流的截止日期为Di,则工作流的时间因子Δti为:
正在运行的第i个工作流的第k个任务Ti,k的新资源数按照以下公式计算:
其中,n表示有任务正在运行的科学工作流数量,是第i个科学工作流正在运行的任务k的当前等级下的实例数,/>是第j个科学工作流正在运行的任务k的当前等级下的实例数;
单个任务的函数实例个数的确定方法包括:
通过传入的请求的数据,根据任务设置的实例数量Fi,向请求缓存池中放入请求;
根据任务单个实例所需的资源量和当前任务所持有的资源数,监视线程计算出新的函数实例数量:
将当前运行的函数实例数ai和新的函数实例数量a′i进行比较:如果ai<a′i,启动运行a′i-ai个函数实例;如果ai>a′i,根据执行时间终止后ai-a′i个运行的函数,并将被终止的函数重新构造之后放入请求池;
在所有请求池中的对应的函数成功完成之后,记录所有请求所收到的回复,并向工作流控制线程返回当前任务完成的消息。
6.根据权利要求5所述的面向完成时间优化的科学工作流调度***,其特征在于,所述DAG转换模块包括:
提取工作流配置中的每个任务,并在对应的有向无环图中创建一个图节点,并指定每个任务的运行最大实例数;
根据工作流任务间的依赖关系,在创建的有向无环图中添加对应的边;
基于工作流的名称生成对应有向无环图的ID;
标记创建的有向无环图中的根节点;
将ID、截止时间和有向无环图在内的要素封装成一个工作流对象。
7.根据权利要求6所述的面向完成时间优化的科学工作流调度***,其特征在于,所述函数转换模块包括:
根据指标提取当前需要转换的任务;
提取当前需要转换的任务的名称和镜像地址;
将任务的名称、镜像地址、命名空间、自动伸缩规则配置在内的信息打包生成一个对应的无服务器函数;
工作流***根据任务指定的输入和输出,给每个无服务器函数实例分配一对输入key和输出key;
工作流***在每个无服务器函数实例所对应的输入key和输出key中,写入输入文件和输出文件的集合K_input和K_output;
当无服务函数执行时,工作流***下载函数镜像,并在集群中根据镜像部署对应的无服务器函数,生成一个函数运行实例,并保留实例暴露出来的Restful API接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010732161.5A CN111861412B (zh) | 2020-07-27 | 2020-07-27 | 面向完成时间优化的科学工作流调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010732161.5A CN111861412B (zh) | 2020-07-27 | 2020-07-27 | 面向完成时间优化的科学工作流调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111861412A CN111861412A (zh) | 2020-10-30 |
CN111861412B true CN111861412B (zh) | 2024-03-15 |
Family
ID=72947259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010732161.5A Active CN111861412B (zh) | 2020-07-27 | 2020-07-27 | 面向完成时间优化的科学工作流调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111861412B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416476B (zh) * | 2020-11-25 | 2023-03-24 | 武汉联影医疗科技有限公司 | 工作流执行方法、装置、计算机设备和存储介质 |
CN112748997A (zh) * | 2021-01-20 | 2021-05-04 | 北京明略昭辉科技有限公司 | 一种工作流的调度方法及*** |
CN113225269B (zh) * | 2021-04-16 | 2022-11-22 | 鹏城实验室 | 基于容器的工作流调度方法、装置、***及存储介质 |
CN113537721A (zh) * | 2021-06-21 | 2021-10-22 | 华南师范大学 | 商务工作流局部时间约束调整的控制方法、***和介质 |
CN114844843B (zh) * | 2022-03-24 | 2024-06-25 | 清华大学 | 应用实例数量的调整方法及装置 |
CN114518917B (zh) * | 2022-04-20 | 2022-08-09 | 浙江大华技术股份有限公司 | 算法模块调度方法、算法模块调度装置以及可读存储介质 |
CN118093149A (zh) * | 2022-11-22 | 2024-05-28 | 华为云计算技术有限公司 | 一种无服务器应用的执行方法及相关设备 |
CN118193598A (zh) * | 2024-05-16 | 2024-06-14 | 南京赛宁信息技术有限公司 | 一种基于缓存的靶场应用节点冷启动加速方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799957A (zh) * | 2012-05-30 | 2012-11-28 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN108154317A (zh) * | 2018-01-25 | 2018-06-12 | 福建师范大学 | 多云环境下基于实例自适应分配整合的工作流组调度方法 |
CN108665157A (zh) * | 2018-05-02 | 2018-10-16 | 中山大学 | 一种实现云工作流***流程实例均衡调度的方法 |
CN109634742A (zh) * | 2018-11-15 | 2019-04-16 | 华南理工大学 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
CN110058950A (zh) * | 2019-04-17 | 2019-07-26 | 上海沄界信息科技有限公司 | 基于无服务器架构的分布式云计算方法及设备 |
CN111427681A (zh) * | 2020-02-19 | 2020-07-17 | 上海交通大学 | 边缘计算中基于资源监控的实时任务匹配调度***和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015723B2 (en) * | 2009-09-23 | 2015-04-21 | International Business Machines Corporation | Resource optimization for real-time task assignment in multi-process environments |
CN109791504B (zh) * | 2016-09-21 | 2023-04-18 | 埃森哲环球解决方案有限公司 | 针对应用容器的动态资源配置 |
US11030016B2 (en) * | 2017-12-07 | 2021-06-08 | International Business Machines Corporation | Computer server application execution scheduling latency reduction |
-
2020
- 2020-07-27 CN CN202010732161.5A patent/CN111861412B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799957A (zh) * | 2012-05-30 | 2012-11-28 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN108154317A (zh) * | 2018-01-25 | 2018-06-12 | 福建师范大学 | 多云环境下基于实例自适应分配整合的工作流组调度方法 |
CN108665157A (zh) * | 2018-05-02 | 2018-10-16 | 中山大学 | 一种实现云工作流***流程实例均衡调度的方法 |
CN109634742A (zh) * | 2018-11-15 | 2019-04-16 | 华南理工大学 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
CN110058950A (zh) * | 2019-04-17 | 2019-07-26 | 上海沄界信息科技有限公司 | 基于无服务器架构的分布式云计算方法及设备 |
CN111427681A (zh) * | 2020-02-19 | 2020-07-17 | 上海交通大学 | 边缘计算中基于资源监控的实时任务匹配调度***和方法 |
Non-Patent Citations (3)
Title |
---|
Fairness resource sharing for dynamic workflow scheduling on Heterogeneous Systems;Hamid Arabnejad等;《2012 10th IEEE International Symposium on Parallel and Distributed Processing with Applications》;全文 * |
基于云环境的科学工作流均衡调度算法;朱亚东;李忠;严莉;陈湘军;;实验室研究与探索(05);全文 * |
科学工作流调度优化问题研究;董炜航;《中国优秀硕士学位论文全文数据库 经济与管理科学辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111861412A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111861412B (zh) | 面向完成时间优化的科学工作流调度方法及*** | |
Van Tilborg et al. | Foundations of real-time computing: Scheduling and resource management | |
CN115248728B (zh) | 面向智能计算的分布式训练任务调度方法、***和装置 | |
US8332862B2 (en) | Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution | |
Baruah et al. | Mixed-criticality scheduling on multiprocessors | |
Tămaş-Selicean et al. | Design optimization of mixed-criticality real-time embedded systems | |
CN102063336B (zh) | 一种分布式计算多应用功能异步并发调度方法 | |
Wang et al. | Workflow as a service in the cloud: architecture and scheduling algorithms | |
US20030135621A1 (en) | Scheduling system method and apparatus for a cluster | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
US10866832B2 (en) | Workflow scheduling system, workflow scheduling method, and electronic apparatus | |
CN111798113B (zh) | 资源分配方法、装置、存储介质和电子设备 | |
Soner et al. | Integer programming based heterogeneous cpu–gpu cluster schedulers for slurm resource manager | |
JP2006244479A (ja) | 実行可能プログラムをスケジューリングするためのシステム及び方法 | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和***及存储介质 | |
CN109815009B (zh) | 一种csp下的资源调度与优化方法 | |
Goossens et al. | Overview of real-time scheduling problems | |
CN103685492B (zh) | Hadoop集群***的调度方法、调度装置及其应用 | |
George et al. | Job vs. portioned partitioning for the earliest deadline first semi-partitioned scheduling | |
Beckert et al. | Zero-time communication for automotive multi-core systems under SPP scheduling | |
Wu et al. | ABP scheduler: Speeding up service spread in docker swarm | |
Cui et al. | A scheduling algorithm for multi-tenants instance-intensive workflows | |
Xu et al. | Hybrid scheduling deadline-constrained multi-DAGs based on reverse HEFT | |
CN116302519A (zh) | 一种基于容器云平台的微服务工作流弹性调度方法、***及设备 | |
Heath et al. | Development, analysis, and verification of a parallel hybrid dataflow computer architectural framework and associated load-balancing strategies and algorithms via parallel simulation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |