一种基于粒子群算法的多核系统任务调度方法与流程

文档序号:11386261阅读:644来源:国知局
一种基于粒子群算法的多核系统任务调度方法与流程

本发明属于多核系统任务调度方法技术领域,特别涉及一种基于粒子群算法的多核系统任务调度方法。



背景技术:

为了提高计算机的系统性能和处理能耗问题,对计算机处理器的研究已经从单核向多核进行发展。目前通过多个处理器核的并行工作来完成计算任务成为解决处理器问题的性能瓶颈。任务调度是决定计算机系统性能好坏的因素之一。当单一芯片上集成了多个处理器核时,在这些处理器核之间进行多任务的调度是十分重要。

在多核系统中,并行程序的执行顺序取决于每个处理器核分配到任务的情况,所以制定任务调度要有一套好的规则和策略。好的任务调度策略可以减少整个系统的执行时间并提高系统的响应速度。随着多核处理器的不断发展,任务调度对于高性能处理器来说变得十分重要。近年来,针对解决多核处理器的任务调度问题出现了不少方案。解决任务调度的主要问题在于如何缩短调度时间,降低通信成本和提高系统性能。

目前,公认最有发展前景的任务调度技术是使用启发式算法将任务划分为不同的组,然后使用遗传算法分别对它们进行调度。实际上,多任务调度问题是一个np问题。许多智能算法可以应用于多任务调度问题,如遗传算法,粒子群优化算法,蚁群算法等。粒子群优化pso是kennedy和eberhart在1995年基于群体智能进化提出的计算方法。此算法基于对鸟群觅食行为的研究,类似于遗传算法。粒子群算法原理简单并且易于实现。粒子群算法主要用于解决复杂问题的连续优化,但它在离散组合优化中的使用却是非常有限的。蚁群优化aco是另一种智能优化算法,该算法是受蚂蚁觅食时不断改变活动路径这一行为的启发。aco是通过不断更新信息素来获取最优解。但是,因为在初始阶段缺少信息素,所以这种算法在开始阶段的收敛速度十分缓慢。



技术实现要素:

为了解决多核处理器的任务调度,本发明提出了一种基于粒子群优化算法的混合算法。pso和aco都是可以用于多核多任务调度的群智能算法。局部最优和全局最优可以通过pso和aco的混合来实现。使用pso在初始阶段收集最优解。当产生早熟收敛要出现最终结果时,再使用aco完成剩余的工作。

本发明所采用的技术方案是:一种基于粒子群算法的多核系统任务调度方法,其特征在于,包括以下步骤:

步骤1:构造任务调度模型,生成有向无环图dag;

步骤2:初始化基本参数和信息素;

步骤3:更新信息素以计算任务间通信时间和适应度值;

步骤4:生成全局最优解。

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

(1)高效性。本实验通过将蚁群算法和粒子群优化算法相结合,在初始阶段利用粒子群优化算法收集最优解,加快迭代速度,然后使用蚁群算法控制信息素的更新,通过不断优化缩短任务调度时间。

(2)低成本性。通过该算法找到最佳任务调度方法,减少通信开销,使系统性能达到最优。

附图说明

图1是本发明实施例的流程图;

图2是本发明实施例中包含8个线程,边上权重表示通信开销的dag图;

图3是本发明实施例中混合粒子群优化算法hoa和遗传算法ga的性能比较图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

请见图1,本发明提供的一种基于粒子群算法的多核系统任务调度方法,包括以下步骤:

步骤1:构造任务调度模型,生成有向无环图dag;

多核处理器中的所有处理器核构成并行系统,使用有向无环图dag将任务调度模型转换为数学模型,有向无环图dag可以描述为g=(v,e,c,w),其中:

v是顶点集合,该集合是有序的任务集{vi};

e是有向边集{ei},<vi,vj>∈e表示任务的先后执行顺序,vi在前,vj在后,

任务vi没有执行完就不能执行任务vj;

c表示集合{c(vi,vj)},c(vi,vj)是端点为vi和vj的带有权重的边,其权重表示两个线程之间的通信量和控制相关度,任务vi是任务vj的源点;

