文摘

云计算已经开始改变生物信息学研究正在进行的方式。研究人员利用这一技术可以处理大量的数据,加速科学发现。数据量的变化会导致变量计算的需求。因此,生物信息学研究人员正在追求更可靠和有效的方法进行测序分析。本文提出了一个自动资源配置方法,在IaaS G2LC,生物信息学应用。它使应用程序输出结果以实时的方式。其主要目的是保证应用程序的性能,同时提高资源利用率。爆炸的真正序列搜索数据是用来评估G2LC的有效性。实验结果表明,G2LC保证了应用程序的性能,而资源保存到20.14%。

1。介绍

显著的高通量测序技术的进步,因此生物数据的指数增长,生物信息学遇到困难分析大量的数据。存储和处理大规模基因组数据的需要,方便地访问分析工具和高效的数据共享和检索提出了重大挑战。目前,云计算是一种很有前途的解决方案来解决这些挑战。云计算提供接近无限数量的资源容量处于竞争率和允许用户获取资源需求与现收现付定价模型。云的弹性和巨大的能力使生物信息学应用程序实时地返回结果。这将有助于加快生物信息学研究过程和缓解大规模数据的存储压力。

IaaS(基础设施即服务),是云计算的一个重要形式,主要是利用虚拟化技术来创建多个vm(虚拟机)的物理主机,可以支持快速部署大规模应用程序(1]。云提供商可以减少功耗将各种应用程序合并到一个物理主机的数量更少,空闲的主机切换到低功耗模式。但是,虚拟化还创建了一个新问题。虚拟机的应用程序的性能依赖于有效的管理能力。云计算的一个基本要求是提供可靠的QoS定义的SLA(服务水平协议)。违反SLA将带来经济处罚云提供商。因此,他们总是努力确保单个VM的同意性能。它是重要的,因为应用程序的复杂性,各种资源使用模式,共享底层硬件基础设施,和性能之间的相关性和干扰应用程序。

这项工作的重点是在IaaS生物信息学应用程序的性能。这项工作试图利用云的弹性处理应用程序负载的变化。G2LC资源自动定量方法,提出为生物信息学应用程序提供合适的处理能力,跟上序列长度的变化。该方法是基于统计学习负荷预测算法。应用程序的性能是保证通过调整预测结果,同时最小化资源使用。真正的数据爆炸的痕迹,其中一个最广泛使用的生物信息学项目序列搜索,用于评估G2LC的有效性。实验结果表明,G2LC可以节省20%以上的资源,同时保证应用程序的性能。

本文的其余部分组织如下。部分2描述了背景。部分3提出G2LC和部分的详细设计和实现4介绍了实验评价。部分5检查相关工作和部分6使结论。

2。背景

根据(2),实时系统(RTS)的正确性不仅取决于时间上的逻辑结果,也就会产生这样的结果。在这种类型的应用程序中,完成或响应总是受到时间的制约。在完成这个要求可能导致严重的影响。根据这样的约束的灵活性,实时应用程序通常分为硬,公司,和软。那些艰难的实时应用程序的不履行时间限制导致系统故障。公司实时应用程序具有硬约束,但是他们允许一定程度的宽容。在软实时应用程序的情况下,不履行的期限会降低系统的性能,但不破坏它的失败或崩溃。在这项研究中,生物信息学应用程序将被视为软实时应用程序。不管序列长度变化,结果是需要尽快返回。

云计算本质上是实时和更特别的软实时。大多数现有的云应用程序有严格的时间和性能需求,如声音和物体识别、图像和视频检索、金融系统、日志处理,广告位置,和个性化的建议。这些应用程序越来越延迟敏感和操作要求下需要快速响应的工作负载,对一些违规的时间限制是可以接受的。例如,如果一个电子邮件系统响应变慢,用户可以切换到另一个服务提供者。虽然系统快速响应的失败可能会导致客户流失和减少对服务提供者的利润,它不会引起任何灾难性的后果。

另一方面,云计算也非常适合RTS。为了完成时间限制,RTS通常需要大量的计算资源。云计算可以提供可伸缩性。基础设施和应用程序的虚拟化和由此产生的解耦云能够迅速扩展提供的基础设施,以满足实时应用的资源需求。受欢迎的社交应用,如Facebook和Twitter,进一步增强,使实时沟通。主要的搜索引擎实时跳战争提供了实时搜索结果。Force.com提供实时集成与外部云服务,如Amazon Web服务,Facebook、Google App Engine和Twitter。

