一种求解多处理器过载调度问题最优解的确定性算法的制作方法

文档序号:21626435发布日期:2020-07-29 02:33阅读:404来源:国知局
一种求解多处理器过载调度问题最优解的确定性算法的制作方法

本发明属于计算机应用技术领域,具体地讲,是涉及一种求解多处理器过载调度问题最优解的确定性算法。



背景技术:

多处理器上的调度问题长久以来被广泛研究。自1979年graham等人将调度问题用α|β|γ的形式来表示处理器属性、任务属性、调度目标以来,众多研究致力于调度问题的复杂度分析,即通过调整调度问题的α、β、γ属性来分析该问题的复杂度。例如:p|pmtn|∑uj(并行处理器上的可抢占调度,所有任务同时就绪,目标为最大化截止日期前完成的任务数量)在1983年被证明为np困难问题。如果任务具有不同的就绪时刻,该问题表示为p|pmtn,rj|∑uj,du等人证明当处理器个数为2时,该问题就已经是np困难问题。给每个任务赋予不同的权重会进一步加大问题的困难程度,例如:p|pmtn,pj=p|∑uj(并行处理器上的可抢占调度,所有任务同时就绪且任务处理时长相等,目标为最大化截止日期前完成的任务数量)是多项式可解问题,而p|pmtn,pj=p|∑wjuj(并行处理器上的可抢占调度,所有任务同时就绪且任务处理时长相等,目标为最大化截止日期前完成的任务权重之和)是np困难问题。由于多处理器调度问题的困难性,目前众多针对p|pmtn,rj|∑wjuj(并行处理器上的可抢占调度,所有任务就绪时间不同,目标为最大化截止日期前完成的任务权重之和)问题,求解算法仅致力于求出问题的近似解,它们虽然能给出比经典调度算法更有效的调度方案,却无法确保输出的近似解能够稳定接近于最优解。



技术实现要素:

为了克服现有技术中的上述不足,本发明提供一种求解多处理器过载调度问题最优解的确定性算法,根据任务就绪时刻不同,以可抢占的方式进行调度,目标为最大化截止日期前完成的任务权重之和,从而确定调度问题最优解。

为了实现上述目的,本发明采用的技术方案如下:

一种求解多处理器过载调度问题最优解的确定性算法,包括如下步骤:

(s1)确定调度问题,将调度问题的规则属性编码为maxsat硬子句;

(s2)将调度目标编码为maxsat软子句;

(s3)将步骤(s1)中得到的硬子句和步骤(s2)中得到的软子句通过合取运算符进行连接,从而得到maxsat问题;

(s4)通过maxsat解算器计算出maxsat问题的最优解。

进一步地,所述步骤(s1)中规则属性编码成与之对应的maxsat硬子句应同时满足以下规则;

规则一:

任何任务分片必须由某个单处理机执行,将这种规则属性编码为式(1)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片fij被安排在处理器mu上执行;

规则二:

当任务i的第k个分片和任务j的第l个分片flj存在占用同一台处理机,且它们的执行时间段重叠时,存在先于flj执行,或者flj先于执行,将这种规则属性编码为式(2)所示的硬子句:

其中,是布尔变量,表示任务i的第k个分片被安排在处理器mu上执行,是布尔变量,表示任务i的第k个分片先于任务j的第l个分片flj执行,是布尔变量,表示任务j的第l个分片先于任务i的第k个分片执行;

规则三:

任务j的第i个分片的开始时刻不早于在它之前的所有任务分片的完成时刻,将这种规则属性编码为式(3)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片在t或t时刻之后开始执行,pj是任务j的执行时长,由于任务在执行过程中的任意单位时间间隙都可以被抢占,因此pj也表示了任务j的分片数量及该任务最后一个分片的序号,rj是任务j的就绪时刻,n是系统任务总数;

规则四:

任务j的第i个分片先于任务j的第i+1个分片执行,将这种规则属性编码为式(4)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片先于任务j的第i+1个分片执行;

规则五:

当任务分片fij开始于时刻t或t之后,则它一定开始于t-1或t-1之后,将这种规则属性编码为式(5)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片在t或t时刻之后开始执行,是布尔变量,表示任务j的第i个分片在t-1或t-1时刻之后开始执行;

规则六:

当一个任务结束于t,则它的最后一个分片一定开始于时刻t-1或之前,将这种规则属性编码为式(6)所示的硬子句:

