基于大规模并行处理的R语言运行时技术研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:kenching
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
大数据背景下,行业应用数据呈爆炸性增长,统计分析的数据规模和处理复杂度不断增加,传统意义上的计算技术和信息系统的处理能力远远不能满足用户要求。随着高性能计算平台的不断发展,其在统计分析领域的应用开始广泛受到相关领域研究人员的关注,众多结合大数据平台的统计分析方法、从编译层面对编程语言进行优化的方法逐渐成为热门项目。作为深受统计学家追捧的编程工具R语言,和所有的解释型语言一样,存在着严重的性能弊端,需要利用并行方法提高代码执行性能。然而并行化程序设计的过程远比传统的串行化算法复杂的多,不仅需要数据分析程序员进行功能性的代码实现,还需要掌握很多分布式系统背景知识和并行程序设计技巧。上层数据分析和算法设计工作与底层复杂的并行化和分布式编程调试存在一个难以逾越的鸿沟,急需一种能够缩短普通程序员和常规程序设计方法距离的架构。首先,文章分析了R语言的特性。由于R语言是一门新兴的解释型统计学语言,没有系统的同类文献可供参考,因此本文先从源代码层面对R语言目前的实现方式进行了剖析,并着重从R语言的类型系统、向量化特性、函数式语言特性及与C语言结合等方面进行了系统性整理。然后对其运行时特性进行探讨,对比解释型语言和编译型语言在运行时的显著区别,并以目前的GNU R作为研究对象,构建了其运行时的执行框架,明确运行时阶段要处理的事务,如内存分配、数据通信等,为接下来的分布式并行系统运行时设计及优化奠定理论基础。其次,本文提出了基于R语言的分布式并行编程系统Rdp的设计思路。以提供一系列的支持R语言中常规向量化操作的并行编程接口作为系统的编程模型,采用消息传递接口(MPI)编程规范作为并行系统架构的主要实现方式,自顶向下分并行应用、并行接口、运行时环境(RTE)、操作系统及底层硬件几部分设计了基于R语言的并行运行时架构,并以RTE中的任务调度和资源分配任务为对象,对系统功能及API功能进行了设计。接下来,文章对系统的设计思路分层进行了实现与优化。按照底层系统环境交互、中间层调度工作节点及高层提供简易应用编程接口这三层抽象出并行编程的API,并使用R中的C语言接口以高效的编程语言实现MPI的任务调度和分配。不同层次编程接口功能的划分,有利于用户或者开发人员根据使用需求自由选择编程粒度实现并行,同时以R语言中使用最为广泛的泛函apply函数家族作为主要优化对象,能够在尽量不改变用户编程习惯的前提下提供一套可以在高性能计算平台上的通用接口。最后是文章的实验测试部分。首先,将Rdp中主要函数接口的性能与snow包和parallel包中的对应函数性能进行了对比测试,实验表明Rdp在处理大数据集、可扩展性、负载均衡效果方面都较其他二者有显著提升。之后使用性能监控工具Rtrace对R语言运行时函数执行时间分配和内存使用情况等方面进行了分析,提出了相应的优化策略。最后通过TWIX函数包的数据测试,证明了Rdp的易用性和高效性。
其他文献
图像中包括哪些类别的对象?对象的具体位置在哪里?每一类的对象有几个?对象有什么姿势动作?它们之间的关系又是怎样?如果让人们回答这些问题,是一件很容易的事情。但普遍意义
当今信息存储对于各行业的重要性日益明显,对存储软硬件的容量增长、可靠性和高效性等都提出了新的要求和挑战。在信息存储领域,磁盘阵列技术从产生起就一直发挥着重要的作用
中文信息处理技术在当代有广泛的应用。随着互联网和计算机应用技术的快速发展,大量数据向中文信息检索、处理提出新的课题和需求。本文在计算语言学及形式语义学的基础上:(1
计算机断层成像技术(Computed Tomography, CT)是与MRI、同位素扫描、超声图像等一样重要的医学图像诊断手段。与其他医学成像方法相比,CT成像具有检查方便、无痛苦无创伤、
随着数据库技术的成熟和知识发现等领域技术的不断发展,数据挖掘技术应运而生,并在越来越广阔的领域得到应用和发展。粗糙集方法是一种重要的数据挖掘方法,是由波兰科学家Z.P
随着Internet的不断发展,信息过载和资源迷向已经成为制约人们高效使用Internet信息的瓶颈。人们希望网页的内容能够尽可能地根据用户的浏览兴趣自动调整,从而使每个用户感觉
在计算机技术高速发展的信息时代,人们越来越多的学习、工作和生活都在依赖于计算机软件系统的正常运行,软件在现实社会中扮演着越来越重要的角色。但是现有的软件技术并不能
对等网络(P2P)产生的流量消耗了大量网络带宽资源,对网络运行造成了巨大压力,而且P2P流量快速增长导致跨ISP域流量不断增长,增加了ISP的运营开销,因此P2P跨域流量控制问题已
关联规则挖掘是从大量数据集中挖掘出潜在的知识,这就可能把涉及到个人隐私的信息挖掘出来,从而产生了隐私保护下的关联规则挖掘。因而,如何在关联规则挖掘的过程中解决好隐
随着互联网的飞速发展,恶意代码数量依然持续增长,对于恶意代码的分析研究依然处于信息安全的主要位置。为此,学术界学者对恶意代码检测、聚类、分类以及同源等方面的进行了