本发明属于计算机应用技术领域,具体地讲,是涉及一种求解多处理器过载调度问题最优解的确定性算法。
背景技术:
多处理器上的调度问题长久以来被广泛研究。自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)所示的硬子句:
其中,
规则二:
当任务i的第k个分片
其中,
规则三:
任务j的第i个分片的开始时刻不早于在它之前的所有任务分片的完成时刻,将这种规则属性编码为式(3)所示的硬子句:
其中,
规则四:
任务j的第i个分片先于任务j的第i+1个分片执行,将这种规则属性编码为式(4)所示的硬子句:
其中,
规则五:
当任务分片fij开始于时刻t或t之后,则它一定开始于t-1或t-1之后,将这种规则属性编码为式(5)所示的硬子句:
其中,
规则六:
当一个任务结束于t,则它的最后一个分片一定开始于时刻t-1或之前,将这种规则属性编码为式(6)所示的硬子句:
其中,ebj是布尔变量,表示任务j在它的截止时刻之前完成,
进一步地,对于所述规则二和规则四中出现过的布尔变量
其中,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)所示的硬子句:
其中,
规则二:当任务i的第k个分片
其中,
规则三:任务j的第i个分片的开始时刻不早于在它之前的所有任务分片的完成时刻,将这种规则属性编码为式(3)所示的硬子句:
其中,
规则四:任务j的第i个分片先于任务j的第i+1个分片执行,将这种规则属性编码为式(4)所示的硬子句:
其中,
规则五:当任务分片fij开始于时刻t或t之后,则它一定开始于t-1或t-1之后,将这种规则属性编码为式(5)所示的硬子句:
其中,
规则六:当一个任务结束于t,则它的最后一个分片一定开始于时刻t-1或之前,将这种规则属性编码为式(6)所示的硬子句:
其中,ebj是布尔变量,表示任务j在它的截止时刻之前完成,
同时对于所述规则二和规则四中出现过的布尔变量
其中,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问题的最优解,最优解包含了每个任务分片的开始执行时刻,由此可以得到最优调度方案。
上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而做出的变化,均应属于本发明的保护范围之内。