CN111258730A - 一种基于竞态条件的任务调度方法 - Google Patents

一种基于竞态条件的任务调度方法 Download PDF

Info

Publication number
CN111258730A
CN111258730A CN202010031828.9A CN202010031828A CN111258730A CN 111258730 A CN111258730 A CN 111258730A CN 202010031828 A CN202010031828 A CN 202010031828A CN 111258730 A CN111258730 A CN 111258730A
Authority
CN
China
Prior art keywords
function
sub
task
race condition
follows
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.)
Pending
Application number
CN202010031828.9A
Other languages
English (en)
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.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
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 Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN202010031828.9A priority Critical patent/CN111258730A/zh
Publication of CN111258730A publication Critical patent/CN111258730A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明属于任务调度技术领域,具体涉及一种基于竞态条件的任务调度方法。本发明通过不确定矩阵描述时间序列特征以及测量任务执行不确定性,利用最大熵优化发提出的任务调度算法确保任务执行期间发生的竞态条件概率最低。本发明的任务调度优化方法在低功耗***平台有更高的CPU利用率,吞吐量和更低的计算复杂度和任务执行时间,具有一定的研究和使用价值。

Description

一种基于竞态条件的任务调度方法
技术领域
本发明属于任务调度技术领域,具体涉及一种基于竞态条件的任务调度方法。
背景技术
在多任务计算***中,线程通常被用来为响应某些事件而来执行并行操作。由于这些事件的内在不确定性,当不同的线程以非因果顺序访问一个共享资源(例如总线、内存)并且至少有一个线程必须在共享资源上写入时,就会出现竞态条件。由于竞态条件会导致不可预知的后果,因此,通过智能的竞态条件检测和有效的任务调度来减少竞争是至关重要的。
如今已经有一些现有的研究对竞态条件进行检测。通过在编译时识别所有可能的竞态条件,静态方法是可以有高覆盖率的,但是通过静态分析检测竞态条件在***运行时是不可判定的。因此又有人提出了动态检测方法,一般将动态方法分类为“on-the-fly”或“post-mortem”两种,这些方法都可以检测***在执行的过程中出现的竞态条件。
虽然研究者提出了众多优化任务调度技术,但是,在复杂的多核计算***中应用上述提到的现有的方法,竞态条件检测的性能就会严重下降,因为这些方法没有考虑硬件相关的因素。在面向硬件的方法中,需要考虑与硬件相关的因素,如内存的层次结构或者缓存一致性模型。此外,由于不同的执行环境表现出不同的事件发生概率分布,多核计算***中的任务执行环境对竞态条件有很大的影响。这里的执行环境指的是***硬件平台(例如并行处理器的核数)、应用程序(例如FFT),输入参数(例如输入数据的大小)等。不过,这些现有的方法都没有将执行环境视为设计参数。因此,他们的竞态条件检测性能在多核计算***中并不是最佳的。
发明内容
本发明的目的在于提供通过不确定矩阵描述时间序列特征以及测量任务执行不确定性,利用最大熵优化法提出的新算法确保任务执行期间发生的竞态条件概率最低的一种基于竞态条件的任务调度方法。
本发明的目的通过如下技术方案来实现:包括以下步骤:
步骤1:输入任务调度序列;
步骤2:构造竞态条件检测模型;
某操作事件e作为输入,识别竞态条件和Happened-Before关系;
若输入的操作事件e为接收消息事件,则其对应于发送消息事件es,并且会在相同任务中发现每一个前置的接收消息事件e′;如果e′||es,则判定在es和e′s之间存在竞态条件,用
Figure BDA0002364599840000011
表示;
若输入的操作事件e为获取信号量事件,则其对应于发送信号量事件eg,并且会在相同任务中发现每一个前置的获取信号量e′;如果e′||eg,则在e′和eg之间存在竞态条件,用
Figure BDA0002364599840000021
表示;
如果n个操作事件形成了执行序列
Figure BDA0002364599840000022
且产生的时间序列t1<t2<…<tn<t1,则判定
Figure BDA0002364599840000023
为非灾难性的竞态条件;
步骤3:确定竞态集合;
由于竞态条件的不确定性,最大熵模型函数p(y|x)是竞态条件可能发生的最大概率,因此可以获得最大发生概率的竞态集合;最大熵模型函数p(y|x)求解方法为:
步骤3.1:确定一个特征空间作为问题域,收集原始训练数据并将其转换为训练样本;每个训练样本由一个实例x和其目标类y组成,一组训练样本T={(x1,y1),(x2,y2),…,(xn,yn)}对应于一个特定的执行环境;当事件yi发生时,相应的上下文信息是xi,经验概率分布
Figure BDA00023645998400000210
是从这个训练样本中获得,特征f指的是x和y之间的特定关系,特征经验的期望概率是满足二元关系中特定要求的所有经验概率的综合,二元函数定义如下:
Figure BDA0002364599840000024
实际概率函数定义如下:
Figure BDA0002364599840000025
步骤3.2:选择特征作为优化约束,保持特征的经验概率和预期概率一致,令步骤3.1中的
Figure BDA0002364599840000026
P是一个满足约束集C的统计模型,argmax使得熵值最大化;在满足约束集C所有约束条件时,确定最大熵;约束集C的函数定义如下:
Figure BDA0002364599840000027
熵值最大化函数定义如下:
Figure BDA0002364599840000028
步骤3.3:导出模拟最大熵的理论模型,将约束优化问题转化为非约束优化问题,为每个特征值fi引入拉格朗日算子λ,由于p(y|x)是一个条件概率,
Figure BDA0002364599840000029
因此,通过每个实例x的参数k(x),拉格朗日函数定义如下:
Figure BDA0002364599840000031
相应的参数λi将会把特征fi的权重考虑在内,因此,λi满足最大熵的条件p(y|x),pλ的最大值函数定义如下:
Figure BDA0002364599840000032
步骤3.4:应用多重收敛来调整λi,具体描述为:
步骤3.4.1:初始化λi (0)
步骤3.4.2:重复函数直至其收敛,函数定义如下:
Figure BDA0002364599840000034
真实参数γ和Λ={λ12,...,λn}都是n+1的约束;为了最大化η(p,Λ,γ),利用步骤3.3的函数来表示pλ(y|x),并结合
Figure BDA0002364599840000036
可以确定最大熵模型,最大熵模型函数定义如下:
Figure BDA0002364599840000035
步骤4:划分子任务并消除竞态条件;
如果两个任务之间存在竞态条件,则每个任务将会分为两个部分即没有灾难性的竞态条件的子任务(Ti',Tj')和一个涉及到灾难性竞态条件的子任务(Tsub(i),Tsub(j));使用Lock函数避免Tsub(i)和Tsub(j)这两个子任务的同步问题,消除灾难性竞态条件;Tsub会被允许多次申请Lock函数而不会导致死锁,同时有必要确定Lock的拥有者和持有者数量LockCounter;当LockCounter为0时,则允许Tsub(i)或Tsub(j)申请Lock,在一个新的申请之后,LockCounter增加1,并在Lock函数后减1;如果Tsub(i)持有一个Lock,则如果Tsub(j)请求Lock,它将会阻塞;如果Tsub(i)重新申请已经存在的Lock,则将会允许此操作;
步骤5:一旦处理器内核处于空闲状态,所有子任务和任务就会循环分配给处理器内核。
本发明的有益效果在于:
本发明通过不确定矩阵描述时间序列特征以及测量任务执行不确定性,利用最大熵优化发提出的任务调度算法确保任务执行期间发生的竞态条件概率最低。本发明的任务调度优化方法在低功耗***平台有更高的CPU利用率,吞吐量和更低的计算复杂度和任务执行时间,具有一定的研究和使用价值。
附图说明
图1为本发明的一种基于竞态条件的任务调度方法的流程图。
图2为任务执行时间比较图。
图3(a)为在200kb输入数据大小的情况下8核执行时间比较图。
图3(b)为在200kb输入数据大小的情况下16核执行时间比较图。
图3(c)为在200kb输入数据大小的情况下24核执行时间比较图。
图3(d)为在200kb输入数据大小的情况下32核执行时间比较图。
图4(a)为在不同输入数据大小情况下的8核执行时间比较图。
图4(b)为在不同输入数据大小情况下的16核执行时间比较图。
图4(c)为在不同输入数据大小情况下的24核执行时间比较图。
图4(d)为在不同输入数据大小情况下的32核执行时间比较图。
图5为处理器内核利用率比较图。
图6为计算吞吐量比较图。
图7为时间复杂度比较表。
图8(a)为任务调度算法的任务与竞态条件结果表。
图8(b)为RRP、RAS、GTA和任务调度算法的竞态条件结果表。
图9为性能改进百分比比较表。
具体实施方式
下面结合附图对本发明做进一步描述。
一种基于竞态条件的任务调度方法,通过不确定矩阵描述时间序列特征以及测量任务执行不确定性,利用最大熵优化发提出的任务调度算法确保任务执行期间发生的竞态条件概率最低,具有一定的研究和使用价值。本发明的具体描述包括如下几个步骤,前一个步骤是建立最大熵优化模型,第二个步骤是利用该模型提出相应的任务调度方案,最后一个步骤是通过任务调度方案实现降低***功耗的方法。
1、最大熵优化模型,具体实现方法如下:
(1)确定一个特征空间作为问题域,收集原始训练数据并将其转换为训练样本,每个训练样本由一个实例x和其目标类y组成,一组训练样本T={(x1,y1),(x2,y2),…,(xn,yn)}对应于一个特定的执行环境,当事件yi发生时,相应的上下文信息是xi,经验概率分布
Figure BDA0002364599840000041
是从这个训练样本中获得,特征f是指的是x和y之间的特定关系,特征f指的是x和y之间的特定关系,特征经验的期望概率是满足二元关系中特定要求的所有经验概率的综合,二元函数定义如下:
Figure BDA0002364599840000051
实际概率函数定义如下:
Figure BDA0002364599840000052
(2)选择特征作为优化约束,保持特征的经验概率和预期概率一致,令步骤(1)中的
Figure BDA0002364599840000053
P是一个满足约束集C的统计模型,argmax使得熵值最大化。在满足约束集C所有约束条件时,确定最大熵。约束集C的函数定义如下:
Figure BDA0002364599840000054
熵值最大化函数定义如下:
Figure BDA0002364599840000055
(3)导出模拟最大熵的理论模型,将约束优化问题转化为非约束优化问题,为每个特征值fi引入拉格朗日算子λ。由于p(y|x)是一个条件概率,
Figure BDA00023645998400000511
等于1,因此,通过每个实例x的参数k(x),拉格朗日函数定义如下:
Figure BDA0002364599840000056
相应的参数λi将会把特征fi的权重考虑在内,因此,λi满足最大熵的条件p(y|x),pλ的最大值函数定义如下:
Figure BDA0002364599840000057
(4)应用多重收敛来调整λi,具体描述为:
a.初始化λi (0)例如,所有的λi (0)=0;
b.重复函数直至其收敛,函数定义如下:
Figure BDA00023645998400000510
真实参数γ和Λ={λ12,...,λn}都是n+1的约束。为了最大化η(p,Λ,γ),利用步骤(3)的函数来表示pλ(y|x),并结合
Figure BDA0002364599840000066
可以确定最大熵模型,最大熵模型函数定义如下:
Figure BDA0002364599840000061
2、基于最大熵模型提出面向竞态条件的任务调度方法优化任务分配,具体描述如下:
(1)确定竞态条件集合以及任务事件序列。竞态条件简言之就是数据竞争,在计算机***执行过程中,多个任务之间会由于共享数据而产生竞争,这就是竞态条件。竞态条件集合就是***一次运行中所有的竞态条件的集合。而任务事件序列指的的是:在任务中需要完成某一项工作称之为事件,多个任务的多个事件所组成的序列成为事件序列。由于竞态条件的存在,事件与事件之间也存在着依赖关系。但是由于***执行环境的不同,可能会导致事件的执行序列不同,这就导致了竞态条件发生具有不确定性。
(2)确定竞态条件检测模型。某操作事件E的作为输入,识别竞态条件和Happened-Before关系。接收消息(RM)事件e对应于发送消息(SM)事件es,并且会在相同任务中发现每一个前置的接收消息事件e′。如果e′||es,则在es和e′s之间存在竞态条件,用
Figure BDA0002364599840000062
来表示。获取信号量(TS)事件e对应于发送信号量(GS)事件eg,并且会在相同任务中发现每一个前置的获取信号量e′。如果e′||eg,则在e′和eg之间存在竞态条件,用
Figure BDA0002364599840000063
表示。如果n个操作事件碰巧形成了执行序列
Figure BDA0002364599840000064
Figure BDA0002364599840000065
则产生的时间序列是t1<t2<…<tn<t1,这意味着它是非灾难性的竞态条件。否则,将存在灾难性的竞态条件。
(3)确定竞态集合。由于竞态条件的不确定性,p(y|x)是竞态条件可能发生的最大概率,因此,从前四个步骤可以获得最大发生概率的竞态集合。
(4)划分子任务及消除竞态条件。如果两个任务之间存在竞态条件,则每个任务将会分为两个部分即没有灾难性的竞态条件的子任务(即Ti',Tj')和一个涉及到灾难性竞态条件的子任务(即Tsub(i),Tsub(j))。使用Lock函数避免Tsub(i)和Tsub(j)这两个子任务的同步问题,消除灾难性竞态条件。Tsub会被允许多次申请Lock函数而不会导致死锁,同时有必要确定Lock的拥有者和持有者数量(即LockCounter)。LockCounter为0时,则允许Tsub(i)或Tsub(j)申请Lock,在一个新的申请之后,LockCounter增加1,并在Lock函数后减1。如果Tsub(i)持有一个Lock,则如果Tsub(j)请求Lock,它将会阻塞。如果Tsub(i)重新申请已经存在的Lock,则将会允许此操作。
(5)一旦处理器内核处于空闲状态,所有子任务和任务就会循环分配给处理器内核。
通过步骤(5)的方法减少任务调度次数,使得CPU占用率降低,从而得到CPU的电压降低,因此减少了功耗。任务taskj执行在硬件的处理单元PE上的功耗函数定义为:
Figure BDA0002364599840000071
其中uj为任务对功耗的影响因子,Cu,Vu分别为处理单元的等效电容和电压。
本发明的任务调度优化方法在低功耗***平台有更高的CPU利用率,吞吐量和更低的计算复杂度和任务执行时间。
在创建最大熵模型之前,需要收集原始训练数据并将其转换为训练样本。每个训练样本由一个实例x和其目标类y组成。一组训练样本T={(x1,y1),(x2,y2),…,(xn,yn)}对应于一个特定的执行环境。当事件yi发生时,相应的上下文信息是xi。经验概率分布
Figure BDA0002364599840000072
是从这个训练样本中获得。均值和方差的无偏估计量从公式(1.1)中可以得到。特征f指的是x和y之间的特定关系。F可以由二元函数来描述,
Figure BDA0002364599840000073
性质1在一个执行序列Q中,E中的各种操作事件满足关系
Figure BDA0002364599840000074
假设
Figure BDA0002364599840000075
(1)如果
Figure BDA00023645998400000715
那么
Figure BDA0002364599840000076
或者
(2)如果<ei,ej>是有效的,那么
Figure BDA0002364599840000077
或者
(3)如果
Figure BDA0002364599840000078
那么
Figure BDA0002364599840000079
性质2在执行序列Q中,E中的每个事件的发生时间是全序关系。假设
Figure BDA00023645998400000710
如果
Figure BDA00023645998400000711
那么ei发生在ej之前。
特征经验的期望概率是满足方程(1.1)中特定要求的所有经验概率的综合,即,
Figure BDA00023645998400000712
特征的预期概率是一个实际的分布,
Figure BDA00023645998400000713
指的是发生x时y的经验概率。
Figure BDA00023645998400000714
2、要保持特征的经验概率和预期概率一致。
Figure BDA0002364599840000081
由于多核并发计算***中有多个功能,因此满足这些约束会导致一系列的限制。
Figure BDA0002364599840000082
在此推导过程中,使用性质1和性质2中的四个特征(即,k=4)。因此,模型应该满足熵最大化的所有约束。
Figure BDA0002364599840000083
P是一个满足约束集C的统计模型,argmax使得熵值最大化。在满足公式(1.5)中的所有约束条件时,确定最大熵。
Figure BDA0002364599840000084
3、为每个特征值fi引入拉格朗日算子λ。由于p(y|x)是一个条件概率,
Figure BDA00023645998400000811
等于1.因此,通过每个实例x的参数k(x),拉格朗日函数可定义为,
Figure BDA0002364599840000085
相应的参数λi将会把特征fi的权重考虑在内,因此,λi满足最大熵的条件p(y|x),其可以表示为,
Figure BDA0002364599840000086
其中
Figure BDA0002364599840000087
是归一化因子。所以,pλ的最大值可以表示为,
Figure BDA0002364599840000088
这样到目前为止,一个约束优化问题(即,公式1.6和1.7)已经成为一个非约束优化问题(即,公式1.10)。
4、多重收敛来调整λi。这个收敛计算包括两个步骤:(1)初始化λi (0),例如,所有的λi (0)=0;(2)重复方程1.11直至其收敛。
Figure BDA0002364599840000091
真实参数γ和Λ={λ12,...,λn}都是n+1的约束。为了最大化η(p,Λ,γ),我们利用公式1.8的推导来表示pλ(y|x)。
Figure BDA0002364599840000092
进而得到,
Figure BDA0002364599840000093
由于
Figure BDA0002364599840000096
我们还可以得到。
Figure BDA0002364599840000094
将上面这个公式代入到1.13中,最大熵模型将最终被确定为,
Figure BDA0002364599840000095
该等式1.14确保任务序列中竞态条件的最低可能性。因此,在任务调度中使用该公式实现最小的竞态条件。
5、基于步骤4的最大熵模型提出的任务调度算法优化任务分配,具体描述如下:
(1)针对给定的执行环境找到一个竞态集合的最佳概率分布。
(2)由于竞态条件的不确定性,p(y|x)是竞态条件最优可能发生的最大概率,因此,从最大熵模型可以获得最优的竞态集合。
(3)如果两个任务之间存在竞态条件,则每个任务将会分为两个部分即没有灾难性的竞态条件的子任务(即Ti',Tj')和一个涉及到灾难性竞态条件的子任务(即Tsub(i),Tsub(j))。
(4)通过调整步骤(3)提到的第二类子任务的执行时间消除了灾难性的竞态条件,使用Lock函数避免这两个子任务的同步问题。Tsub会被允许多次申请Lock函数而不会导致死锁,同时有必要确定Lock的拥有者和持有者数量(即LockCounter)。
(5)步骤(4)中的LockCounter为0时,则允许Tsub(i)或Tsub(j)申请Lock,在一个新的申请之后,LockCounter增加1,并在Lock函数后减1。如果Tsub(i)持有一个Lock,则如果Tsub(j)请求Lock,它将会阻塞。如果Tsub(i)重新申请已经存在的Lock,则将会允许此操作。
(6)一旦处理器内核处于空闲状态,所有子任务和任务就会循环分配给处理器内核。
6、通过步骤5的方法减少任务调度次数,使得CPU占用率降低,从而得到CPU的电压降低,因此减少了功耗。任务taskj执行在硬件的处理单元PE上的功耗函数定义为:(更改,归结为***平台。)
Puj=ujCuQjVu 2
其中uj为任务对功耗的影响因子,Cu,Vu分别为处理单元的等效电容和电压。
最终通过基于竞态条件的任务划分和分配就会消除存在灾难的竞态条件。
实验结果
图7是时间复杂度比较。图8(a)是任务调度算法的任务与竞态条件结果;图8(b)是RRP、RAS、GTA、和任务调度算法的竞态条件结果。图1是任务执行时间比较。图2是在200kb输入数据大小的情况下五个应用程序的任务执行时间。图3(a)至图3(d)是所有在应用程序在不同输入数据大小情况下的平均执行时间。图4(a)至图4(d)是处理器内核利用率比较。图5是计算吞吐量比较。图9是性能改进百分比比较。
图2为任务执行时间比较图,从上到下折线依次代表RAS、RRP、GTA、Our Work
图3(a)为在200kb输入数据大小的情况下8核执行时间比较图。图3(b)为在200kb输入数据大小的情况下16核执行时间比较图。图3(c)为在200kb输入数据大小的情况下24核执行时间比较图。图3(d)为在200kb输入数据大小的情况下32核执行时间比较图。图3(a)、图3(b)、图3(c)和图3(d)中每一列的4个直方从左到右依次代表Our Work、RRP、RAS、GTA。
图4(a)为在不同输入数据大小情况下的8核执行时间比较图。图4(b)为在不同输入数据大小情况下的16核执行时间比较图。图4(c)为在不同输入数据大小情况下的24核执行时间比较图。图4(d)为在不同输入数据大小情况下的32核执行时间比较图。图4(a)、图4(b)、图4(c)和图4(d)中每一列的4个直方从左到右依次代表Our Work、RRP、RAS、GTA。
图5为处理器内核利用率比较图,从上到下折线依次代表Our Work、GTA、RRP、RAS。
图6为计算吞吐量比较图,每一列的4个直方从左到右依次代表Our Work、RRP、RAS、GTA。
图7为时间复杂度比较表。图8(a)为任务调度算法的任务与竞态条件结果表。图8(b)为RRP、RAS、GTA和任务调度算法的竞态条件结果表。图9为性能改进百分比比较表。
由图7知RRP、RAS、GTA和Our Work的空间复杂度有节点数m确定,因此它们的空间复杂度是相同的。
图8(a)显示了我们提出的基于竞态条件感知的任务划分方法成功的消除了五个应用程序中所有的灾难性竞态条件。竞态条件的总数平均减少幅度达到了82.86%。图8(b)说明任务调度算法比其他任务调度算法的竞态条件少很多。
如图1所示,无论多少个处理器内核,任务调度算法的性能均优于同类算法。在图2和图3中,可以得到任务调度算法在各种执行环境中表现出良好的适应性。如图4所示,当处理器内核配置为128个的时候,由此产生的CPU利用率为0.936。与RRP、RAS和GTA算法相比,利用率分别增加了9.4%、17.6%和8.2%。如图5所示,由于具有竞态条件分解为无竞态条件的子任务的特性,任务调度算法大大减少了任务等待时间,因此,任务调度算法可以使更多的县城同时并发运行。图9显示,通过任务调度方法减少任务调度次数,使得CPU占用率降低,从而得到CPU的电压降低,因此减少了功耗。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种基于竞态条件的任务调度方法,其特征在于,包括以下步骤:
步骤1:输入任务调度序列;
步骤2:构造竞态条件检测模型;
某操作事件e作为输入,识别竞态条件和Happened-Before关系;
若输入的操作事件e为接收消息事件,则其对应于发送消息事件es,并且会在相同任务中发现每一个前置的接收消息事件e′;如果e′||es,则判定在es和e′s之间存在竞态条件,用
Figure FDA0002364599830000011
表示;
若输入的操作事件e为获取信号量事件,则其对应于发送信号量事件eg,并且会在相同任务中发现每一个前置的获取信号量e′;如果e′||eg,则在e′和eg之间存在竞态条件,用
Figure FDA0002364599830000012
表示;
如果n个操作事件形成了执行序列
Figure FDA0002364599830000013
且产生的时间序列t1<t2<···<tn<t1,则判定
Figure FDA0002364599830000014
为非灾难性的竞态条件;
步骤3:确定竞态集合;
由于竞态条件的不确定性,最大熵模型函数p(y|x)是竞态条件可能发生的最大概率,因此可以获得最大发生概率的竞态集合;最大熵模型函数p(y|x)求解方法为:
步骤3.1:确定一个特征空间作为问题域,收集原始训练数据并将其转换为训练样本;每个训练样本由一个实例x和其目标类y组成,一组训练样本T={(x1,y1),(x2,y2),…,(xn,yn)}对应于一个特定的执行环境;当事件yi发生时,相应的上下文信息是xi,经验概率分布
Figure FDA0002364599830000015
是从这个训练样本中获得,特征f指的是x和y之间的特定关系,特征经验的期望概率是满足二元关系中特定要求的所有经验概率的综合,二元函数定义如下:
Figure FDA0002364599830000016
实际概率函数定义如下:
Figure FDA0002364599830000017
步骤3.2:选择特征作为优化约束,保持特征的经验概率和预期概率一致,令步骤3.1中的
Figure FDA0002364599830000018
P是一个满足约束集C的统计模型,argmax使得熵值最大化;在满足约束集C所有约束条件时,确定最大熵;约束集C的函数定义如下:
Figure FDA0002364599830000019
熵值最大化函数定义如下:
Figure FDA0002364599830000021
步骤3.3:导出模拟最大熵的理论模型,将约束优化问题转化为非约束优化问题,为每个特征值fi引入拉格朗日算子λ,由于p(y|x)是一个条件概率,∑yp(y|x)=1,因此,通过每个实例x的参数k(x),拉格朗日函数定义如下:
Figure FDA0002364599830000022
相应的参数λi将会把特征fi的权重考虑在内,因此,λi满足最大熵的条件p(y|x),pλ的最大值函数定义如下:
Figure FDA0002364599830000023
步骤3.4:应用多重收敛来调整λi,具体描述为:
步骤3.4.1:初始化
Figure FDA0002364599830000024
步骤3.4.2:重复函数直至其收敛,函数定义如下:
Figure FDA0002364599830000025
真实参数γ和Λ={λ12,...,λn}都是n+1的约束;为了最大化η(p,Λ,γ),利用步骤3.3的函数来表示pλ(y|x),并结合∑yp(y|x)=1可以确定最大熵模型,最大熵模型函数定义如下:
Figure FDA0002364599830000026
步骤4:划分子任务并消除竞态条件;
如果两个任务之间存在竞态条件,则每个任务将会分为两个部分即没有灾难性的竞态条件的子任务(Ti',Tj')和一个涉及到灾难性竞态条件的子任务(Tsub(i),Tsub(j));使用Lock函数避免Tsub(i)和Tsub(j)这两个子任务的同步问题,消除灾难性竞态条件;Tsub会被允许多次申请Lock函数而不会导致死锁,同时有必要确定Lock的拥有者和持有者数量LockCounter;当LockCounter为0时,则允许Tsub(i)或Tsub(j)申请Lock,在一个新的申请之后,LockCounter增加1,并在Lock函数后减1;如果Tsub(i)持有一个Lock,则如果Tsub(j)请求Lock,它将会阻塞;如果Tsub(i)重新申请已经存在的Lock,则将会允许此操作;
步骤5:一旦处理器内核处于空闲状态,所有子任务和任务就会循环分配给处理器内核。
CN202010031828.9A 2020-01-13 2020-01-13 一种基于竞态条件的任务调度方法 Pending CN111258730A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010031828.9A CN111258730A (zh) 2020-01-13 2020-01-13 一种基于竞态条件的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010031828.9A CN111258730A (zh) 2020-01-13 2020-01-13 一种基于竞态条件的任务调度方法

