CN112308304B - 工作流执行时间优化方法及装置 - Google Patents

工作流执行时间优化方法及装置 Download PDF

Info

Publication number
CN112308304B
CN112308304B CN202011142303.9A CN202011142303A CN112308304B CN 112308304 B CN112308304 B CN 112308304B CN 202011142303 A CN202011142303 A CN 202011142303A CN 112308304 B CN112308304 B CN 112308304B
Authority
CN
China
Prior art keywords
task
representing
budget
processor
workflow
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
Application number
CN202011142303.9A
Other languages
English (en)
Other versions
CN112308304A (zh
Inventor
陈进朝
杜承烈
陈雪聪
韩朋城
段雨昕
王丽芳
尤涛
蒋泽军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Beijing Simulation Center
Original Assignee
Northwestern Polytechnical University
Beijing Simulation Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University, Beijing Simulation Center filed Critical Northwestern Polytechnical University
Priority to CN202011142303.9A priority Critical patent/CN112308304B/zh
Publication of CN112308304A publication Critical patent/CN112308304A/zh
Application granted granted Critical
Publication of CN112308304B publication Critical patent/CN112308304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Educational Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了工作流执行时间优化方法及装置,涉及分布式计算技术领域。用以解决异构预算约束调度方法在预算分配方面的不足,导致低优先级的任务具有更长执行时间的问题。该方法包括:根据任务在处理器集合上的执行时间差异值,确定每个任务的优先级等级值以及任务优先级队列;根据每个任务在处理器集合上的执行成本差异值、平均执行成本以及空余预算,确定每个任务的空余预算、预分配子预算以及最大可用预算;根据任务的最大可以预算与任务的实际执行成本的大小关系,得到至少一个可用处理器,基于最早完成时间EFT,确定每个任务在可用处理器上的实际完成时间,根据实际完成时间得到任务优先级队列的初始调度方法。

Description

工作流执行时间优化方法及装置
技术领域
本发明涉及分布式计算技术领域,更具体的涉及工作流执行时间优化方法及装置。
背景技术
大规模科学应用,如电子商务、自动驾驶、智能制造,对计算处理器的需求日益增多,进而推动了分布式计算系统的发展。这些科学应用可以被划分为一组任务,任务之间通过数据依赖确定执行的先后次序,最终形成一个工作流。工作流是目前最重要的表示科学应用的编程范式,传统的分布式计算系统,如集群、超级计算机、网格经常被用来执行复杂的工作流应用。随着云计算的出现以及云基础设施的快速发展,越来越多的工作流应用已经迁移至云计算系统。云计算系统以按需的处理器供应模式向外提供具有不同计算能力的处理器,一般来说,处理器的单价与计算能力呈现正相关关系:在这种计算模式下,用户可以根据应用的规模以及期望的服务质量(quality of service,QoS)层次动态扩张或收缩使用的处理器数量,并且只需为实际的使用量计费,同时,随着系统处理器的更新换代,旧的、缓慢的设备持续被新的、快速的设备替代,系统处理器越来越异构化,云计算系统也呈现出异构的特征。对于异构云计算系统的用户而言,工作流应用的完成时间与执行费用是两个关键的因素,如何在两者之间取得平衡是工作流调度的关键。
在用户所关注的QoS需求中,预算(budget)无疑是非常重要且常见的一个因素,预算代表着用户在执行工作流应用时的经济承受能力。因此,研究异构云计算系统中预算约束的工作流执行时间最小化问题具有重要的现实意义,预算约束的工作流执行时间最小化问题具有很强的挑战性:首先,从用户的角度出发,执行工作流产生的执行费用不能超过预设的预算约束;其次,从系统的角度而言,最小化工作流的完成时间是核心问题,也预示着系统在满足用户QoS需求上的能力;预算约束的工作流调度问题得到了广泛的研究,当前一般采用启发式的方法解决此问题,这些方法一般都采用预算划分的方式解决此问题,即将工作流的预算转换为每个任务的子预算,进而保证预算约束得到满足;异构预算约束调度方法(heterogeneous budget constrained scheduling,HBCS)通过为任务预分配最小的执行成本来满足预算约束,空余预算则由所有的任务共同使用,但是,在HBCS中,优先级高的任务能够优先利用空余预算,在选择计算处理器上具有更大的自由度,优先级低的任务则只有较少的预算可以使用,甚至只能选择最慢的计算处理器,此种调度方法对低优先级的任务是不公平的,也会导致更长的执行时间。
综上所述,现有的异构预算约束调度方法存在在预算分配方面的不足,而导致低优先级的任务具有更长执行时间的问题。
发明内容
本发明实施例提供工作流执行时间优化方法及装置,用以解决现有的异构预算约束调度方法存在在预算分配方面的不足,而导致低优先级的任务具有更长执行时间的问题。
本发明实施例提供工作流执行时间优化方法,包括:
根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;
根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;
根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;
根据所述任务的最大可以预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法。
优选地,所述根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算,具体包括:
根据下列公式确定每个所述任务的成本层次:
Figure BDA0002736998030000031
根据下列公式确定每个所述任务的空余预算:
Figure BDA0002736998030000032
其中,
Figure BDA0002736998030000033
其表示任务ti的在处理器集合上执行成本的差异值,/>
Figure BDA0002736998030000034
其表示任务ti的平均执行成本,cost(ti,pk)表示任务ti在处理器pk上的执行成本,|P|表示处理器集合中处理器的数目,costlv(ti)表示任务ti的成本层次,costspare(ti)表示任务ti的空余预算,costspare(G)表示工作流G的空余预算。
优选地,所述根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算,具体包括:
根据下列公式确定每个所述任务的预分配子预算:
costpre(ti)=costmin(ti)+costspare(ti)
其中,
Figure BDA0002736998030000035
表示任务ti在处理器集合上的最小执行成本,costspare(ti)表示任务ti分到的空余预算,costpre(ti)表示任务ti的预分配子预算;
根据下列公式确定每个所述任务的最大可用预算:
Figure BDA0002736998030000041
其中,costgiven(G)表示工作流G的预算,cost(ts(x),pf(s(x)))表示已分配任务ts(x)的实际执行成本,costpre(ts(x))表示未分配任务ts(x)的预分配预算,costgiven(ts(i))表示任务ts(i)的最大可用预算。
优选地,所述根据所述实际完成时间得到所述任务优先级队列的初始调度方法之后,还包括:
根据所述初始调度方法对所述任务优先级队列包括的任务进行升序排列,得到任务优化队列;
根据所述工作流的初始预算和所述任务优先级队列包括的所述任务的实际完成时间,确定所述工作流的未使用预算以及所述工作流的累计可用预算;
根据延迟判断条件确定所述任务优化队列包括的每个所述任务是否可延迟,并根据判断结果,输出每个所述任务的优化调度方法;其中,优化调度方法包括:可延迟任务分配至不影响后继续任务开始且具有最小执行成本的处理器上;或者,根据所述工作流的累计可用预算,将不可延迟任务分配至具有最小执行成本的处理器上。
优选地,根据下列公式确定所述工作流的未使用预算:
Figure BDA0002736998030000042
其中,costunused(G)表示工作流G的未使用预算,costgiven(G)表示工作流G的初始预算,cost(ti,pf(i))表示任务ti的实际执行成本,f(i)表示任务ti在所述任务优化队列所分配的处理器的索引值。
优选地,所述延迟判断条件通过下列公式确定:
Figure BDA0002736998030000043
所述输出每个所述任务的优化调度方法之后,还包括:根据下列公式更新所述工作流的累计可用预算:
costaccum(G)=costaccum(G)+cost(to(i),pf(o(i)))-cost(to(i),pf'(o(i)))
其中,wj,f(j)表示任务tj在处理器Pf(j)上的执行时间,c'i,j为任务ti与任务tj之间的传输时间,AFT(tj)为任务tj的实际完成时间,cost(to(i),pf'(o(i)))表示所述任务优化队列中包括的任务to(i)在处理器pf'(o(i))上的实际执行成本,costaccum(G)表示所述工作流的累计可用预算,cost(to(i),pf(o(i)))表示所述任务优化队列中包括的任务to(i)在处理器pf(o(i))上的实际执行成本,f(o(i))表示任务to(i)在初始调度方法中分配的处理器的索引,f'(o(i))表示在优化调度方法中为任务to(i)选择的新处理器的索引。
优选地,根据下列公式确定所述任务的执行时间差异值:
Figure BDA0002736998030000051
其中,TimeDiff(ti)表示任务ti的执行时间差异值,wi,k∈W表示任务ti在处理器pk上的执行时间,|P|表示处理器集合中处理器的数目,
Figure BDA0002736998030000052
表示任务ti的平均执行时间;
所述根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值,具体包括:
确定每个所述任务的自底向上等级值和自顶向下等级值,根据每个所述任务的自底向上等级值和每个所述任务的自顶向下等级值,通过下列公式确定每个所述任务的优先级等级值:
rankp(ti)=ranku(ti)+rankd(texit)-rankd(ti)
其中,rankp(ti)表示任务ti的优先级等级值,ranku(ti)表示任务ti的自底向上等级值,rankd(texit)表示结束任务texit的自顶向下等级值,rankd(ti)表示任务ti的自顶向下等级值。
优选地,所述依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,具体包括:
根据下列公式确定每个所述任务的实际完成时间:
Figure BDA0002736998030000061
其中,
Figure BDA0002736998030000062
其表示任务ti在处理器pk上的最早完成时间,avail[pk]表示处理器pk空闲的最早时间,AFT(tj)表示任务tj的实际完成时间。wi,k∈W表示任务ti在处理器pk上的执行时间,c'j,i表示任务tj与任务ti之间的传输时间,/>
Figure BDA0002736998030000063
表示确保AFT的处理器pm是任务ti的分配处理器。
本发明实施例还提供工作流执行时间优化装置,包括:
第一确定单元,用于根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;
第二确定单元,用于根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;
得到单元,用于根据所述任务的最大可以预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法。
优选地,所述第二确定单元具体用于:
根据下列公式确定每个所述任务的成本层次:
Figure BDA0002736998030000064
根据下列公式确定每个所述任务的空余预算:
Figure BDA0002736998030000071
根据下列公式确定每个所述任务的预分配子预算:
costpre(ti)=costmin(ti)+costspare(ti)
根据下列公式确定每个所述任务的最大可用预算:
Figure BDA0002736998030000072
其中,
Figure BDA0002736998030000073
其表示任务ti的在处理器集合上执行成本的差异值,/>
Figure BDA0002736998030000074
其表示任务ti的平均执行成本,cost(ti,pk)表示任务ti在处理器pk上的执行成本,|P|表示处理器集合中处理器的数目,costlv(ti)表示任务ti的成本层次,costspare(ti)表示任务ti的空余预算,costspare(G)表示工作流G的空余预算;/>
Figure BDA0002736998030000075
表示任务ti在处理器集合上的最小执行成本,costspare(ti)表示任务ti分到的空余预算,costpre(ti)表示任务ti的预分配子预算;costgiven(G)表示工作流G的预算,cost(ts(x),pf(s(x)))表示已分配任务ts(x)的实际执行成本,costpre(ts(x))表示未分配任务ts(x)的预分配预算,costgiven(ts(i))表示任务ts(i)的最大可用预算。
本发明实施例提供工作流执行时间优化方法及装置,该方法包括:根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;根据所述任务的最大可以预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法。该方法通过考虑每个任务在不同处理器上的执行时间差异值,计算每个任务的优先级等级值,从而得到更合理的任务优先级队列;通过结合任务的平均执行成本和执行成本差异值,为任务优先级队列中的每个任务分配了更合理的子预算,丰富了每个任务的处理器选择,可以为任务选择更合理的处理器;该方法能够为异构云计算系统中预算约束的工作流生成具有最小完成时间的调度,针对现有的调度方法在预算分配方面的不足,提出了一种新的预算分配方法,能够为任务分配更合理的子预算;同时,考虑任务在处理器上执行时间的异构程度,提出了一个新的任务优先级确定方法,提出的调度方法不仅适用于异构云计算系统,也可以在新兴的边缘计算系统上使用,具有广泛的应用场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的工作流执行时间优化方法流程示意图;
图2为本发明实施例提供的具有十个任务的工作流应用示意图;
图3为本发明实施例提供的工作流执行时间优化装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供的工作流执行时间优化方法流程示意图。
如图1所示,该方法主要包括以下步骤:
步骤101,根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;
步骤102,根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;
步骤103,根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;
步骤104,根据所述任务的最大可以预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法。
在介绍本发明实施例提供的工作流执行时间优化方法之前,先介绍与该方法相关的基础内容、符号及符号含义:
云环境下DAG(Database Availability Group,即数据库可用性组)的计算处理器分配问题的系统模型包含三层:任务层、处理器层和云基础架构层。任务层由用户提交的有优先级限制的任务组成;处理器层表示由多个虚拟机(Virtual Machines,VMs)构成的网络;云基础架构层由相互连接的物理计算机组成。任务的计算处理器分配是要确定将任务放到哪个处理器上执行以及从什么时候开始执行,与任务放置不同,任务的计算处理器分配除了任务放置的空间维度外,还包含了时间维度。本发明实施例提供的工作流执行时间优化方法,包括任务的放置和任务在处理器上的开始执行时间。
假定异构云计算系统能够提供一组处理器,处理器集合表示为:P={p1,p2,...,p|P|},其中|P|表示系统中处理器P的数目,pricek表示处理器pk的单位价格,执行于系统中的工作流可以表示为G={T,E,G,W};T表示G的节点集合,ti∈T表示工作流的一个任务;E表示通信边集合,eij∈E表示从ti到tj有一条通信边,ti为tj的前驱节点,tj为ti的后继节点;G表示通信时间集合,ci,j∈G表示当ti和tj没有被分配到同一处理器上时的通信时间;W表示大小为|T|×|P|的执行时间矩阵,wi,k∈W表示任务ti在处理器pk上的执行时间;pred(ti)表示任务ti的前驱任务集合,succ(ti)表示任务ti的后继任务集合;tentry表示开始任务(没有前驱的任务),texit表示结束任务(没有后继的任务)。
图2为本发明实施例提供的一个具有十个任务的工作流应用示意图,其中t1和t10分别为tentry和texit。此处假定工作流只有一个tentry和texit,如果有多个的话,可以添加虚拟任务(dummy task)使得工作流只有一个tentry和texit
在实际应用中,根据用户使用处理器的时间来收费。由于考虑的云计算平台上处理器完全异构,所以每个处理器有各自的单价。设处理器pk的租用单价为pricek。假设云计算系统中所有的计算和存储服务都工作在同一物理区域,那么通信时间ci,j仅取决于任务ti到任务tj之间的通信时间,如果任务tj与任务ti分配在同一处理器上时,则ci,j=0,因为处理器内部的数据传输一般是免费提供,因此在本研究的模型中假定其数据传输成本为0。
相应地,定义任务ti在处理器pk上的执行成本通过公式(1)确定,任务ti在处理器pk上的实际执行成本通过公式(2)确定:
cost(ti,pk)=wi,k×pricek (1)
其中,cost(ti,pk)为任务ti在处理器pk上的实际执行成本,wi,k∈W表示任务ti在处理器pk上的执行时间,pricek表示处理器pk的单位价格。
Figure BDA0002736998030000111
其中,f(i)是分配给任务ti的处理器的索引值,并且1≤f(i)≤|P|,G表示通信时间集合,T表示G的节点集合,wi,f(i)表示任务ti在处理器Pf(i)上的执行时间,pricef(i)为处理器Pf(i)的单位价格,cost(ti,pf(i))为任务ti在处理器Pf(i)上的实际执行成本。
进一步地,已知任务在处理器上的执行时间,通过遍历系统中所有处理器能够得到任务ti的最大执行成本以及最小执行成本;再者,根据确定的任务在处理器上的最大执行成本以及最小执行成本,就可以确定工作流G的最小执行成本和最大执行成本,其分别由以下公式(3)和公式(4)确定:
Figure BDA0002736998030000112
Figure BDA0002736998030000113
其中,cost(ti,pf(i))为任务ti在处理器Pf(i)上的实际执行成本,costmin(G)表示工作流G的最小执行成本,costmin(ti)表示任务ti在所有处理器上的最小执行成本,costmax(ti)表示任务ti在所有处理器上的最大执行成本,costmax(G)表示工作流G的最大执行成本。
在实际应用中,若假定costgiven(G)表示给定工作流G的预算,如果costgiven(G)小于工作流G的最小执行成本costmin(G),那么就不存在能够满足预算的调度,如果给定工作流G的预算costgiven(G)大于工作流G的最大执行成本costmax(G),那么任何调度方案都能满足预算约束。因此,公式(5)表示的条件应当成立:
costmin(G)≤costgiven(G)≤costmax(G) (5)
在本发明实施例中,为了给工作流包括的每个任务分配一个合理的处理器,使得工作流的执行成本不超过给定的预算,同时最小化工作流的执行时间,即存在公式(6)和公式(7)表达的条件:
Figure BDA0002736998030000121
Figure BDA0002736998030000122
其中,SL(G)为工作流的执行时间,AFT(ti)为任务ti的实际完成时间。
基于以上内容,开始介绍本发明实施例提供的工作流执行时间优化方法,本发明实施例提供的工作流执行时间优化方法主要包括任务排序,预算任务,任务分配和调度优化。
在实际应用中,由于任务之间存在依赖关系,所以生成的优先级队列必定为一个拓扑序列(Topological Order),即前驱任务必定排列在后继任务之前。在优先级队列中,tentry和texit分别在队首和队尾的位置。
在步骤101中,首先确定任务在处理器集合中包括的不同处理器上的执行时间差异值,进而结合任务的平均执行时间计算每个任务的自底向上等级值和自顶向下等级值,最终计算得到每个任务的优先级等级值,并据此确定任务优先级队列。
具体地,根据下列公式(8)确定任务ti在不同处理器上的执行时间差异值:
Figure BDA0002736998030000123
其中,TimeDiff(ti)表示任务ti在不同处理器上的执行时间差异值,wi,k∈W表示任务ti在处理器pk上的执行时间,|P|表示系统中处理器的数目,
Figure BDA0002736998030000124
为任务ti的平均执行时间。
公式(8)中的第二项求得的是任务ti执行时间的标准差,第一项是为了将该值归一化。
需要说明的,在实际应用中,任务在不同处理器上的执行时间差异值表示任务在各处理器上执行时间的差异程度,也可以表示为任务对处理器的敏感程度;举例来说,执行时间差异值越大,说明任务对处理器比较敏感,分配在不同的处理器上对任务的执行时间影响大,则应该优先调度该任务;执行时间差异值越小,说明任务对处理器不敏感,分配在不同的处理器上对任务的执行时间影响小,因此,该任务可以延迟调度。
基于上述公式(8)确定的任务的执行时间差异值,可以进一步地确定每个任务的自底向上等级值、自顶向下等级值和优先级等级值。
具体地,任务的自底向上等级值可以由公式(10)计算得到,该计算过程从结束任务texit开始,迭代计算每个任务的自底向上等级值。对于结束任务,其自底向上等级值可以通过相邻公式(9)确定:
Figure BDA0002736998030000131
Figure BDA0002736998030000132
其中,TimeDiff(texit)表示结束任务texit在不同处理器上的执行时间差异值,
Figure BDA0002736998030000133
表示结束任务texit在在不同处理器上的平均执行时间,ranku(texit)表示结束任务texit的自底向上等级值,TimeDiff(ti)表示任务ti的执行时间差异值,/>
Figure BDA0002736998030000134
表示任务ti在处理器上的平均执行时间,即/>
Figure BDA0002736998030000135
ci,j∈G表示当ti和tj没有被分配到同一处理器上时的通信时间,ranku(ti)表示任务ti的自底向上等级值,ranku(ti)表示任务ti的自底向上等级值,ci,j+ranku(tj)为任务tj的自底向上等级值与ci,j之和,/>
Figure BDA0002736998030000136
表示对于任务ti的每一个后继任务tj,计算ci,j+ranku(tj)之值,取最大值。
任务的自顶向下等级值可以由公式(11)计算得到,该计算过程从开始任务tentry开始,迭代计算每个任务的自顶向下等级值。对于开始任务tentry,rankd(tentry)=0。
Figure BDA0002736998030000137
其中,TimeDiff(ti)表示任务ti在不同处理器上的执行时间差异值,rankd(ti)表示表示任务ti的自顶向下等级值,
Figure BDA0002736998030000141
表示任务tj在处理器上的平均执行时间,rankd(tj)表示表示任务tj的自顶向下等级值,/>
Figure BDA0002736998030000142
表示对于任务ti的每一个前驱任务tj,计算/>
Figure BDA0002736998030000143
之值,取最大值。
进一步地,根据下列公式(12)确定任务的优先级等级值:
rankp(ti)=ranku(ti)+rankd(texit)-rankd(ti) (12)
其中,rankp(ti)表示任务ti的优先级等级值,ranku(ti)表示任务ti的自底向上等级值,rankd(texit)表示结束任务texit的自顶向下等级值,rankd(ti)表示任务ti的自顶向下等级值。
在本发明实施例中,根据公式(12)可以确定每个任务的优先级等级值,然后对多个任务的优先级等级值rankp做非升序排列,得到任务优先级队列。需要说明的是,在实际应用中,若存在有两个任务的优先级等级值相等,则可以对上述两个任务的排序进行任意安排。
任务优先级队列可以通过公式(13)表示:
Trank={ts(1),ts(2),...,ts(|N|)} (13)
其中,s(i)为队列第i个位置的任务的下标,并且ts(1)和ts(|N|)分别为开始任务tentry和结束任务texit
预算划分将工作流的总预算转化为每个任务的子预算,只要每个任务的执成本不超过设定的预分配子预算,那么工作流的执行成本就不会超过总预算,预算限制就得到了满足,生成的调度就是成功的。
在步骤102中,根据给定工作流的预算,可以通过下列公式(14)确定工作流的空余预算:
costspare(G)=costgiven(G)-costmin(G) (14)
其中,costgicen(G)为工作流G的初始预算,costspare(G)为工作流G的空余预算,costmin(G)为工作流G的最小执行时间。
为了确定为每个任务的预分配子预算,需要先确定任务的成本层次,任务的成本层次可以通过公式(15)确定:
Figure BDA0002736998030000151
Figure BDA0002736998030000152
其中,
Figure BDA0002736998030000153
表示任务ti的平均执行成本,CostDiff(ti)表示任务ti的在处理器集合上执行成本的差异值,cost(ti,pk)表示任务ti在处理器pk上的实际执行成本,|P|表示系统中处理器的数目,costlv(ti)表示任务ti的成本层次。
在本发明实施例中,根据公式(15)可以确定,具有较大执行成本和较大差异值的任务具有较大的成本层次值,将会得到比较大的空余预算,从而丰富任务的处理器选项。进一步地,任务ti所分得的空余预算可以通过公式(17)确定:
Figure BDA0002736998030000154
其中,costlv(ti)表示任务ti的成本层次,costspare(ti)表示任务ti的所分得的空余预算,costspare(G)表示工作流G的空余预算。
进一步地,可以通过公式(18)确定为任务ti的预分配子预算:
costpre(ti)=costmin(ti)+costspare(ti) (18)
在实际应用中,由于任务调度是根据之前计算的任务优先级值确定的,因此,若假定任务的调度次序为ts(1),ts(2),...,其中s(k)表示第k个被调度任务的索引值。那么当调度任务ts(i)时(即第i个被调度的任务),之前的i-1个已经被调度,执行成本也已确定,之后的|N|-i个尚未调度,所以任务实际的执行成本并不一定等于costpre(ti),因此优先调度的任务未充分利用的预算可以由后续任务利用,任务的预算约束是动态调整的,当前调度的任务可用的预算受已调度任务的影响。进一步地,若当前已调度的任务集合为T={ts(1),ts(2),...,ts(i-1)},当前调度任务为ts(i),尚未调度的任务集合为Tumsch={ts(i+1),ts(i+2),...,ts(|N|)}。那么当调度任务ts(i)时,工作流G的执行成本可以通过下列公式(19)确定:
Figure BDA0002736998030000161
其中,costs(i)(G)表示调度任务ts(i)时,工作流G的执行成本,cost(ts(i),pf(s(i)))表示将第i个调度的任务ts(i)分配至处理器pf(s(i))时的实际执行成本,cost(ts(x),pf(s(x)))表示已分配任务ts(x)的实际执行成本,costpre(ts(x))表示未分配任务ts(x)的预分配预算。
在本发明实施例中,为了保证工作流的预算约束得到满足,对于所有的任务ts(i),工作流G的执行成本costs(i)(G)必须小于等于工作流的预算costgiven(G),即costs(i)(G)≤costgiven(G)。因此当调度任务为ts(i)时,ts(i)的最大可用预算可以通过下列公式(20)确定:
Figure BDA0002736998030000162
其中,costgiven(G)表示为工作流G的初始预算,cost(ts(x),pf(s(x)))表示已分配任务ts(x)的在处理器pf(s(x))上的实际执行成本,costpre(ts(x))表示未分配任务ts(x)的预分配预算,costgiven(ts(i))表任务ts(i)的最大可用预算。
在本发明实施例中,只要为任务ts(i)选择执行成本不超过costgiven(ts(i))的处理器,那么任务ts(i)的预算约束就可以得到满足。如果所有任务的执行成本都不超过设置的最大可用预算,那么工作流的预算就得到了满足。
一个完整的调度方案需要确定任务的执行次序以及执行处理器,任务排序部分生成了任务优先级队列,后续则需要为每个任务分配一个合理的处理器,从而可以最小化工作流的执行时间。
在步骤103中,基于最早完成时间EFT的思想为任务选择处理器,即将任务分配至能够最早完成该任务的处理器上。但是在实际应用中,并不是所有的处理器都是可以用来执行该任务的,因此,在分配一个任务时,需要先根据公式(2)确定任务在每个处理器上的实际执行成本,当确定了任务在每个处理器上的实际执行成本之后,根据任务的最大可以预算与实际执行成本的大小关系,将最大可用预算大于实际执行成本的处理器去除,然后从剩余的处理器中选择能够最早完成该任务的处理器。
进一步地,根据下列公式(21)确定任务在处理器上的最早完成时间:
Figure BDA0002736998030000171
其中,EFT(ti,pk)表示任务ti在处理器pk上的最早完成时间,avail[pk]表示处理器pk空闲的最早时间,AFT(tj)表示任务tj的实际完成时间,wi,k∈W表示任务ti在处理器pk上的执行时间,c'j,i表示任务tj与任务ti之间的传输时间,如果tj与ti分配在同一处理器上时,c'j,i=0,否则cj,i=cj,i
根据下列公式(22)确定任务的时间完成时间:
Figure BDA0002736998030000172
其中,
Figure BDA0002736998030000173
表示确保AFT的处理器pm是任务ti的分配处理器,
Figure BDA0002736998030000174
表示即对于所有满足预算约束的处理器(执行成本小于任务的最大可用预算)cost(ti,pk)≤costgiven(ti),选择具有最小最早完成时间的处理器,在该处理器上的最早完成时间即为任务的实际完成时间。
需要说明的是,在本发明实施例中,由于根据公式(20)已经确定了任务优先级队列中的包括的每个任务的最大可用预算,因此可以根据公式(21)和(22)确定每个任务的实际完成时间,以及保证每个任务实际完成时间的处理器pm,然后可以通过轮询的方法,依次确定任务优先级队列中的包括的每个任务的实际完成时间。最后根据确定的每个任务的实际完成时间得到任务优先级队列的初始调度方法,即为每个任务选择了在满足预分配子预算的前提下能够最早完成该任务的处理器。
在本发明实施例中,当确认了任务优先级队列的初始调度方法之后,由于工作流任务之间的依赖关系,导致处理器上会存在许多的空闲时间,并且工作流的预算未必能够完全被利用。因此,还可以通过降低工作流的完成时间,来进一步的优化之前确认的初始调度方法。
具体地,根据初始调度方法中每个任务的时间完成时间,对每个任务进行升序排序,得到任务优化队列,根据初始调度方法中每个任务的实际开始时间对每个任务进行排序,排序得到的任务优化队列中的任务索引。举例来说,若得到的任务优化队列为Topti={to(1),to(2),...,to(|N|)},则任务索引为{o(1),o(2),...,o(|N|)}。其中,o(i)为处理的第i个任务to(i)的索引值,f(o(i))为任务to(i)在初始调度中分配的处理器的索引,因为优化调度尝试将任务分配至其他的处理器以优化调度,f'(o(i))为优化调度时为任务选择的新的处理器的索引。
进一步地,根据公式(23)确定工作流未使用的预算:
Figure BDA0002736998030000181
其中,costunused(G)表示工作流G未使用的预算,costgiven(G)表示工作流G的初始预算,cost(ti,pf(i))表示任务ti在处理器pf(i)上的的实际执行成本,f(i)表示任务ti在初始调度方法中所分配的处理器的索引值。
在实际应用中,任务可以重用工作流未使用的预算costunused(G),从而选择执行更快的处理器,加速自身以及后继任务的执行。同时,在初始调度方法中,某些任务可以延迟执行但是不影响后继任务的开始,因此,可以得到任务ti可以延迟的条件:
Figure BDA0002736998030000191
需要说明的是,对于可以延迟的任务,可以尝试将该任务分配至不影响后继任务开始且具有更小执行成本的处理器上,省出部分预算;对于不可延迟的任务,可以利用累积的可用预算,尝试将任务分配至具有更小执行时间的处理器上,以加速执行。
本发明实施例中,累积的可用预算可以通过公式(25)确定:
costaccum(G)=costumused(G) (25)
进一步地,当根据公式(23)、(24)和(25)确定了任务优化队列中的某个任务为可延迟任务时,则可以尝试将该任务分配至不影响后继任务开始且具有更小执行成本的处理器上,举例来说,若任务当前选择的处理器为f'(o(i)),那么该任务就省出部分预算,进一步地,可以通过下列公式(26)更新累积的可用预算:
costaccum(G)=costaccum(G)+cost(to(i),pf(o(i)))-cost(to(i),pf'(o(i))) (26)
换言之,当根据公式(23)、(24)和(25)确定了任务优化队列中的某个任务为不可延迟任务时,则可以尝试将任务分配至具有更小执行时间的处理器上。举例来说,若当前任务选择的处理器为f'(o(i)),那么该任务就利用了部分累积的预算,进一步地,也可以通过下列公式(26)更新累积的可用预算。在实际应用中,若存在costaccum(G)<0,则说明此时没有足够的未利用预算,该任务是不能迁移至其他处理器上的。
将任务优化队列中包括的全部任务均可以根据公式式(23)、(24)和(25),来确定该任务是否为可延迟任务或者为不可延迟任务,当将全部任务判断完之后,则可以得到任务优化队列的优化调度方法。通过优化调度方法,可以进一步地降低工作流的执行时间。
综上所述,本发明实施例提供工作流执行时间优化方法及装置,该方法包括:根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;根据所述任务的最大可以预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法。该方法通过考虑每个任务在不同处理器上的执行时间差异值,计算每个任务的优先级等级值,从而得到更合理的任务优先级队列;通过结合任务的平均执行成本和执行成本差异值,为任务优先级队列中的每个任务分配了更合理的子预算,丰富了每个任务的处理器选择,可以为任务选择更合理的处理器;该方法能够为异构云计算系统中预算约束的工作流生成具有最小完成时间的调度,针对现有的调度方法在预算分配方面的不足,提出了一种新的预算分配方法,能够为任务分配更合理的子预算;同时,考虑任务在处理器上执行时间的异构程度,提出了一个新的任务优先级确定方法,提出的调度方法不仅适用于异构云计算系统,也可以在新兴的边缘计算系统上使用,具有广泛的应用场景。
基于同一发明构思,本发明实施例提供了工作流执行时间优化装置,由于该装置解决技术问题的原理与工作流执行时间优化方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图3为本发明实施例提供的工作流执行时间优化装置结构示意图,该装置包括第一确定单元301,第二确定单元302和得到单元303。
第一确定单元301,用于根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;
第二确定单元302,用于根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;
得到单元303,用于根据所述任务的最大可以预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法。
优选地,所述第二确定单元302具体用于:
根据下列公式确定每个所述任务的成本层次:
Figure BDA0002736998030000211
根据下列公式确定每个所述任务的空余预算:
Figure BDA0002736998030000212
根据下列公式确定每个所述任务的预分配子预算:
costpre(ti)=costmin(ti)+costspare(ti)
根据下列公式确定每个所述任务的最大可用预算:
Figure BDA0002736998030000213
/>
其中,
Figure BDA0002736998030000214
其表示任务ti的在处理器集合上执行成本的差异值,/>
Figure BDA0002736998030000215
其表示任务ti的平均执行成本,cost(ti,pk)表示任务ti在处理器pk上的执行成本,|P|表示处理器集合中处理器的数目,costlv(ti)表示任务ti的成本层次,costspare(ti)表示任务ti的空余预算,costspare(G)表示工作流G的空余预算;/>
Figure BDA0002736998030000216
表示任务ti在处理器集合上的最小执行成本,costspare(ti)表示任务ti分到的空余预算,costpre(ti)表示任务ti的预分配子预算;costgiven(G)表示工作流G的预算,cost(ts(x),pf(s(x)))表示已分配任务ts(x)的实际执行成本,costpre(ts(x))表示未分配任务ts(x)的预分配预算,costgiven(ts(i))表示任务ts(i)的最大可用预算。
所述得到单元303还用于:
根据所述初始调度方法对所述任务优先级队列包括的任务进行升序排列,得到任务优化队列;
根据所述工作流的初始预算和所述任务优先级队列包括的所述任务的实际完成时间,确定所述工作流的未使用预算以及所述工作流的累计可用预算;
根据延迟判断条件确定所述任务优化队列包括的每个所述任务是否可延迟,并根据判断结果,输出每个所述任务的优化调度方法;其中,优化调度方法包括:可延迟任务分配至不影响后继续任务开始且具有最小执行成本的处理器上;或者,根据所述工作流的累计可用预算,将不可延迟任务分配至具有最小执行成本的处理器上。
优选地,根据下列公式确定所述工作流的未使用预算:
Figure BDA0002736998030000221
其中,costunused(G)表示工作流G的未使用预算,costgiven(G)表示工作流G的初始预算,cost(ti,pf(i))表示任务ti的实际执行成本,f(i)表示任务ti在所述任务优化队列所分配的处理器的索引值。
优选地,所述延迟判断条件通过下列公式确定:
Figure BDA0002736998030000222
所述输出每个所述任务的优化调度方法之后,还包括:根据下列公式更新所述工作流的累计可用预算:
costaccum(G)=costaccum(G)+cost(to(i),pf(o(i)))-cost(to(i),pf'(o(i)))
其中,wj,f(j)表示任务tj在处理器Pf(j)上的执行时间,c'i,j为任务ti与任务tj之间的传输时间,AFT(tj)为任务tj的实际完成时间,cost(to(i),pf'(o(i)))表示所述任务优化队列中包括的任务to(i)在处理器pf'(o(i))上的实际执行成本,costaccum(G)表示所述工作流的累计可用预算,cost(to(i),pf(o(i)))表示所述任务优化队列中包括的任务to(i)在处理器pf(o(i))上的实际执行成本,f(o(i))表示任务to(i)在初始调度方法中分配的处理器的索引,f'(o(i))表示在优化调度方法中为任务to(i)选择的新处理器的索引。
优选地,根据下列公式确定所述任务的执行时间差异值:
Figure BDA0002736998030000231
其中,TimeDiff(ti)表示任务ti的执行时间差异值,wi,k∈W表示任务ti在处理器pk上的执行时间,|P|表示处理器集合中处理器的数目,
Figure BDA0002736998030000232
表示任务ti的平均执行时间;
所述第一确定单元301具体用于:
确定每个所述任务的自底向上等级值和自顶向下等级值,根据每个所述任务的自底向上等级值和每个所述任务的自顶向下等级值,通过下列公式确定每个所述任务的优先级等级值:
rankp(ti)=ranku(ti)+rankd(texit)-rankd(ti)
其中,rankp(ti)表示任务ti的优先级等级值,ranku(ti)表示任务ti的自底向上等级值,rankd(texit)表示结束任务texit的自顶向下等级值,rankd(ti)表示任务ti的自顶向下等级值。
优选地,所述得到单元具体用于:
根据下列公式确定每个所述任务的实际完成时间:
Figure BDA0002736998030000233
其中,
Figure BDA0002736998030000241
其表示任务ti在处理器pk上的最早完成时间,avail[pk]表示处理器pk空闲的最早时间,AFT(tj)表示任务tj的实际完成时间。wi,k∈W表示任务ti在处理器pk上的执行时间,c'j,i表示任务tj与任务ti之间的传输时间,/>
Figure BDA0002736998030000242
表示确保AFT的处理器pm是任务ti的分配处理器。
应当理解,以上工作流执行时间优化装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的工作流执行时间优化装置所实现的功能与上述实施例提供的工作流执行时间优化方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (5)

1.工作流执行时间优化方法,其特征在于,包括:
根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;
根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;
根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;
根据所述任务的最大可用预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法;
所述根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值,具体包括:
根据下列公式确定任务
Figure QLYQS_1
在不同处理器上的执行时间差异值:
Figure QLYQS_2
其中,
Figure QLYQS_5
表示任务/>
Figure QLYQS_7
在不同处理器上的执行时间差异值,/>
Figure QLYQS_8
表示任务/>
Figure QLYQS_4
在处理器/>
Figure QLYQS_6
上的执行时间,/>
Figure QLYQS_9
表示系统中处理器的数目,/>
Figure QLYQS_10
为任务/>
Figure QLYQS_3
的平均执行时间;
根据所述执行时间差异值确定每个所述任务的自底向上等级值、自顶向下等级值和优先级等级值;
根据下列公式计算所述自底向上等级值:
Figure QLYQS_11
Figure QLYQS_12
其中,
Figure QLYQS_14
表示结束任务/>
Figure QLYQS_24
在不同处理器上的执行时间差异值,/>
Figure QLYQS_31
表示结束任务/>
Figure QLYQS_15
在在不同处理器上的平均执行时间,/>
Figure QLYQS_22
表示结束任务/>
Figure QLYQS_29
的自底向上等级值,/>
Figure QLYQS_34
表示任务/>
Figure QLYQS_16
的执行时间差异值,/>
Figure QLYQS_21
表示任务/>
Figure QLYQS_27
在处理器上的平均执行时间,即/>
Figure QLYQS_33
,/>
Figure QLYQS_18
表示当/>
Figure QLYQS_23
和/>
Figure QLYQS_30
没有被分配到同一处理器上时的通信时间,
Figure QLYQS_36
表示任务/>
Figure QLYQS_17
的自底向上等级值,/>
Figure QLYQS_25
表示任务/>
Figure QLYQS_32
的自底向上等级值,
Figure QLYQS_37
为任务/>
Figure QLYQS_13
的自底向上等级值与/>
Figure QLYQS_20
之和,/>
Figure QLYQS_28
表示对于任务
Figure QLYQS_35
的每一个后继任务/>
Figure QLYQS_19
,计算/>
Figure QLYQS_26
之值,取最大值;
根据下列公式计算所述自顶向下等级值:
Figure QLYQS_38
其中,
Figure QLYQS_41
表示任务/>
Figure QLYQS_43
在不同处理器上的执行时间差异值,/>
Figure QLYQS_46
表示表示任务/>
Figure QLYQS_40
的自顶向下等级值,/>
Figure QLYQS_45
表示任务/>
Figure QLYQS_48
在处理器上的平均执行时间,/>
Figure QLYQS_49
表示表示任务/>
Figure QLYQS_39
的自顶向下等级值,/>
Figure QLYQS_44
表示对于任务/>
Figure QLYQS_47
的每一个前驱任务/>
Figure QLYQS_50
,计算/>
Figure QLYQS_42
之值,取最大值;
根据下列公式确定任务的优先级等级值:
Figure QLYQS_51
其中,
Figure QLYQS_53
表示任务/>
Figure QLYQS_56
的优先级等级值,/>
Figure QLYQS_58
表示任务/>
Figure QLYQS_54
的自底向上等级值,
Figure QLYQS_55
表示结束任务/>
Figure QLYQS_57
的自顶向下等级值,/>
Figure QLYQS_59
表示任务/>
Figure QLYQS_52
的自顶向下等级值;
所述根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算,具体包括:
根据下列公式确定每个所述任务的成本层次:
Figure QLYQS_60
根据下列公式确定每个所述任务的空余预算:
Figure QLYQS_61
其中,
Figure QLYQS_65
,其表示任务/>
Figure QLYQS_69
的在处理器集合上执行成本的差异值,/>
Figure QLYQS_71
,其表示任务/>
Figure QLYQS_64
的平均执行成本,
Figure QLYQS_68
表示任务/>
Figure QLYQS_72
在处理器/>
Figure QLYQS_74
上的执行成本,/>
Figure QLYQS_62
表示处理器集合中处理器的数目,
Figure QLYQS_66
表示任务/>
Figure QLYQS_70
的成本层次,/>
Figure QLYQS_73
表示任务/>
Figure QLYQS_63
的空余预算,/>
Figure QLYQS_67
表示工作流G的空余预算;
根据给定工作流的预算,通过下列公式确定工作流的空余预算:
Figure QLYQS_75
其中,
Figure QLYQS_80
为工作流G的初始预算,/>
Figure QLYQS_84
为工作流G的空余预算,/>
Figure QLYQS_91
为工作流G的最小执行时间;工作流/>
Figure QLYQS_77
,/>
Figure QLYQS_85
表示/>
Figure QLYQS_92
的节点集合,/>
Figure QLYQS_97
表示工作流的一个任务;/>
Figure QLYQS_81
表示通信边集合,/>
Figure QLYQS_89
表示从/>
Figure QLYQS_96
到/>
Figure QLYQS_98
有一条通信边,/>
Figure QLYQS_83
为/>
Figure QLYQS_87
的前驱节点,
Figure QLYQS_94
为/>
Figure QLYQS_102
的后继节点;/>
Figure QLYQS_82
表示通信时间集合,/>
Figure QLYQS_86
表示当/>
Figure QLYQS_93
和/>
Figure QLYQS_99
没有被分配到同一处理器上时的通信时间;/>
Figure QLYQS_76
表示大小为/>
Figure QLYQS_88
的执行时间矩阵,/>
Figure QLYQS_95
表示任务/>
Figure QLYQS_101
在处理器/>
Figure QLYQS_79
上的执行时间;/>
Figure QLYQS_90
表示任务/>
Figure QLYQS_100
的前驱任务集合,/>
Figure QLYQS_103
表示任务/>
Figure QLYQS_78
的后继任务集合;
所述根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算,具体包括:
根据下列公式确定每个所述任务的预分配子预算:
Figure QLYQS_104
其中,
Figure QLYQS_105
表示任务/>
Figure QLYQS_106
在处理器集合上的最小执行成本,
Figure QLYQS_107
表示任务/>
Figure QLYQS_108
分到的空余预算,/>
Figure QLYQS_109
表示任务/>
Figure QLYQS_110
的预分配子预算;
根据下列公式确定每个所述任务的最大可用预算:
Figure QLYQS_111
其中,
Figure QLYQS_112
表示工作流G的预算,/>
Figure QLYQS_113
表示已分配任务/>
Figure QLYQS_114
的实际执行成本,/>
Figure QLYQS_115
表示未分配任务/>
Figure QLYQS_116
的预分配预算,/>
Figure QLYQS_117
表示任务/>
Figure QLYQS_118
的最大可用预算;
所述依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,具体包括:
根据下列公式确定每个所述任务的实际完成时间:
Figure QLYQS_119
其中,
Figure QLYQS_126
,其表示任务/>
Figure QLYQS_125
在处理器
Figure QLYQS_131
上的最早完成时间,/>
Figure QLYQS_124
表示处理器/>
Figure QLYQS_129
空闲的最早时间,/>
Figure QLYQS_123
表示任务/>
Figure QLYQS_133
的实际完成时间;/>
Figure QLYQS_127
表示任务/>
Figure QLYQS_132
在处理器/>
Figure QLYQS_120
上的执行时间,/>
Figure QLYQS_128
表示任务/>
Figure QLYQS_121
与任务/>
Figure QLYQS_134
之间的传输时间,/>
Figure QLYQS_130
表示确保AFT的处理器/>
Figure QLYQS_135
是任务/>
Figure QLYQS_122
的分配处理器。
2.如权利要求1所述的方法,其特征在于,所述根据所述实际完成时间得到所述任务优先级队列的初始调度方法之后,还包括:
根据所述初始调度方法对所述任务优先级队列包括的任务进行升序排列,得到任务优化队列;
根据所述工作流的初始预算和所述任务优先级队列包括的所述任务的实际完成时间,确定工作流的未使用预算以及工作流的累计可用预算;
根据延迟判断条件确定所述任务优化队列包括的每个所述任务是否可延迟,并根据判断结果,输出每个所述任务的优化调度方法;其中,优化调度方法包括:可延迟任务分配至不影响后继续任务开始且具有最小执行成本的处理器上;或者,根据所述工作流的累计可用预算,将不可延迟任务分配至具有最小执行成本的处理器上。
3.如权利要求2所述的方法,其特征在于,根据下列公式确定所述工作流的未使用预算:
Figure QLYQS_136
其中,
Figure QLYQS_137
表示工作流G的未使用预算,/>
Figure QLYQS_138
表示工作流G的初始预算,
Figure QLYQS_139
表示任务/>
Figure QLYQS_140
的实际执行成本,/>
Figure QLYQS_141
表示任务/>
Figure QLYQS_142
在所述任务优化队列所分配的处理器的索引值。
4.如权利要求2所述的方法,其特征在于,所述延迟判断条件通过下列公式确定:
Figure QLYQS_143
所述输出每个所述任务的优化调度方法之后,还包括:根据下列公式更新所述工作流的累计可用预算:
Figure QLYQS_144
其中,
Figure QLYQS_152
表示任务/>
Figure QLYQS_150
在处理器/>
Figure QLYQS_160
上的执行时间,/>
Figure QLYQS_149
为任务/>
Figure QLYQS_157
与任务/>
Figure QLYQS_154
之间的传输时间,/>
Figure QLYQS_162
为任务/>
Figure QLYQS_161
的实际完成时间,/>
Figure QLYQS_163
表示所述任务优化队列中包括的任务/>
Figure QLYQS_146
在处理器/>
Figure QLYQS_153
上的实际执行成本,/>
Figure QLYQS_145
表示所述工作流的累计可用预算,/>
Figure QLYQS_155
表示所述任务优化队列中包括的任务/>
Figure QLYQS_151
在处理器/>
Figure QLYQS_158
上的实际执行成本,/>
Figure QLYQS_147
表示任务/>
Figure QLYQS_159
在初始调度方法中分配的处理器的索引,/>
Figure QLYQS_148
表示在优化调度方法中为任务/>
Figure QLYQS_156
选择的新处理器的索引。
5.工作流执行时间优化装置,其特征在于,包括:
第一确定单元,用于根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值以及任务优先级队列;其中,所述任务优先级队列按照每个所述任务的调度按照非升序排列;
第二确定单元,用于根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算;根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算;
得到单元,用于根据所述任务的最大可用预算与所述任务的实际执行成本的大小关系,对处理器集合进行优化,得到至少一个可用处理器,基于最早完成时间EFT,依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,根据所述实际完成时间得到所述任务优先级队列的初始调度方法;
所述根据任务在处理器集合上的执行时间差异值,确定每个所述任务的优先级等级值,具体包括:
根据下列公式确定任务
Figure QLYQS_164
在不同处理器上的执行时间差异值:
Figure QLYQS_165
其中,
Figure QLYQS_167
表示任务/>
Figure QLYQS_169
在不同处理器上的执行时间差异值,/>
Figure QLYQS_171
表示任务/>
Figure QLYQS_168
在处理器/>
Figure QLYQS_170
上的执行时间,/>
Figure QLYQS_172
表示系统中处理器的数目,/>
Figure QLYQS_173
为任务/>
Figure QLYQS_166
的平均执行时间;
根据所述执行时间差异值确定每个所述任务的自底向上等级值、自顶向下等级值和优先级等级值;
根据下列公式计算所述自底向上等级值:
Figure QLYQS_174
Figure QLYQS_175
其中,
Figure QLYQS_182
表示结束任务/>
Figure QLYQS_187
在不同处理器上的执行时间差异值,/>
Figure QLYQS_195
表示结束任务/>
Figure QLYQS_177
在在不同处理器上的平均执行时间,/>
Figure QLYQS_185
表示结束任务/>
Figure QLYQS_193
的自底向上等级值,/>
Figure QLYQS_199
表示任务/>
Figure QLYQS_178
的执行时间差异值,/>
Figure QLYQS_184
表示任务/>
Figure QLYQS_191
在处理器上的平均执行时间,即/>
Figure QLYQS_197
,/>
Figure QLYQS_180
表示当/>
Figure QLYQS_189
和/>
Figure QLYQS_194
没有被分配到同一处理器上时的通信时间,
Figure QLYQS_200
表示任务/>
Figure QLYQS_179
的自底向上等级值,/>
Figure QLYQS_183
表示任务/>
Figure QLYQS_190
的自底向上等级值,
Figure QLYQS_196
为任务/>
Figure QLYQS_176
的自底向上等级值与/>
Figure QLYQS_186
之和,/>
Figure QLYQS_192
表示对于任务
Figure QLYQS_198
的每一个后继任务/>
Figure QLYQS_181
,计算/>
Figure QLYQS_188
之值,取最大值;
根据下列公式计算所述自顶向下等级值:
Figure QLYQS_201
其中,
Figure QLYQS_204
表示任务/>
Figure QLYQS_208
在不同处理器上的执行时间差异值,/>
Figure QLYQS_210
表示表示任务/>
Figure QLYQS_205
的自顶向下等级值,/>
Figure QLYQS_206
表示任务/>
Figure QLYQS_209
在处理器上的平均执行时间,/>
Figure QLYQS_212
表示表示任务/>
Figure QLYQS_202
的自顶向下等级值,/>
Figure QLYQS_207
表示对于任务/>
Figure QLYQS_211
的每一个前驱任务/>
Figure QLYQS_213
,计算/>
Figure QLYQS_203
之值,取最大值;
根据下列公式确定任务的优先级等级值:
Figure QLYQS_214
其中,
Figure QLYQS_217
表示任务/>
Figure QLYQS_219
的优先级等级值,/>
Figure QLYQS_221
表示任务/>
Figure QLYQS_216
的自底向上等级值,
Figure QLYQS_218
表示结束任务/>
Figure QLYQS_220
的自顶向下等级值,/>
Figure QLYQS_222
表示任务/>
Figure QLYQS_215
的自顶向下等级值;
所述根据每个所述任务在处理器集合上的执行成本差异值、每个所述任务的平均执行成本以及每个所述任务的空余预算,确定每个所述任务的空余预算,具体包括:
根据下列公式确定每个所述任务的成本层次:
Figure QLYQS_223
根据下列公式确定每个所述任务的空余预算:
Figure QLYQS_224
其中,
Figure QLYQS_226
,其表示任务/>
Figure QLYQS_231
的在处理器集合上执行成本的差异值,/>
Figure QLYQS_234
,其表示任务/>
Figure QLYQS_227
的平均执行成本,
Figure QLYQS_232
表示任务/>
Figure QLYQS_235
在处理器/>
Figure QLYQS_237
上的执行成本,/>
Figure QLYQS_225
表示处理器集合中处理器的数目,
Figure QLYQS_229
表示任务/>
Figure QLYQS_233
的成本层次,/>
Figure QLYQS_236
表示任务/>
Figure QLYQS_228
的空余预算,/>
Figure QLYQS_230
表示工作流G的空余预算;
根据给定工作流的预算,通过下列公式确定工作流的空余预算:
Figure QLYQS_238
其中,
Figure QLYQS_244
为工作流G的初始预算,/>
Figure QLYQS_253
为工作流G的空余预算,/>
Figure QLYQS_260
为工作流G的最小执行时间;工作流/>
Figure QLYQS_243
,/>
Figure QLYQS_248
表示/>
Figure QLYQS_255
的节点集合,/>
Figure QLYQS_262
表示工作流的一个任务;/>
Figure QLYQS_242
表示通信边集合,/>
Figure QLYQS_249
表示从/>
Figure QLYQS_256
到/>
Figure QLYQS_263
有一条通信边,/>
Figure QLYQS_245
为/>
Figure QLYQS_251
的前驱节点,
Figure QLYQS_258
为/>
Figure QLYQS_266
的后继节点;/>
Figure QLYQS_246
表示通信时间集合,/>
Figure QLYQS_247
表示当/>
Figure QLYQS_254
和/>
Figure QLYQS_261
没有被分配到同一处理器上时的通信时间;/>
Figure QLYQS_239
表示大小为/>
Figure QLYQS_252
的执行时间矩阵,/>
Figure QLYQS_259
表示任务/>
Figure QLYQS_265
在处理器/>
Figure QLYQS_241
上的执行时间;/>
Figure QLYQS_250
表示任务/>
Figure QLYQS_257
的前驱任务集合,/>
Figure QLYQS_264
表示任务/>
Figure QLYQS_240
的后继任务集合;
所述根据所述工作流的空余预算和所述任务在处理器集合上的最小执行成本,确定每个所述任务的预分配子预算以及最大可用预算,具体包括:
根据下列公式确定每个所述任务的预分配子预算:
Figure QLYQS_267
其中,
Figure QLYQS_268
表示任务/>
Figure QLYQS_269
在处理器集合上的最小执行成本,
Figure QLYQS_270
表示任务/>
Figure QLYQS_271
分到的空余预算,/>
Figure QLYQS_272
表示任务/>
Figure QLYQS_273
的预分配子预算;
根据下列公式确定每个所述任务的最大可用预算:
Figure QLYQS_274
其中,
Figure QLYQS_275
表示工作流G的预算,/>
Figure QLYQS_276
表示已分配任务/>
Figure QLYQS_277
的实际执行成本,/>
Figure QLYQS_278
表示未分配任务/>
Figure QLYQS_279
的预分配预算,/>
Figure QLYQS_280
表示任务/>
Figure QLYQS_281
的最大可用预算;
所述依次确定所述任务优先级队列包括的每个所述任务在可用处理器上的实际完成时间,具体包括:
根据下列公式确定每个所述任务的实际完成时间:
Figure QLYQS_282
其中,
Figure QLYQS_293
,其表示任务/>
Figure QLYQS_286
在处理器
Figure QLYQS_297
上的最早完成时间,/>
Figure QLYQS_289
表示处理器/>
Figure QLYQS_298
空闲的最早时间,/>
Figure QLYQS_284
表示任务/>
Figure QLYQS_294
的实际完成时间;/>
Figure QLYQS_287
表示任务/>
Figure QLYQS_296
在处理器/>
Figure QLYQS_283
上的执行时间,/>
Figure QLYQS_295
表示任务/>
Figure QLYQS_285
与任务/>
Figure QLYQS_292
之间的传输时间,/>
Figure QLYQS_290
表示确保AFT的处理器/>
Figure QLYQS_291
是任务/>
Figure QLYQS_288
的分配处理器。
CN202011142303.9A 2020-10-22 2020-10-22 工作流执行时间优化方法及装置 Active CN112308304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011142303.9A CN112308304B (zh) 2020-10-22 2020-10-22 工作流执行时间优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011142303.9A CN112308304B (zh) 2020-10-22 2020-10-22 工作流执行时间优化方法及装置

Publications (2)

Publication Number Publication Date
CN112308304A CN112308304A (zh) 2021-02-02
CN112308304B true CN112308304B (zh) 2023-06-23

Family

ID=74326963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011142303.9A Active CN112308304B (zh) 2020-10-22 2020-10-22 工作流执行时间优化方法及装置

Country Status (1)

Country Link
CN (1) CN112308304B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336713A (zh) * 2013-06-19 2013-10-02 西北工业大学 一种基于任务复制与聚簇的并行任务分配方法
CN110008023A (zh) * 2019-03-26 2019-07-12 湖南农业大学 基于遗传算法的云计算系统预算约束随机任务调度方法
CN110308967A (zh) * 2019-06-06 2019-10-08 东南大学 一种基于混合云的工作流成本-延迟最优化任务分配方法
CN110609736A (zh) * 2019-07-30 2019-12-24 中国人民解放军国防科技大学 一种云环境下截止期约束的科学工作流调度方法
CN110825527A (zh) * 2019-11-08 2020-02-21 北京理工大学 一种云环境下截止期-预算驱动的科学工作流调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336713A (zh) * 2013-06-19 2013-10-02 西北工业大学 一种基于任务复制与聚簇的并行任务分配方法
CN110008023A (zh) * 2019-03-26 2019-07-12 湖南农业大学 基于遗传算法的云计算系统预算约束随机任务调度方法
CN110308967A (zh) * 2019-06-06 2019-10-08 东南大学 一种基于混合云的工作流成本-延迟最优化任务分配方法
CN110609736A (zh) * 2019-07-30 2019-12-24 中国人民解放军国防科技大学 一种云环境下截止期约束的科学工作流调度方法
CN110825527A (zh) * 2019-11-08 2020-02-21 北京理工大学 一种云环境下截止期-预算驱动的科学工作流调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
异构云系统中预算成本约束下高效的工作流调度算法;张龙信;王兰;肖满生;文志华;李肯立;;小型微型计算机系统(第06期);64-69 *
张龙信等.异构云系统中预算成本约束下高效的工作流调度算法.小型微型计算机系统.2020,1182-1187. *

Also Published As

Publication number Publication date
CN112308304A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
US10031775B2 (en) Backfill scheduling for embarrassingly parallel jobs
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
Xie et al. Mixed real-time scheduling of multiple dags-based applications on heterogeneous multi-core processors
US20120304186A1 (en) Scheduling Mapreduce Jobs in the Presence of Priority Classes
CN114610474B (zh) 一种异构超算环境下多策略的作业调度方法及系统
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
Zhou et al. Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments
CN106201681B (zh) Hadoop平台下基于预释放资源列表的任务调度方法
CN115033357A (zh) 基于动态资源选择策略的微服务工作流调度方法及装置
CN115586961A (zh) 一种ai平台计算资源任务调度方法、装置及介质
CN110275765B (zh) 基于分支dag依赖的数据并行作业调度方法
CN114968565A (zh) 资源管理方法、装置、电子设备、存储介质及服务器
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN114675953A (zh) 资源动态调度方法、装置、设备及计算机可读存储介质
CN111736959B (zh) 异构集群下考虑数据亲和性的Spark任务调度方法
CN112308304B (zh) 工作流执行时间优化方法及装置
Nivodhini et al. Algorithms to improve scheduling techniques in IaaS cloud
CN115858169A (zh) 一种作业资源分配方法、装置、电子设备及存储介质
CN112506640B (zh) 一种用于加密运算芯片的多处理器架构及调配方法
Bibal et al. An auto-scaling framework for heterogeneous Hadoop systems
CN111506407B (zh) Pull模式与Push模式相结合的资源管理与作业调度方法、系统
Girisagar et al. Mapping workflow resource requests for bandwidth efficiency in data centers
CN113127205B (zh) 一种云中满足截止时间约束且优化成本的工作流调度方法
CN111522637A (zh) 一种基于成本效益的storm任务调度方法
CN114489926B (zh) 一种基于截止期限制的云中微服务负载均衡方法

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