w是集合{w(vi,vj)},表示线程间的通信开销w(vi,vj)表示执行任务vi和任务vj的两个线程之间的通信所需要的时间,当这两个任务在同一处理器核中运行时,w(vi,vj)设置为最小值。

图2是包含8个线程的dag图。图中,c={c(v1,v3),c(v3,v6),c(v2,v4),c(v4,v6),c(v2,v5),c(v4,v7),c(v5,v7),c(v6,v8),c(v7,v8)};w={w(v1,v3),w(v3,v6),w(v2,v4),w(v4,v6),w(v2,v5),w(v4,v7),w(v5,v7),w(v6,v8),w(v7,v8)}。如v1和v3之间的通信开销为2(w(v1,v3)=2)。

在给定数量的处理器核和任务线程数量下随机生成100个类似以上的dag图,分别用遗传算法ga和本发明的混合算法hoa分别对dag图进行任务间通信开销的计算。计算结果如下表1所示:

表1

步骤2:初始化基本参数和信息素;

初始化的基本参数包括迭代次数nc的值,蚂蚁数m和节点数n。

在起始阶段,使用粒子群优化算法pso收集最优解,将所有的任务通过调度方法分配给相同的b-level核,根据初始解决方案产生合理的调度序列,生成初始信息素分布,并在路径的n节点处添加m蚂蚁的信息素。

在多核处理器的任务调度算法中,x的位置由二进制值组成。当有n个处理器和m个任务线程时,粒子x的位置可以表示为:

其中,xij的值为1时,表示将线程i分配给处理器核j,xij的值为0,表示线程可以分配给任意一个处理器核。

步骤3:更新信息素以计算任务间通信时间和适应度值;

步骤3.1:根据当前的位置,计算粒子的适应度值itsp0,将适应度值设置为个体极值ptbest,计算当前位置的个体极限位置pcbest,根据每个粒子的个体极值ptbest,找出全局极值gtbest和全局极值位置gcbest;

适应度函数f为:

任务分配和实现所需的最大时间为:ti=max(tc,v);其中,tc,v表示处理器核完成任务所需的时间。

步骤3.2:根据蚂蚁移动到下一个节点j的概率,将每个蚂蚁的起始点放置在每个当前解集中,节点j被放置在当前解集中;

蚁群算法的概率迭代算法如下:

其中,k为蚂蚁编号,τij表示将任务i分配给核心j的实时信息素浓度,α和β都表示启发式因素;allowedk表示第k次迭代运行时的候选任务序列集。

步骤3.3:第k只蚂蚁路径c0(f)和全局极值位置gcbest相交获得c'1(f),c'1(f)与个体极限位置pcbest相交得c”1(f),c”1(f)以一定的概率变异到c1(f),根据当前位置计算路径长度itsp1;

步骤3.4:判断适应度值是否变小;

若是,则更新位置,k=k+1(对下一只蚂蚁进行操作),并执行下述步骤3.5;

若否,则不更新位置,k=k+1,并执行下述步骤3.5;

步骤3.5:判断是否所有的蚂蚁都进行了步骤3.3-3.4操作;

若是,则执行下述步骤3.6;

若否,则回转执行步骤3.3;

步骤3.6:更新信息素,并迭代数加1;

步骤3.7:判断迭代数是否达到最大;

若是,则执行步骤4,本流程结束;

若否,则回转执行步骤3.1。

将粒子群大小(蚂蚁数)m设为30;最大迭代数设为500;w(i)和c(i)取值在1~10之间;λ值为e=2.718的自然指数。图3是利用设定的值取数据平均值进行混合粒子群优化算法hoa和遗传算法ga的比较。

本发明是通过对信息素的有效初始化,将蚁群算法和粒子群算法相结合,同时使用引入遗传算法的交叉变异策略,以高效地实现多核系统的任务调度。本方法实现了缩短任务调度的时间,降低通信成本,弥补单方面算法的不足之处。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

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