Publications (1)

Publication Number Publication Date
CN111258730A true CN111258730A (zh) 2020-06-09

Family

ID=70948748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010031828.9A Pending CN111258730A (zh) 2020-01-13 2020-01-13 一种基于竞态条件的任务调度方法

Country Status (1)

Country Link
CN (1) CN111258730A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986486A (zh) * 2021-10-15 2022-01-28 东华大学 一种边缘环境下数据缓存与任务调度的联合优化方法
CN115328639A (zh) * 2022-10-13 2022-11-11 北京云枢创新软件技术有限公司 一种基于芯片验证回归的任务调度***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SIZHAO LI等: "Race-Condition-Aware and Hardware-Oriented Task Partitioning and Scheduling Using Entropy Maximization", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 29, no. 7, pages 1589 - 1604, XP011685361, DOI: 10.1109/TPDS.2017.2784829 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986486A (zh) * 2021-10-15 2022-01-28 东华大学 一种边缘环境下数据缓存与任务调度的联合优化方法
CN115328639A (zh) * 2022-10-13 2022-11-11 北京云枢创新软件技术有限公司 一种基于芯片验证回归的任务调度***
CN115328639B (zh) * 2022-10-13 2022-12-13 北京云枢创新软件技术有限公司 一种基于芯片验证回归的任务调度***

