下面是小编为大家整理的云环境下基于蚁群算法的动态容错技术研究,本文共7篇,如果喜欢可以分享给身边的朋友喔!本文原稿由网友“今天一定好好睡”提供。
篇1:云环境下基于蚁群算法的动态容错技术研究
0 引言
云计算是一个热门研究方向,许多企业都相继开发出自己的云端系统进行运算与研究。然而,只要是计算机就会发生错误[1]。在云计算中由于资源的高度动态性和异构性,使云计算平台较传统计算平台出错几率更高[2]。为减少发生错误所造成的损失,需要容错机制保证系统在故障情况下也能持续运行[3]。容错包括故障检测或识别、故障预测和故障恢复3个策略。故障检测或识别通常用于检测故障类型,然后用最合适的方案进行故障诊断。故障预测侧重于根据历史数据预测故障发生的概率,并应用合适的调度策略降低故障概率。故障恢复常用技术有作业复制和检查点[4]。作业复制的优点是不需要重新计算,因为每个作业都会同时分配给不同资源的多个副本,如果其中一个失败,其它作业副本仍然可以处理[5]。但是,这种技术不是很有效,因为作业的副本单独执行可能会占用作业队列。检查点是另一种技术,它要求将运行任务的状态存储在一个已定义的检查点上。如果作业执行失败,则从最后一次保存的状态重新启动任务执行而不是从头开始,这样可极大地节省任务执行时间。
针对云计算容错技术,国内外学者进行了相应研究,提出了许多算法:文献[6]提出了周期任务模型的容错调度算法,但是该模型要求所有任务的周期完全相同,文献[7] 研究了动态实时调度算法与速率单调算法。文献[8]讨论带固定优先级实时调度算法,这些算法均没有考虑系统的容错问题。文献[9]针对当前计算机系统计算和存储资源丰富但并行文件系统写带宽提高相对滞后的特点,提出了基于内存缓存的异步检查点容错技术。文献[10]提出了一种主备份的容错调度策略用于对宿主机的错误容忍,其使用主从宿主机结构,需要设置多个宿主机作为备份宿主机,对宿主机资源浪费比较严重。文献[11]提出了增强型蚁群优化算法(Enhanced Ant Colony Optimization, EACO),根据任务和资源数量引入动态蒸发速率确定信息素蒸发速率,确保每个资源处理的任务数量很多时蒸发率很小,否则蒸发率会很高,实验结果表明控制蒸发率可有效平衡所有资源的负载。文献[12]提出了基于信任的蚁群优化调度算法(Trust-based Ant Colony Optimization,TACO),旨在尽量减少作业完成时间,平衡所有可用资源的工作量,同时引入面向资源的信任机制处理资源故障问题。文献[13]通过ACS算法和有向无环图(DAG)方法相结合,提出了一种新的云计算故障管理算法,该算法可提供有效的资源分配但没有恢复操作。文献[14]提出基于遗传算法(Genetic Algorithm,GA)的混合蚁群优化算法,以克服元启发式算法不受控制的性质,但会降低云计算分配性能。文献[15]提出在云计算中使用检查点的容错蚁群优化算法(Fault Tolerance ACO,FTACO),有效利用云计算中的动态资源解决故障和负载平衡问题。文献[16]提出了使用蚁群优化算法进行云计算的容错作业调度以满足服务质量需求,该服务使用资源失败率和基于检查点的回L恢复策略。在任务执行期间,故障索引管理器将不断与检查点处理程序交互以记录资源故障率,每发生一次故障,都将应用回滚恢复技术以节省执行时间,该算法减少了任务总执行时间,提高了吞吐量和平均周转时间。 1 系统建模
蚁群优化算法是一种生物启发式算法,为求解优化问题和设计元启发式算法提供一个自适应概念[17]。蚁群优化算法在处理调度和负载均衡时非常有效,且在查找最佳路径过程中出现故障时可构建替代路径,图1为蚁群在查找最佳路径期间出现故障最终找到替代路径的例证[18]。
流程如下:①通过蚁群1建立最优资源a的路径路线;②资源a执行任务失败,重新调用提交流程;③通过蚁群1建立替代资源b的新路径,并完成任务的提交和处理;④从不同来源的蚁群2选择由前一个蚁群1构造的最优路径分配下一个任务。
本文受蚁群寻找最适合资源的最佳路径概念启发,基于此概念进一步扩展,提出基于蚁群算法的动态容错技术(Dynamic ACS-based Fault Tolerance, DAFT),使蚁群能够在重新提交任务过程中执行资源研究,以确保任何执行失败的任务都被完全处理。此外,进一步改进信息素更新技术,作为一种惩罚失败的资源机制,使其不那么有吸引力以最终减少失败的可能性,并根据资源适当控制任务分配。
基于蚁群算法的动态容错算法对每个任务都会生成一个蚁群,根据信息素值选择执行资源。初始化的信息素值首先被启动,以确定所有资源的状态,然后提交队列中的第一个任务。资源的选择是基于信息素初始计算或信息素更新过程的信息素值的量。在执行过程中,每个任务被分成几个检查点,这些检查点将按顺序处理以保持输出的真实性。如果任务执行成功,蚁群会更新全局信息素再执行后增加的信息素;但是,如果在执行过程中出现任何故障,最后一个检查点将重新提交给另一个合适的资源,并且会更新本地信息素,此外每个成功的检查点还将更新本地信息素。最后,资源将与更新的信息素一起发布,用于下一个任务分配。利用重新提交的新资源、检查点技术和资源执行历史记录的方法,减少任务执行和处理时间,提高云计算环境的成功率。
篇2:云环境下基于蚁群算法的动态容错技术研究
2.1 算法描述
在初始任掌诩洌每个资源应具有预定义的参数,例如处理器速度、当前负载和带宽以及处理元素的数量,所有这些参数将用来计算初始的信息素值,[PVij] 用于每个资源[i]和任务[j]的组合。 初始信息素值由公式(1)给出。
假定所有资源都是相互关联的',这意味着如果任务来自特定资源,那么它就可以分配给所有可用的资源。[PVmatrix] 中的每一行都列出了资源[i]的可能任务列表,任务[j]的可能资源列表。
每列中最大的信息素值被蚁群视为最适合的资源,并且该任务分配给选定索引所引用的资源进行处理。 一旦任务被分配,相应[PVmatrix]中的信息素值将根据公式(3)更新全局信息素,以减少分配给当前资源的信息素量,使它变得对下一个蚁群不具有吸引力,让其探索其它资源。
2.2 算法流程
图2为DAFT算法流程,实现步骤如下:
(1)初始化。配置所有参数,根据公式(1)计算每个资源的初始化信息素值,为每项任务生成一个单独的蚁群,在第一次迭代中确定具有最高初始信息素的资源。
(2)开始循环。根据蚁群优化算法思想确定最适合的资源,然后发出任务提交信号,通过公式(3)更新全局信息素的值,确实任务是否完成。如果任务完成则结束,否则继续判断任务执行状态。如果任务执行成功就保存检查点,增加成功计数,并根据公式(1)-公式(5)更新局部信息素值。如果任务执行失败,则检索最后一个检查点,重新提交,增加失败计数,并根据公式(5)更新局部信息素,重复步骤(2)操作。
(3)任务状态。任务完成时,终止执行。
3 实验结果
为了验证本文的DAFT算法性能,定义平均成功率为70%(0.7),误差范围用标准偏差±0%(0.0)~±30%(0.3)表示。使用具有标准偏差的伪随机算法分配成功率,在初始化过程中定义每个单独资源范围。每种资源具有不同的成功率,且这些信息在资源分配期间不被蚁群知道。为确保实验的可靠性,每个资源都设置为具有相同的处理能力,参数如表1所示。
在云计算环境中,除了处理能力之外,每个可用资源都具有不同的适应性。在这种情况下,可使用最小和最大适应值形成适应范围。实验结果表明,启发式能够改善任务分配过程并最终提高云计算环境性能。随着执行深入,成功和失败的次数被记录并最终影响资源信息素值的蒸发。可根据资源适应度动态分配任务,如资源的成功率为0%,则分配给它的任务量最少。另一方面,如果资源的成功率非常高,则会分配最多的任务。除了在调度或重新提交过程中考虑资源适应性以外,检查点还允许从最后保存的状态重新提交失败的任务,这大大减少了处理时间,因为任务不需要从头开始。
4 结语
为了提高云计算容错性能,本文提出在云环境下基于蚁群算法的动态容错技术,利用检查点回滚技术消除从一开始就重新启动任务,减少了任务总执行时间,提高了吞吐量和平均周转时间。在资源分配期间,根据其适合度通过蚁群算法的启发式能力选择最佳资源,不但减少了每个任务的处理时间,还提高了云计算环境的成功率。与TACO算法和FTACO算法进行比较,仿真结果表明,本文方法在容错性上明显优于TACO算法和FTACO算法,最大限度提高了云环境下的容错性能。但是,在任务调度过程中,保存检查点的数量太多会加大数据量计算,因此如何控制保存检查点数量是后续研究目标。
篇3:蚁群算法
蚁群算法
蚁群算法是一种仿生类非线性优化算法,具有并行性、正反馈性和全局极小搜索能力强等特点.蚁群算法的机理是:生物界中的蚂蚁在搜寻食物源时,能在其走过的路径上释放一种蚂蚁特有的分泌物信息素,使得一定范围内的其他蚂蚁能够觉察并影响其行为.当某些路径上走过的蚂蚁越来越多时,留下的这种信息素轨迹也越多,以至信息素强度增大,使后来蚂蚁选择该路径的.概率也越高,从而更增加了该路径的信息素强度.为了将起源于离散网络路径优化的原始蚁群算法思想用于连续函数优化的地球物理反演问题,必须对有关实施细节进行改造和修正,本文基于网格划分策略的连续域蚁群算法实现了连续域大地电磁蚁群算法.通过选择蚂蚁数、信息素挥发系数等参数,利用三层K型模型和四层HA型模型进行数值试验,结果表明,蚁群算法可以稳定收敛,反演结果接近理论模型.
作 者:王书明 刘玉兰 王家映 Wang Shuming Liu Yulan Wang Jiaying 作者单位:王书明,Wang Shuming(中国地质大学,地球物理与空间信息学院,武汉,430074;University,of,Utah,Salt,Lake,City,84112,U.S.A)刘玉兰,Liu Yulan(东方地球物理勘探有限责任公司,涿州,072751)
王家映,Wang Jiaying(中国地质大学,地球物理与空间信息学院,武汉,430074)
刊 名:工程地球物理学报 英文刊名:CHINESE JOURNAL OF ENGINEERING GEOPHYSICS 年,卷(期): 6(2) 分类号:P631 关键词:蚁群算法 非线性 反演 地球物理篇4:基于复杂多阶段连续决策问题的动态窗口蚁群算法研究
基于复杂多阶段连续决策问题的动态窗口蚁群算法研究
本文研究非线性的'大规模复杂多阶段连续决策问题,研究了一种结合遗传优化的动态窗口蚁群算法.该算法将各阶段容许决策值映射为一个层状构造图中的有限节点集,其中每一层节点对应某一阶段容许决策集的子集,该子集用实数编码遗传优化进行动态筛选,以减小算法的搜索空间.
作 者:杨艳梅 作者单位:西华师范大学数学与信息学院,四川南充,637000 刊 名:中国民航飞行学院学报 英文刊名:JOURNAL OF CIVIL AVIATION FLIGHT UNIVERSITY OF CHINA 年,卷(期):2009 20(6) 分类号:V2 关键词:多阶段连续决策 动态窗口 蚁群算法篇5:基于蚁群算法的无人机航路规划
基于蚁群算法的无人机航路规划
为了提高无人机(UAV)作战任务的成功率,在敌方防御区域内执行攻击任务前必须规划设计出高效的无人机飞行航路,保证无人机能够以最小的被发现概率及可接受的航程到达目标点.针对这一问题,对新近发展的蚁群算法进行了讨论,提出了适用于航路规划的优化方法,并对无人机的'攻击任务航路进行了仿真计算.仿真结果表明,该方法是一种有效的航路规划方法.
作 者:白俊强 柳长安 BAI Jun-qiang LIU Chang-an 作者单位:白俊强,BAI Jun-qiang(西北工业大学,航空学院,陕西,西安,710072)柳长安,LIU Chang-an(陕西动力机械设计研究所5室,陕西,西安,710100)
刊 名:飞行力学 ISTIC PKU英文刊名:FLIGHT DYNAMICS 年,卷(期): 23(2) 分类号:V279 V249 关键词:无人机 航路规划 蚁群算法 生物信息激素篇6:基于蚁群算法的无人机航路规划
基于蚁群算法的无人机航路规划
为了提高无人机(UAV)作战任务的成功率,在执行敌方防御区域内攻击任务前必需规划设计出高效的无人机飞行航路,保证无人机能够以最小的被发现概率及可接受的`航程到达目标点.针对这一问题,对新近发展的蚁群算法进行了讨论,提出适用于航路规划的优化方法,并对无人机的攻击任务航路进行了仿真计算.仿真结果表明该方法是一种有效的航路规划方法.
作 者:柳长安 李为吉 王和平 作者单位:西北工业大学,航空学院,陕西,西安,710072 刊 名:空军工程大学学报(自然科学版) ISTIC PKU英文刊名:JOURNAL OF AIR FORCE ENGINEERING UNIVERSITY (NATURAL SCIENCE EDITION) 年,卷(期): 5(2) 分类号:V279 关键词:无人机 航路规划 蚁群算法 生物信息激素篇7:云计算环境下大规模数据处理技术研究论文
1.1大规模廉价计算平台
利用虛拟化技术,能够实现大规模廉价计算平台,将存储、应用程序、网络、计算等资源作为虛拟化实体。对闲散的计算资源进行抽象,使之形成相互之间完全独立的虛拟服务器实例,从而独立的完成数据处理和计算。通过这种方式,就能够实现底层硬件的虛拟化。构建可扩展计算节点资源池,并在其中实现集成管理虛拟计算流程和计算节点。这样,大规模数据子处理任务就能够完成实时迁移、资源转换、系统监控和任务部署。
建设大规模计算平台的过程,也是云计算环境下大规模数据处理的一个重要步骤。具体来说,首先要对数据处理需要的资源进行参数化的配置,根据相应的.要求进行定制。通过这一过程,用户能够获取自己需要的资源。在不同的操作模式下为用户提供参数服务。在设置参数完成定制之后,以此为基础,在大规模数据处理的时候,部署存储和计算资源,设定计算流程和数据处理方案。将相关参数设置信息在存储和计算资源的配置文件当中进行写入之后,以此对计算流程进行分配,从而在计算节点中启动相关的资源,并且管理和部署计算节点的定制处理服务。
部署工具通过网络连接到目标计算节点和计算流程,然后执行大规模数据处理方案。然后根据相应的方案,通过代码对存储和计算资源进行分配和执行。将部署在计算节点进行进行启动,利用网络在各个计算节点发送数据处理命令,从而完成调度和部署计算流程的工作。
1.2Map Reduce技术的支持
采用Map Reduce分布式和并行式编程模型,从而在模型内部对任务容错处理、计算节点负载均衡、空间局部性优化、并行任务调度等方加以实现。在Map Reduce的开发过程中,只需对Map、Reduce两个接口进行定义,通过计算机集群,对用户编写程序进行运行,拆分大规模数据集合,使之形成若干数据片段,从而得到一系列键值对[4]。然后向一个Map任务中分配一个数据片段,在Map Reduce框架下,向大规模计算集群中的节点进行子任务的分配。最后,结合得到的键值对进行计算,生成键值对集合,向Reduce当中进行输出。
Reduce当中每一个Reduce任务,都会向二元组集合当中进行分配,输入集合片段,运行Reduce函数,输出二元组键值对。如果数据处理任务失败,也能够自动重新进行计算。在大规模数据处理当中,是高度并行操作Map的,这一步骤对于大规模数据的高效处理来说,具有不可忽视的意义。基于云计算环境下,对规模数据信息大都能够达到TB级别或GB级别。在长时间处理大规模数据的时候,如果发生数据处理任务失败的情况,能够防止发生计算任务重新执行的情况。由于数据块是被复制的,因此在容错性方面,还会关系到负载均衡的情况。