其中,ebj是布尔变量,表示任务j在它的截止时刻之前完成,是布尔变量,表示任务j的第pj个分片在t或t时刻之后开始执行。

进一步地,对于所述规则二和规则四中出现过的布尔变量将其生成式(7)所示的硬子句:

其中,t和t′分别应当满足,ri+k(k-1)/2≤t≤di-(k+pi)(pi-k+1)/2+1,

其中,rj是任务j的就绪时刻,dj是任务j的截止时刻。

具体地,所述步骤(s2)中调度目标最大化在截止时刻前完成的任务权重之和,将该调度目标编码为式(8)所示的maxsat带权软子句:

(ebj,wj)(1≤j≤n)(8)

其中,wj表示完成任务j所获得的收益。

与现有技术相比,本发明具有以下有益效果:

(1)本发明通过将任务属性和调度目标编码为maxsat子句,将它们用合取运算符连接之后得到maxsat问题,通过maxsat解算器求出最优调度方案。相对于现有技术,本发明能求得多处理器调度系统的最优调度方案,适于相同调度问题反复出现的场合,并具有很强的可扩展性、实用价值和推广价值。

(2)本发明具有很强的可扩展性和执行效率,可以用于解决任务属性出现变化的场合,如:任务就绪时刻发生变化、抢占/不可抢占式调度方法的切换。

附图说明

图1为本发明的工作流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。

实施例

如图1所示,一种求解多处理器过载调度问题最优解的确定性算法,包括如下具体步骤:

(s1)确定调度问题,将调度问题的任务属性编码成与之对应的maxsat硬子句,编码时应同时满足以下规则;

规则一:任何任务分片必须由某个单处理机执行,将这种规则属性编码为式(1)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片fij被安排在处理器mu上执行;

规则二:当任务i的第k个分片和任务j的第l个分片flj存在占用同一台处理机,且它们的执行时间段重叠时,存在先于flj执行,或者flj先于执行,将这种规则属性编码为式(2)所示的硬子句:

其中,是布尔变量,表示任务i的第k个分片被安排在处理器mu上执行,是布尔变量,表示任务i的第k个分片先于任务j的第l个分片flj执行,是布尔变量,表示任务j的第l个分片先于任务i的第k个分片执行;

规则三:任务j的第i个分片的开始时刻不早于在它之前的所有任务分片的完成时刻,将这种规则属性编码为式(3)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片在t或t时刻之后开始执行,pj是任务j的执行时长,由于任务在执行过程中的任意单位时间间隙都可以被抢占,因此pj也表示了任务j的分片数量及该任务最后一个分片的序号,rj是任务j的就绪时刻,n是系统任务总数;

规则四:任务j的第i个分片先于任务j的第i+1个分片执行,将这种规则属性编码为式(4)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片先于任务j的第i+1个分片执行;

规则五:当任务分片fij开始于时刻t或t之后,则它一定开始于t-1或t-1之后,将这种规则属性编码为式(5)所示的硬子句:

其中,是布尔变量,表示任务j的第i个分片在t或t时刻之后开始执行,是布尔变量,表示任务j的第i个分片在t-1或t-1时刻之后开始执行;

规则六:当一个任务结束于t,则它的最后一个分片一定开始于时刻t-1或之前,将这种规则属性编码为式(6)所示的硬子句:

其中,ebj是布尔变量,表示任务j在它的截止时刻之前完成,是布尔变量,表示任务j的第pj个分片(即最后一个分片)在t或t时刻之后开始执行。

同时对于所述规则二和规则四中出现过的布尔变量将其生成式(7)所示的硬子句:

其中,t和t′分别应当满足,ri+k(k-1)/2≤t≤di-(k+pi)(pi-k+1)/2+1,

其中,rj是任务j的就绪时刻,dj是任务j的截止时刻。

(s2)将该调度目标编码为maxsat带权软子句实现调度目标:最大化在截止时刻前完成的任务权重之和如式(8)所示:

(ebj,wj)(1≤j≤n)(8)

其中,wj表示完成任务j所获得的收益。

(s3)将步骤(s1)中得到的硬子句和步骤(s2)中得到的软子句通过合取运算符∧进行连接,从而得到maxsat问题;

(s4)通过maxsat解算器计算出maxsat问题的最优解,最优解包含了每个任务分片的开始执行时刻,由此可以得到最优调度方案。

上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而做出的变化,均应属于本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1