第27卷第7期 2010年7月 计算机应用与软件 Computer Applications and Software Vo1.27 No.7 Ju1.2010 任意可分负载在动态计算资源上的调度算法 康 健 (中兴通讯股份有限公司上海研发中心上海201203) 摘要 随着网格计算技术的不断发展,如何充分利用网络中广泛分布的动态计算资源越来越受到关注。为了充分提高并行计 算中,在多个动态计算资源上的具有任意可分特性的大规模应用的任务响应速度,提出了一种探测缓存式动态调度算法PBDLS (Probing and Buffering Dynamic Load Scheduling)。该算法利用探测技术对动态资源的运行状态进行实时跟踪,根据预测结果自适应 调整任务的分发量,并提出任务预存策略,用来最大限度地填补由于网络状态预测偏差导致的计算时间空闲时间,从而全面提高任 务执行效率。算法经2000多组仿真表明:在多种动态网络环境下,PBDLS算法的调度效率整体上优于现有的DA1、DA2和DLT算 法,并具有较好的稳定性。 关键词 任意可分负载 动态调度并行计算 DIⅥSIBLE LoAD SCHEDULING ALGoRITHM FoR DYNAMIC CoMPUTING RESoURCES Kang Jian (Shanghai R&D Center,ZTE Corporation,Shanghai 201023,China) Abstract With growing development of the d computing,more and more attentions are paid on the full use of dynamic computing re— sources widely distributed in internet.To improve the response speed of large—scale applied tasks of multiple dynamic computing resources in parallel computation with divisible workloads property,an algorithm called PBDLS(Probing and Buffeirng Dynamic Scheduling)is presented. By introducing probing technique,the algorithm Call trace the running status of dynamic resources in real time,and self-adaptively adjust the amount of distributed load based on predicted result.Furthermore,by presenting a“load pre-buffering”strategy,the algorithm can dramatical- ly fiU the computing idle time caused by the prediction eⅡl0r of the network status,therefore to improve the overall task execution eficifency. More than 2000 sets of simulation show that the PBDLS algorithm outperforms integrally the traditional algorithm as DAI,DA2 and DLT in scheduling eficifency and with better stability in various dynamic network environments. Keywords Divisible load Multi-round scheduling Parallel computing 变化,因此很难提前确定一个恰当的调度时序。这方面的研究 0引 言 网格计算技术可以融合各种资源和服务,在形成超大规模 虚拟计算机的同时也将地域分布极广的人和组织联合起来,为 他们提供了一个资源共享、相互协作和交流的平台。要想获得 一相对静态资源来说较少,早期的有DAI、DA2算法 J,近期主要 是DLT算法 J。但由于资源的动态特性导致调度算法不可能 准确无误地预测各个节点上数据块的完成时间,从而出现的通 信竞争使得多个节点上会出现空闲时间,因此调度效率会受到 很大的影响。 个高效运行的网格环境,并行计算时任务调度效率的高低是 本文提出一种针对动态资源的任意可分任务的调度算法 PBDLS,它利用探测技术来预测工作节点当前的状态,并提出 关键因素之一。在并行计算领域,处理的任务类型有所不同,主 要分为不可任意划分负载和任意可划分负载。与不可任意划分 的任务相比,后者可以被划分成相互独立的子任务,由于这些子 任务没有相互依赖的关系,因此各个节点在处理任务的过程中 不会产生额外的通讯开销。在图像处理、数据挖掘、信号处理等 领域中,很多应用 都具有任意可划分的特性(在实际中存 “任务预存”技术,用来填补由于任务完成时间预测不准而在多 个节点上出现的空闲时间,与传统动态算法相比能够大大提高 任务的调度效率。 1计算平台模型 本文研究的目标是由一个master和Ⅳ个worker构成的星 型网络拓扑计算平台,如图I所示。对于一个可任意划分的任 务,worker在处理完本轮所接收的任务后,会给master返回结果 收稿日期:2010—01—30。康健,博士,主研领域:移动通信系统网 格计算,多核调度技术。 在最小的划分单元)。 绝大多数任意可分任务的调度算法都是针对静态的计算资 源,这类资源的处理能力和网络带宽均是恒定的,这些算法主要 是按照一个特定的调度时序和调度轮数列出闭合式方程组,通 过求解方程组得到各个阶段调度器向每个节点分发的数据量大 小,使得各个节点在整个任务完毕之前均元空闲状态 。而对 于动态资源,由于其处理能力和网络带宽均是不可预知的动态 第7期 康健:任意可分负载在动态计算资源上的调度算法 275 数据,而master以串行传输的方式发送、接收数据,即同一时间 内发送、接收操作不可重叠,master也不参与任务处理。对于任 ^. 一 2.2 PBDLS算法 意一个worker,计算时间可以与数据的发送、接收时间重叠。 PBDLS算法分为两大阶段:初始探测预存阶段和多轮调度 阶段。 初始探测预存阶段master首先依次向每个worker发送两 轮少量任务,每个worker每轮接收的任务量相同,记为7/2,然 后等待worker返回处理结果。该阶段主要是两个目的,首先第 一轮的少量任务是为了对各个worker进行性能探测,即通过测 量该任务的执行时间和数据传输时间可以获得当前worker的 计算和传输能力的估测值,利用这些估测值可以指导后续阶段 任务的发送。第二轮少量任务的发送是为了填补第一轮任务在 完成后进行数据返回时所留下的该worker上的计算空闲。接 下来是多轮调度阶段。 多轮调度阶段该阶段master对请求返回数据的worker 进行处理并向该worker发送一定量的新任务,并期望该轮新发 worker worker 送任务在一个给定的时间 内完成。则对于第i个worker,其第 图1 星型网络拓扑计算平台 轮所接收的任务大小L : £ =z/(1/Bh,一l+1/R 一l+1/Sf,f—1) (4) 2算法描述 另外,由于所研究的模型中master不能并行收发数据,因此 master在处理完一个传输请求后,master的处理队列中可能有 以下三种情况:有一个worker在等待返回数据;有多个worker 2.1调度模型 在等待返回数据;没有worker等待返回。 对于一个worker,master到第i个worker的传输速率记为 对于第一种情况,master正常处理该请求,并根据式(4)所 曰 ;第i个worker向master返回数据的传输速率记为R ;第i个 计算出来的值向该节点发送新的任务。 worker的计算能力记为S 。在介绍PBDLS算法前,需要先说明 对于第二种情况,master的处理队列这里采用了FIFO(First 一下算法对于工作节点worker的计算能力和传输带宽的估测 In First Out)的结构,因此优先处理先请求返回的worker。 方法。如图2所示,对于一个给定量的任务在一个worker上的 对于第三种情况,传统的算法处理都是master不做任何操 处理过程分为任务分发、处理和回收三个节点,则在算法需要记 作直到有请求到来,而PBDLS算法在这种情况下会做以下 录几个变量:任务的启动时间SrI’I'(Start Time of Task),任务分 处理: 发时消耗的通信时间DCT(Duration of Communication Task),任 设变量ntask 为第i个w ̄rker上当前的任务数,如果ntask 务所需的处理时间DPT(Duration of Processing Task),结果数据 ≤1,则让master再次向每个节点发送一定量任务,发送量同该 返回时间DRT(Duration of Returning Task)。需要注意 是一 节点上轮的相同。如果ntask >1,则master不做任何操作。 个时间点信息,其余的的都是时间长度信息。 这样的处理方式同初始探测预存阶段的目的相同,即利用多存 数据发送口数据处理 数据返回 一个任务来填补后续可能出现的计算空闲时间。同时由于 ntask.条件的限制,不会让某个worker缓存过多的任务,从而造 成负载过度失衡,影响整体的调度效率。 图3给出了PBDLS算法在四个动态变化的worker上运行 L_T—_』———r—— 示例图。可以看到master首先顺次发送两轮任务,其中第二个 worker首先返回任务,由于该节点上还有一个缓存任务,所以该 DCT DPr DRT 节点在返回第一轮的处理结果时继续处理缓存的任务,因此填 图2 PBDLS算法所需的变量 补了由于等待收发任务所形成的计算空闲,提高了调度效率。 在实际应用中,对于一个任务来说 ITI'和DCT可以在主节 数据发送口数据处理 数据返回 点上分发任务时获得,DPT可以附加在返回数据中,即数据返回 ,团囫 . 完成后获得。由于DPT信息相对于返回数据来说非常小,因此 rl l I f L——————— ・・・ 附加DPT对返回数据通信时间所造成的影响可以忽略。最后 ‘_ 目 I I . lI 。・・ DRT信息在数据返回完成后可以获得。 — —_r] ,对于一个已完成的大小为 的任务,通过测量信息所获的 . . . 的计算能力值为: P4 l I .. I I‘‘’ S;=X/DPTi (1) 图3 四节点下PBDLS算法调度时序示例 所获得的从主节点到P 的传输带宽为: 从上面对PBDLS算法的描述可以看出,该算法是根据上一 B;:X/DCTi (2) 轮任务的发送和执行时间来获取估测值,从而决定下一轮任务 所获得的从P 到主节点的传输带宽为: 发送的大小,同时在初始探测预存阶段和多轮调度阶段中按照 R;=X/RCTi (3) 一定的规则进行任务预存,尽可能地填补由于任务收发而在各 276 计算机应用与软件 2010丘 节点上形成的计算空闲时间,进而大大提高了调度效率。 着参考调度轮数 的增加先上升后下降。这主要是因为在肘 较小时,每个worker的初始发送量三较大,这样PBDLS不能依 靠足够的调度轮数去完成“时间覆盖”操作,因此整体任务完成 效率较低。 过大的时候,由于L的取值过小,虽然可以完成一 些“时间覆盖”,但是由于动态环境的不可预知性,出现计算空 3对比算法 我们将用三种算法(DA1、DA2和DLT)与PBDLS算法比较。 DA1算法按照一个预先给定的访问时间值进行任务发送, 但是该算法需要在算法启动时预先知道动态计算资源当前的确 切状态,这与实际需求仍有些差距。 DA2算法是在每轮向各个worker发送固定大小的任务,可 闲的几率相应的也大大提高,因此任务处理性能反会下降。 卜- 以明显地看出,由于没有自适应调整机制,该算法在网络环境变 化较大的时候其性能会快速下降。 DLT算法利用探测技术来预测网络中worker的工作状态, 把任务分多个阶段向各个worker发送,尽量保证每个阶段的任 务都同时完成。该算法在忽略任务返回量所占用的传输时间的 情况下,具有较好的调度效率,否则,由于返回时间的存在,在一 个特定阶段内,任务只能一次返回,从而会形成大量的计算空闲 时间。 4实验结果与分析 利用SimGrid工具进行了仿真,该工具可以自定义生成动 态的网络环境,即网络中的各个节点的计算能力及传输带宽都 随机变化。比较算法是DA1、DA2和DLT算法。 仿真环境是一个具有10个worker的行星网络,各个worker 的计算能力与传输带宽随机变化,其最大计算能力S=1任务/ 秒,最大传输带宽B=R=30任务/秒,总任务量L =2000, 田=0.05,数据返回比6=1,即一个任务执行完后得数据返回 量与任务量相等。 用SimGrid生成两大组动态网络环境:低背景负载和高背 景负载。低背景负载下,计算能力和网络带宽的平均被占用率 约为12.5%;高背景负载下计算能力和网络带宽的平均被占用 率约为76.3%。 图4和图5分别给出了低、高背景动态负载下PBDLS与三 种算法DA1、DA2、DLT的比较结果。两图中的纵坐标“相对处 理能力T"是“理想完成时间”与调度仿真时间与的比值。“理 想时间”指忽略所有传输时间时,任务并行运行下的完成时间。 设咖为表示某个后台负载率,则理想完成时间大约为 , . 万一= c. 。两图中横坐标的参考调度轮数M定义如下: = (5) 其中己为多轮调度阶段每个worker首次的发送量,Ⅳ为worker 的数量。由于对于任务可分任务的调度来说,多轮调度的方式 可以在各个worker之间形成计算时间覆盖传输时间的效果,尤 其是在静态多轮调度研究中,适当的调度轮数下可以最大程度 地进行时间覆盖,从而整体上大大缩短收发任务时所形的计算 空闲,可以有效地提高任务执行效率。因此我们在这里引入参 考调度轮数J]lf,即在动态环境下期望任务调度在几轮后结束,通 过调整M可以对算法进行更加全面的观察。 图4和图5中的每个点都是l0组实验的平均值,即每个点 都按照对应的平均背景负载率生成10组动态网络环境进行仿 真,然后取其平均值的结果。从仿真实验结果可以看出,PBDLS 算法整体上明显优于另外三种算法。同时PBDLS算法的, 随 涩 劁 靛 参照调度轮数M 图4低背景动态负载下PBDLS与其他算法性能比较 图5 高背景动态负载下PBDLS与其他算法性能比较 5结论 PBDLS算法针对动态网络环境,通过探测技术对网络中的 各个节点的计算能力和网络带宽进行跟踪,同时提出“任务预 存策略”,尽可能地填补由于预测偏差而出现的计算空闲时间, 与同类算法相比,大大提高了调度算法的效率,且具有更加稳定 的性能。 参考文献 [I]康雨,闫相国,郑崇勋,等.医学可视化网格平台的设计与实现 [J].西安交通大学学报,2007,41(8):1000—1002. [2]Kwangil K,Robertazzi T G.Signature search time evaluation in flat file databases[J].IEEE Trans on Aerospace and Electornic Systems, 2o08,44(2):493—502. [3 J Hung.T G,Robertzzi T G.Scheduling nonlinear computational loads [J].IEEE Trans on Aerospace and Electornic Systems,2008,44(3): ll69~l182. [4]Bharadwaj V,Ghose D,Man V,et a1.Scheduling divisible loads in par- allel and distributed systems[M].Los Alemitos,USA:IEEE Computer Society Press,1996. [5]Drozdowski M.Selected Problems of Scheduling Tasks in Muhiprocessor Computing Systems[M].1nsytut InformatYki Plitechoika Poznanska Press,1997. [6]Jia J,Bharadwaj V,Ghose D.Adaptive Load Distribution Strategies for Divisible Processing on Resource Unaware Mutillevel Tree Ne orks [J].IEEE Trans.Computers,2007,56(7):999—1005.