论文部分内容阅读
随着网络科技的发展和人们生活水平的提高,信息的交流与沟通变得越来越普遍,这不仅给我们的生活带来了便利,也产生了海量的数据。海量数据使信息交流更加便捷的同时,也加大了集中式运算的承载量。当今,数据正成为一种重要的资产,数据的分析能力也逐渐成为核心竞争力。人们对于海量数据的挖掘和运用,将会使科技创新能力得到极大提升。信息化是社会发展的大趋势,其关键在于数据的运用。而大规模的数据主要来源于云计算、物联网以及移动互联网等多个渠道,它贯穿于信息化建设的过程之中,为信息化的发展提供了参考与决策。可以看到,信息化时代可用的资源非常丰富,但数据始终是其最重要的内容,在日常生活中的应用比例也在不断攀升。随着社会与科技的发展,数据处理的问题层出不穷,我们寄希望于通过对大数据的挖掘和分析,将难题各个击破。在这样的大背景下,实现数据的分布式存储以及计算的分布式进行就显得越来越重要。本文旨在研究分布式计算,以实现改进和提高运算效率的目的。分布式计算使大规模的数据处理更加便捷,它将原先繁杂的计算任务划分成小的子任务,并且在各个子节点上进行并行的操作,使整体运算得到平衡,不仅提高了运算的效率,也实现了信息时代高速高能高功的产业化要求。相对于集中式计算而言,分布式计算不再只是依靠单个的设备完成任务。分布式计算使两个或多个计算机之间实现信息共享,因此可以通过网络连接,使数据在多台计算机上同时运行操作,这样就能够快速简便的解决大型且复杂的计算问题。随着信息量的增长,众多领域的计算规模也在不断扩大,人们对计算机性能的要求也越来越高。庞大的计算量使得单台计算机无法完成任务要求,而高性能的计算机也因其价格过高而难以普及。因此,如何利用分布式计算框架,以并行方式完成大规模的计算,并大幅度地提高数据计算与处理的能力,开始成为计算机领域的热门课题。一个有效而合理的分布式计算框架,应该按照任务需求和处理器的运行情况,将不同任务均衡地分配到相应的处理器上,避免不必要的任务等待时间。在分布式计算系统中,一个计算任务常常被分成多个子任务,然后将其分配到不同处理器上,通过并行的执行方式,达到减少任务的运行周期以及提高系统的吞吐量的目的。然而,子任务之间因执行时的顺序问题受到约束,即一个子任务须在之前的任务结束后才能执行。所以如何将任务合理地分配到各个处理器上,并且减少处理器空闲时间,就成为提高系统效率的关键。本文的研究重点是利用分布式框架Spark,实现用交替方向乘子法(ADM-M)求解分组Dantzig选择器。通过并行计算的方式提高了计算效率,与传统的集中式计算相比,并行计算节省运算开销,消除了冗余的计算等待时间。本文的主要工作包括:(1)利用Dantzig选择器的解路径分段线性的特质,以改进的DASSO算法来求解Dantzig选择器,通过与线性化的交替方向乘子法进行对比,突出了改进算法的优越性。(2)克服了分组Dantzig选择器中约束条件给求解带来的困难,引入中间变量进行简化,并应用交替方向乘子法(ADMM)和线性化的交替方向乘子法(LADMM)算法,从而使分组Dantzig选择器的求解变为可能。(3)在服务器上搭建分布式计算的平台,创建虚拟机,利用Spark实现求解分组Dantzig选择器的ADMM算法,并把集中式的计算与分布式的计算效率进行对比。分组Dantzig选择器对于具有分组稀疏性的线性回归模型,在特征选择、模型预测等问题方面,都有很好地应用,比较著名的例子有脑电波医学实验。首先通过设置在人体头皮的64个微电极,以256Hz的频率测量人体头部脑电波,同时记录样本人群的疾病症状,建立回归模型。然后根据这些数据计算出模型参数,可以方便以后运行预测。而分布式计算对于处理当今越来越大规模的数据,有着不容忽视的重要意义,这也是本文研究和写作的重要出发点。