《进程迁徙的动态调度》由会员分享,可在线阅读,更多相关《进程迁徙的动态调度(3页珍藏版)》请在金锄头文库上搜索。
1、进程迁徙的动态调度Cong Du, Xian-He Sun, and Ming Wu计算机科学系伊利诺理工学院芝加哥,伊利诺伊州,美国邮箱:ducong, sun, wumingiit.edu摘要:进程迁移是必要的运行时负载平衡。在网格和共享网络环境下,负载不平衡,不仅仅是因为底层应用程序,同时还是因为动态性资源可用性的波动。在共享的网络环境中,目标需要经常去重新安排从而去适应资源的可用性的变化。不像传统的任务调度,动态重新安排不得不考虑其过程迁移的成本在制定公式中。在这项研究中,我们首先建立一个迁移成本的模型,同时引入一个有效的方法来预测成本。然后,我们引入动态调度机制,假设迁移成本以及其他
2、常规性能的影响因素在共享,异构环境的优化是相同的。最后,我们通过实验测试去验证分析结果。实验结果表明,动态调度系统的建议是可行的,并且大大提高了系统的性能。介绍:许多分布式环境已被开发以满足更多的计算能力的需求。Condor, NetSolve, Nimrod, and the Grid environment 14。在这些系统中的资源是异质性的并且被不同的用户群共享。每个资源或组织可能有其自己的资源管理政策和资源的使用模式。中央控制这种模式并没有在资源管理中出现过。在这些环境中去收获网格计算需要一个持续的动态重排的网格目标,从而去适应当地控制的计算资源的可用性。同时,除了负载平衡之外,以移动
3、为基础的动态调度也有利于动态网格的管理 19特别是机器加入或离开,资源成本的变化,和当地任务的收购。一个适当的重新安排应当考虑迁移成本。特别是在分布式和异构的环境中,大量的计算资源能够被获得任何特定时间,但相关的迁移成本很大程度上会有所不同。虽然大家都想找到建模和估计迁移成本的有效和广泛适用的解决方案,但是,一直难以实现。即使是可用的,但是将集成的迁移成本纳入动态调度系统仍然是一个具有挑战性的任务。根据我们多年的经验在进程迁移8 和任务调度 24 中,我们在这项研究中提出了一种集成的解决方案。迁移为基础的动态设计调度有四个方面:重新安排的触发,迁移成本模型,任务调度和参数测量。我们提出了一个重
4、新安排触发系统10 。在本文中,我们把重点放在其余三个问题。我们选择分析迁移成本基于我们的HPCM (高性能计算移动)中间件 12 。 HPCM是根据NSF首先发布的一个中间件。它有一个复杂的结构,以支持减少过程状态和流水线通信/执行为高效的进程迁移。所有的参数迁移成本模型是通过监测测在运行时的系统和应用程序的运行状态所建立的。由于HPCM ,分析的复杂性在这项研究的结果可以扩展到其他现有的迁移和检查点系统。在估计迁移成本的基础上,我们开发集成动态调度系统从而去优化应用程序的性能。在下一节中,我们给出了一个相关的概述工作。在第3节,我们简要地描述过程迁移机制和模式的迁移成本。动态调度算法在第4
5、节中将会介绍。实验和参数测量方法是在第5 。结论和今后的工作是在第6节讨论。相关工作:不同的任务调度策略已被用于分布式共享环境。Condor系统20采用了配对机制用ClassAds来分配资源与。调度策略是基于匹配用户对他们的工作规范要求和喜好,与机器“特点,可用性和情况。进程迁移是以检查点为基础的机制。然而,这并不支持运行时迁移在异构的进程环境。AppLeS 5 是一个众所周知的的任务在网格计算的调度系统中。它采用了循环时间表去表现元任务的子任务的任务事件动态。虽然它可以重新安排未开始的子任务,但是它不支持检查点或进程迁移。像项目MOSIX 3 ,和OpenSSI 21 这类程序支持单一系统映
6、像( SSI )聚类,并且支持在节点内进程迁移群集。由于SSI技术假设是在一个紧密耦合集群环境中,这些系统不能被应用于大量的消息传递的并行应用程序或一个松散耦合的一般电网环境。虚拟机迁移6 也可能在负载平衡使用。然而,因为它需要迁移整个运行环境,包括操作系统,它是重加权的性质,只有局域集群的快速沟通渠道才能使用。在Linux ZAP 22 支持遗留应用程序迁移通过使用可加载内核模块和虚拟化的主机和进程。它采用了基于检查点机制,以支持过程在Linux迁移。ZAP系统,和其他一些异构的进程迁移系统23 一样,并没有实施任何动态调度和再分配机制。他们的迁移成本从未被深入研究过,并且它们需要手动进行迁
7、移。重新安排的好处,如果它不考虑迁移成本,其潜力可能是无法充分被发挥。迁徙成本的分析:进程状态的采集,传输和恢复的过程中是很重要的迁移过程中。虽然迁徙有潜在的性能能够增益调度运行任务,但是必须做到心中对于迁移成本有数,迁移的成本也就是正在运行的进程到新的位置的花费。在本节中,我们首先会呈现一般的迁移成本模型。然后,提供可行的运行时的预测,我们进行对于HPCM中间件深入的分析12。HPCM是一个用户级别的中间件支持异构的进程迁移遗留代码用C,FORTRAN或其他基于堆栈的编程语言通过表示源代码。它由几个子系统支持的主要功能异构的进程迁移,包括源代码预编译,执行国家收集和恢复,内存状态的收集和恢复
8、,沟通协调和重定向,和I / O国家重定向。我们已经开发出多种优化机制,以减少迁移成本,包括通信/执行流水线,住变量分析。要作出正确的决定实现精确调度,重要的是,对于迁移成本和进程的状态量在运行时进行了分析和测量。HPCM的输入是一个源代码应用。预编译器或用户选择一些在源代码中的点(称为轮询点) 。一个轮询点是迁移可能会发生的一个点。预编译器注释的源代码和输出迁移能力的代码,即注释的代码。注释的代码在迁移前会在目标机上预初始化。当迁移被需要时,迁移过程中第一次转变成执行状态, I / O状态,通信状态和部分内存状态从而到达初始化目的地。 “预先初始化的过程中继续执行,而剩余内存状态仍然是在传输。也就是说,流水线的方式转移过程状态。并发节省了大量的时间在网络环境,尤其是当一个国家的大量数据传输的需要。然而流水线使得估计迁移成本很困难。要迁移比异构应用系统,我们所代表的应用程序的内存空间的内存空间表示( MSR )模型7 ,这是一个独立于机器的逻辑用来表示内存空间。应用程序的快照作为MSR向图的内存空间为蓝本。图中的每个顶点代表一个内存块。每条边代表之间的关系块时,其中一个包含一个指针,在另一个记忆点的记忆体位置块。 MSRLT (MSR查找表)是一个全球性的应用程序的内存空间和之间的映射表现概念的MSR模型。