然而,云计算的出现,其他重要目标成本效率的提高等实时应用程序创建一个具有挑战性的气氛。云提供商不仅需要完成应用程序的性能和时间约束,而且提高数据中心的资源利用率。目标是增加他们的利润,同时QoS保证。这种平衡是基本的实时云。

3所示。方法:G2LC

3.1。VM垂直扩展

在IaaS,运行应用程序共享底层硬件的孤立的vm。在其初始化,每个VM配置一定数量的资源(如CPU、内存和磁盘)。提高利用效率的关键因素是资源配置。VM垂直扩展的目的是确保虚拟机容量与负载相匹配,同时获得浪费昂贵的资源,而后降低应用程序的性能。现有的虚拟化技术可以在本地调整现场VM的能力基于时分多路复用最大化资源利用率,也称为虚拟机调整。

实施任何政策伴随着运营成本。陈等人。3)建立了一个模拟环境,进行初步实验来说明VM垂直扩展影响三种类型的应用程序(CPU、内存和网络I / o密集型)。实验结果表明,该应用程序在虚拟机垂直扩展的性能下降小于VM迁移期间,和性能下降的时间也更短。VM垂直扩展避免了不必要的虚拟机迁移的闲置资源重新分配到重载VM在很短的时间内。相比之下,尽管VM迁移可以解决性能问题,花费更多的时间去做VM传播,产生重大干扰其他托管的应用程序。尤其是网络密集型应用程序收到严重干扰在VM迁移,这是因为网络I / O被抢占的迁移。

