论文部分内容阅读
随着计算机技术、网络技术和虚拟化技术的提高,计算资源日益丰富,人们对计算资源的需求也日益增大。同时,随着生活节奏的加快和生活水平的提高,人们对于网络资源访问的便捷性和可用性的要求也越来越高。为了满足人们的需求,云计算逐渐兴起并迅速发展。云计算是一种按使用量付费的计算模式,给消费者提供了极大的便利,同时也给云服务供应商带来了极大的利益。云计算将大量的数据和计算集中到了云端,云端的数据存储和计算需要消耗许多资源。如果云端任务调度不合理,将会造成资源浪费,甚至会影响到系统平台的安全稳定运行。因此,优化改进任务调度算法是一项非常重要而且必要的工作。云计算任务调度主要是指根据用户需求和系统目标,将满足条件的资源分配给任务。云计算任务调度根据其调度对象,一般可分为独立任务调度和工作流任务调度两类。目前,任务调度算法形式多种多样,针对不同实现目标的任务调度算法各有其优势,但是仍然存在一些不足之处。在很多任务调度算法中,资源的特性未被纳入考虑,对任务的需求分析不够细致,导致资源效率低,资源利用率不高。此外,部分任务调度算法在减少任务等待时间方面还存在可以改进的地方。针对提出的不足,本文将基于改进的模糊聚类算法进行资源分类,并结合已有的调度算法实现云计算任务调度。具体的研究成果如下:(1)针对独立任务,将基于核的模糊聚类算法(Kernel-based Fuzzy C-Means Algorithm, KFCM)与改进的先进先出(First In First Out, FIFO)算法结合,实现任务调度,并通过基于核的模糊聚类算法计算资源之间相似度,将资源进行划分。我们对计算相似度的核函数进行了优化,并将其应用于资源划分。利用新的方法计算分析任务需求倾向,将任务分配至不同队列。再通过计算比较等待时间,进行二次分配,完成任务调度,减小任务完成时间并提高资源利用率。(2)针对工作流任务,将改进的模糊聚类算法(Improved Fuzzy C-Means Algorithm, IFCM)与改进的蚁群算法(Improved Ant Colony Optimization, IACO)结合,实现任务调度。工作流任务之间存在着先序关系,通过有向无环图(Direct Acyclic Graph,DAG)来描述,用二元组表示DAG工作流。利用改进的模糊聚类算法计算资源相似度,对资源进行分类,减少噪声和离群点对聚类划分结果的影响。结合任务优先级,对任务进行排序,并根据任务资源需求与资源之间的匹配,初始化任务调度方案,并对工作流任务进行编码。结合遗传算法中的交叉和变异操作,改进蚁群算法(Ant Colony Optimization algorithm,ACO),提高蚁群算法的收敛速度并跳出局部最优解。同时,利用改进后的蚁群算法寻找近似最优解,完成任务调度,减小任务完成时间并提高资源利用率。此外,本文借助仿真工具CloudSim和Hadoop平台实现本文所提出的算法,并将本文所提出的算法与改进前的FIFO算法和蚁群算法进行对比。实验结果表明,本文所提出的改进算法在减少任务总完成时间和提高资源利用率方面优于改进前的FIFO算法和蚁群算法。同时,通过实验验证了应用模糊聚类算法预先划分资源能够改进调度性能。