Similar Documents

Publication Publication Date Title
Gast et al. A mean field model of work stealing in large-scale systems
Fischer Scaling limits for PDE-based simulation
CN111079921A (zh) 一种基于异构分布式***的高效神经网络训练调度方法
CN111431961A (zh) 一种云数据中心的节能任务分配方法
CN111258730A (zh) 一种基于竞态条件的任务调度方法
Li et al. Intermediate data placement and cache replacement strategy under Spark platform
Li et al. Adaptive priority-based data placement and multi-task scheduling in geo-distributed cloud systems
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Pimpley et al. Towards Optimal Resource Allocation for Big Data Analytics.
CN116501828B (zh) 基于非结构化数据集的服务器无感知向量查询方法和***
Silberstein Building an online domain-specific computing service over non-dedicated grid and cloud resources: The superlink-online experience
Piao et al. Computing resource prediction for mapreduce applications using decision tree
Yassir et al. Graph-based model and algorithm for minimising big data movement in a cloud environment
WO2022223052A1 (zh) 加速器、计算机***和方法
CN113342313B (zh) 一种基于参数服务器异步更新Spark MLlib中线性分类模型参数的方法
Banicescu et al. Towards the robustness of dynamic loop scheduling on large-scale heterogeneous distributed systems
Khalil et al. Survey of Apache Spark optimized job scheduling in Big Data
Ovalle et al. Distributed Cache Strategies for Machine Learning Classification Tasks over Cluster Computing Resources
Tamizharasan et al. Analysis of large deviations behavior of multi-GPU memory access in deep learning
CN112631750A (zh) 面向云数据中心的基于压缩感知的预测性在线调度与混合任务部署方法
Rumyantsev Stabilization of a high performance cluster model
Ahn et al. Performance study of distributed big data analysis in yarn cluster
CN115686865B (zh) 一种基于多场景应用的超算节点资源分配***
Li et al. Job placement strategy with opportunistic resource sharing for distributed deep learning clusters
Li Research on cloud computing resource scheduling based on machine learning

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