这项工作将采用虚拟机垂直扩展调整虚拟机根据负载的变化应用程序的处理能力。在IaaS虚拟化平台,有很多成熟的工具(如Xen (http://xenproject.org/),KVM (http://www.linux-kvm.org/page/Main_Page)和VMware (http://www.vmware.com/)用于系统管理器执行监控和垂直扩展业务。例如,我们可以使用Xenxm命令来收集VM的CPU利用率和使用Xen信贷调度程序设置CPU容量限制垂直扩展的VM。

3.2。负荷预测

实时云的一个基本要求是提供可靠的QoS定义的SLA。序列处理生物信息学应用程序通常有不同长度引起的动态资源使用模式。vm的合并可能会导致性能下降当应用程序遇到需求增加导致意外上升的资源使用情况。这可能会导致SLA violation-increasing响应时间。获得有助于确保SLA,但它会导致负载减少时效率低下。最优策略是根据实际及时调整资源配置应用程序的要求。这种方法的一个前提是找出未来的负荷。

在这项工作中,我们将采用KSwSVR,提议在我们以前的工作,作为我们的负荷预测方法(4]。它是基于统计学习技术,适用于云计算环境的复杂和动态特性。KSwSVR集成了一种改进的SVR(支持向量回归)算法和卡尔曼滤波技术,不需要访问应用程序的内部细节。改进的SVR给更多的重量比标准SVR更重要的数据,使用更合理的历史信息。采用卡尔曼平滑,消除噪音的资源使用数据来自测量误差。相比,AR(自回归),摘要(反向传播神经网络)和标准SVR KSwSVR总是面临的最小预测误差,每一种类型的资源和不同的预测步骤。

3.3。G2LC

我们建议G2LC提高负载forecasting-based资源自动定量方法——有两个调整机制全球获得预测值和当地的补偿为错误。

(我)SLA定义。资源利用率是常用的数据中心运营商代表应用程序的性能,因为它们之间的单调关系,利用很容易在操作系统级别的可衡量的。深入研究这种关系也进行,如在5,6]。不属于我们的工作范围,不失一般性,我们也采用资源利用率来表示QoS。在这项研究中,SLA定义的应用程序模型如下:

分别代表实际资源分配价值和实际资源的使用应用程序的时间间隔 之前违反SLA平均间隔吗 。的指示平均QoS VM和克制 这是确认后云服务提供商和客户之间的谈判。 代表用户对性能下降。它是为实时应用程序通常小于5%。只要VM资源利用率低于100%,也就是说, ,我们认为资源是足够的和没有违反SLA。

通常,用户租一个VM IaaS提供商的一定能力。VM的资源配置是在运行时改变。目前这是常见的做法,但它不能有效应对不断变化的负载。我们在这工作,把它作为比较对象和资源储蓄率计算如下:

(2)全球获得的预测价值。即使负载预测算法具有较高的预测精度,我们可以直接使用预测的值作为最终的资源供应?我们从谷歌trace(随机选择一块数据https://code.google.com/p/googleclusterdata/)来分析这个问题。数据是线性转换前测试。测试结果如图1

如果资源分配给虚拟机是一个固定值,CPU容量必须超过55.65(水平虚线)继续违反SLA率低于5%。从图可以看出,负载继续波动,和KSwSVR的预测精度是可以接受的。日军(平均绝对百分误差)仅为12.42%。与固定值分配相比,基于预测的值的方法节省了41.36%的资源使用情况。但结果直接使用预测价值的资源分配是41.9%违反SLA(红点,而后点),这显然是不可接受的。

这个问题的根源是任何预测算法的预测误差无法避免。预测目标变量时,误差会更显著。因此,我们需要调整预测值时VM扩展计划。

来自北卡罗来纳州立大学的研究人员,NetApp和谷歌研究了应用程序的性能之间的关系和资源压力(总资源需求比总资源分配)(7]。他们测试一个web服务器和一个数据库服务器。结果如图2。当服务器的资源利用率超过80%,应用程序的性能将严重下降。如果目标是确保违反SLA率不到5%,web服务器和数据库服务器的资源利用率必须保持,分别在78%和77%或更少。主要原因是目前的技术水平不能有效处理负载波动。我们需要提供一定量的冗余资源来维护应用程序的性能。

灵感来自于这一点,我们打算调整预测结果 通过添加一个增益系数 ,使用更多的资源来满足实时应用的需要:

我们需要解决的获得和而后问题确定这部分冗余资源的数量。为了这个目的,我们使用一个增量的遍历方法测试的价值的影响 对应用程序的性能和资源使用。结果如图3

在实验中,一系列的值 设置为(1,2]。换句话说,从预测价值资源配置数量增加到两倍。作为 增加,更多的资源被添加到应用程序中,和SLA违反率迅速降低(违反SLA率);也就是说,应用程序的性能迅速提高。当 违反SLA率低于5%。当 ,没有违反SLA的事件。另一方面,当 增加,资源被应用程序也会增加,成本优势,相对于固定值分配,减少线性(资源储蓄率)。当 增加到1.7,资源储蓄率减少到零;即总资源的使用prediction-based动态分配相当等于一个固定值分配。如果我们继续增加 ,资源储蓄率动态调整资源将成为负数,会浪费更多的资源。

如果我们只考虑资源利用率、小的价值 ,管理效果越好。然而,以满足应用程序的性能需求, 应该设置为1.3的负载实验。即资源利用率应该维持在约 。它的结论是一致的7引用之前。我们也随机选择从谷歌其他数据加载到测试。结果表明,1.3是一个理想的增益系数。

(3)当地的误差补偿。如果增益系数 设置为1.3,基于负荷预测的资源自动定量的结果如图4

从图可以看出,添加增益系数 ,应用程序的整体性能保证。大多数时候,由于增益系数的引入,是一个重要的资源供应曲线和跟踪曲线之间的差距。这种差距是浪费资源。SLA违反事件主要集中在峰值负载附近,是预测算法很难处理临时改变的对象。这是一个问题,所有当前预测算法不能解决。因此,预测价值在使用前需要后处理。如果我们想进一步提高资源利用率,并确保满足应用程序的性能需求,我们需要修改地方违反SLA事件发生。

为此,我们进一步提高资源扩展方法,并介绍一个局部误差补偿机制处理集中而后。其目的是尽可能减少违反SLA事件,为进一步提高资源利用率提供空间(通过减少增益系数 )。

应该注意的是,在实践中,IaaS服务提供商能感知VM underproviding基于VM资源利用率,但是他们不能学习特定的缺陷。因此,我们不能直接使用跟踪数据之间的差异和预测值的误差补偿(实际上是最优解)。

我们继续介绍当地的误差补偿系数 基于(3): 在哪里 窗户宽度;也就是说,误差补偿机制将考虑过去的资源使用情况 期开发资源比例下一时期的计划。因为VM资源使用不能超过其总资源的数量, 意味着缺乏资源。 是一组违反SLA事件发生在去年 期。 表示集合的元素数量 是一个阈值。一旦违反SLA事件的数量在窗口超过阈值,误差补偿机制将被触发。 是一个常数;即误差补偿量增加10%的速度。图5显示了动态资源自动定量过程在全球增益系数的组合效应 和当地的误差补偿系数

总的来说,相比之下,图4违反SLA率从4.8%降低到4.6%。不仅是应用程序性能略有改善,但也带来了更多的资源保存。资源储蓄率(相对于固定值分配)增加(仅为23.84% )到27.65% ( )。也就是说,引入合理的局部误差补偿机制创造空间减少增益系数 ,同时提高应用程序的性能和资源利用率。

尤其是,最直观的变化产生的减少 从1.3到1.2之间的差距的缩小是资源供应曲线和跟踪曲线。换句话说,减少资源浪费。另一个重大变化是,资源配置曲线不再是像以前一样光滑。当地的引入误差补偿系数 和窗口 让资源管理系统快速响应负载峰值(如红色圆圈所示)。此外,我们引入 作为资源补偿机制触发阈值条件,主要是为了避免不必要的补偿操作引发的故障(瞬态负载高峰,如青色圆圈所示)。它有助于提高资源利用率,提高了系统的稳定性。

另一个重大变化是,尽管违反SLA事件的数量(标记为红点)并没有减少太多,他们的分布有了很大的变化,在图4违反SLA事件集中在峰值负载。在图5,红点变得分散。对于终端用户应用程序,他们可能会遇到零星的请求响应延迟,但不会遭受长时间“假死机。“这将有助于改善用户体验。

到目前为止,我们已经调整了预测值在两个层面:全球增长和地方补偿。资源的控制过程自动定量图所示6。监控收集VM资源利用率数据 并发送他们的预测。预测预测,资源消耗 下一个控制周期。最后,资源扩展方案 是全球增益的调整后找到了吗 和当地的补偿

4所示。爆炸试验

专注于CPU利用率是一个很好的方式来理解应用程序的性能,因为它通常是与最终用户生产力成正比。因此,CPU利用率可以支持云服务提供商和客户之间更大的透明度。测量和报告CPU利用率也简单,便宜,和适当的衡量数据中心效率的方法。最重要的是,许多现有的生物信息学应用程序是计算密集型应用程序。因此,在这项工作中,我们专注于应用程序的CPU利用率。

应该指出的是,本文主要关注实验CPU。所以,实验结论肯定适用于cpu密集型应用程序。然而,G2LC也适用于其他类型的应用程序(比如内存/磁盘- /网络密集型的),因为现有的虚拟化技术可以动态地把这些类型的资源在一个细粒度的方法和预测算法也适用于这些资源对象。

4.1。实验设置

爆炸(基本局部比对搜索工具)8)是一种使用最广泛的生物信息学项目序列搜索。它解决了在生物信息学研究中一个基本问题。爆炸是一个比较主要的生物序列信息的算法,如氨基酸序列不同的蛋白质或DNA的核苷酸序列。爆炸搜索使研究人员能够比较查询序列和一个图书馆或数据库的序列和识别库类似查询序列的序列超过一定阈值。它使用的启发式算法比其他方法更快,如计算最优的比对。这强调速度至关重要的算法实际目前巨大的基因组数据库。

G2LC的有效性评估使用开放实际爆破工作负载跟踪(http://ammatsun.acis.ufl.edu/amwiki/index.php/Prediction),而不是自己产生的历史数据为目的的可比性和可重复的结果。

业主的痕迹相对评估几个机器学习技术的适用性,预测资源时空利用由爆炸(9]。他们还扩展预测查询运行时(PQR)回归问题。爆炸是对nonredundant执行从NCBI (NR)蛋白质序列数据库(国家生物技术信息中心)。给定一个输入序列,爆炸搜索数据库相似的序列和计算最佳对齐匹配的序列。不同长度的单核苷酸序列作为输入在搜索过程。

不同于他们的工作集中在运行时间预测,这项研究是保证生物信息学的外部表现applications-returning实时结果为不同大小的序列(负载)。每个序列的跟踪提供真正的搜索时间在nonvirtualization环境中。如果一个序列的搜索时间较长,我们相信它会在实时环境中需要更多的计算资源。因此,在实验中,序列的搜索时间属性用作负载输入痕迹。我们希望实现一个实时输出通过动态资源扩展。

4.2。实验结果

实验结果如图所示7。序列的长度的变化,虚拟机的处理能力必须跟上这种变化如果我们需要输出搜索结果的实时模型。用同样的参数设置,G2LC不仅保证了整体性能的爆炸,在这种情况下,还试图最小化资源供应曲线和跟踪曲线之间的差距。整个SLA违反率保持在5%。与固定值分配相同的QoS, G2LC节省高达20.14%的资源。

进一步分析G2LC的效果,我们提取的一小部分数据详细描述,如图8。全球增益系数 使资源配置曲线一般高于跟踪曲线,保证爆炸的平均性能在可接受的范围内。当地的引入误差补偿系数 使G2LC迅速响应峰值负载增长(如青色圆圈所示)。的基础上 , 进一步减少违反SLA的概率事件。此外,资源补偿机制的触发阈值, 在峰值,避免了不必要的补偿操作(如红色圆圈所示)。它可以帮助节约资源和提高系统稳定性。但是在某些情况下, 和窗口 将导致轻微的负面影响。如红色圆圈所示,一旦违反SLA事件窗口的数量超过阈值 ,当地的补偿机制是触发,无论后续负载的增加。如果没有后续荷载继续增加,这将导致一种资源浪费。但是它对全球效应的影响很轻微,因为资源浪费的时间不能超过窗口的宽度

在本节中,我们简要回顾一下最近的一些方法在云平台上构建和运行生物信息学应用程序。

随着生物信息学领域的扩展,一些研究利用云计算提供庞大的计算能力和按需可伸缩性。弩(10)是一个云启用工具,结合了对准器领结和SNP调用者SOAPsnp使用Hadoop并行计算。彩虹(11)是一个基于云计算的软件包,可以协助大型全基因组测序(WGS)数据的自动化分析。它将输入数据集复制到Amazon S3和利用亚马逊的管道运行WGS数据分析计算功能。CloudMap [12]是一个管道,极大地简化了突变基因序列的分析从原始FASTQ读取映射情节和短名单候选人突变。CloudBurst [13)是一种并行read-mapping算法用于下一代的人类基因组序列数据和其他参考基因组。Hadoop-based集群上实现,旨在优化并行执行。RSD-Cloud [14]在Amazon EC2上运行比较基因组学算法直接同源计算在一个广泛的选择完全测序的基因组。这些项目专注于具体问题的解决方案开发的工具或方法。

云BioLinux [15]是一种早期的尝试来简化部署和执行的生物信息学在云上的应用程序。这是一个VM配置为使用云平台高性能生物信息学。一开始,有超过135生物信息学工具已经在VM部署和配置。李等人。16]提出Hadoop-based应用程序用于生物信息学,下一代测序和其他生物域。他们描述了如何获得性能的增加利用Hadoop云计算服务,探索不同的对齐工具和应用程序执行序列比对。Widera和Krasnogor17)使用Google App Engine计算平台的计算资源。他们介绍了构建计算机生成蛋白质的方法用于蛋白质结构预测模型。拟议中的蛋白质模型比较器是他们解决问题的大规模模型的比较,可以为不同的数据大小。挂和华18)结合两种不同的异构体系结构、软件和硬件architecture-GPU architecture-Hadoop框架,开发高性能云计算服务,称为Cloud-BLASTP,对蛋白质序列比对。Cloud-BLASTP利用高性能、可用性、可靠性和可伸缩性。Cloud-BLASTP保证所有提交工作正确完成,即使在单个节点上运行的工作或映射器经验失败。

刘等人。19)引入了一个新颖实用权责发生制为实时云计算服务调度算法。实时任务调度无优先与总效用最大化的目标。提出了两种不同的时间效用函数为云计算模型实时应用程序,不仅需要奖励完成初也惩罚堕胎或实时任务的最后期限了。金等。20.]研究节能配置vm的实时服务。他们建模实时服务作为实时虚拟机请求和提供VM使用dvf方案。提出了好几个计划,努力降低功耗实时服务和节能有利可图的软实时服务的供应。

所有这些研究相比,生物信息学应用G2LC是一个通用的解决方案在IaaS提高资源利用率。它不需要访问应用程序的内部细节和执行自动定量计划只基于应用程序资源利用率的分析数据。其目的是降低服务成本,同时确保QoS在同一时间。

6。结论

新一代测序技术的快速发展,越来越多的数据被发现和发表。分析这些庞大的数据,计算性能成为一个重要的问题。这项工作的主要焦点是在IaaS生物信息学应用程序的性能。我们试图利用云的弹性处理应用程序负载的变化,使其能够以实时方式返回一个结果。G2LC资源自动定量方法,提出了提供适量的资源,为了跟上序列长度的变化。基于统计学习算法采用负荷预测。同时最小化资源使用,应用程序的性能是保证通过调整预测结果与全球利益和当地的误差补偿。真正的爆炸跟踪数据是用来评估G2LC的有效性。实验结果表明,G2LC可以节省20%以上的资源,同时保证应用程序的性能。

利益冲突

作者宣称没有利益冲突有关的出版。

承认

这项工作是由中国国家自然科学基金(批准号下的国家自然科学基金委)61303070。