多核下可扩放确定性并行的MapReduce

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:chaba
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
MapReduce是支持数据并行的简单有效的编程模型,它最初为集群编程而设计。随着多核处理器的日益普及,研制面向多核的MapReduce编程库以充分利用多核单机系统的计算资源也变得十分重要。现有的面向多核的MapReduce库,如Phoenix等,大都使用Pthreads库在CPU核间分派任务,依靠共享内存进行任务间通信。由于线程交织运行的不确定性,当Reduce函数不可交换时,会导致基于这些库的MapReduce应用在执行时产生不确定的、甚至是错误的行为。本文旨在设计和实现一个确定的面向多核的MapReduce库,它不仅保证MapReduce应用程序确定地并行执行,而且具有好的性能。本文的主要贡献如下:(1)用确定的消息传递多线程编程库DetMP设计实现了与Phoenix编程接口兼容的、确定的MapReduce库DMR。为保证并行的确定性,DMR采用静态划分确定地将任务指派给各个Map和Reduce线程;并利用DetMP使线程之间缺省地内存隔离,只能通过显式声明的确定性通道进行通信。为提升并行执行的性能,对DMR进行了一些优化,包括面向应用的调度等。(2)基于DMR的开发以及用DetMP改写Pthreads程序dedup的经验,总结了DetMP的可编程性和编程规则。DetMP适合编写具有流水线并行的应用程序。利用DetMP简单的通道编程接口,程序员无须管理线程间数据流的存储和并发访问细节,简化了编程。但是,DetMP不能支持个别Phoenix应用中出现的堆共享等特征,DMR针对此扩展了Phoenix应用编程接口并给出了相应的实现对策。(3)在32核机器上对DMR进行性能评估,并分析DetMP的不同实现机制对程序性能的影响。本文使用Phoenix测试程序集评估Phoenix和DMR的性能,实验表明,DMR仅在kmeans上性能略差,而在其余6个程序上有与Pthreads相当或者更优的性能。原有的DetMP实现是建立在确定的共享内存模型SPMC之上,本文进一步用Pthreads共享内存实现DetMP接口,以考核内存模型对程序性能的影响。通过用7个Phoenix程序和改写的dedup进行测试,实验表明,当CPU核数为16和32时,基于SPMC的实现在除matrix-multiply和string-match的6个程序上有更好的性能,比基于Pthreads的实现最多快9.5倍,而在matrix-multiply和string-match上或者核数低于16时,两种实现的性能相当。
其他文献
互联网的规模在不断地膨胀,多种网络类型的融合使其异构性不断地提高,它正变得越来越复杂,随之产生的问题也越来越多。为了提供一个稳定、高效、安全的运行网络,网络管理的重
纹理合成经过近年来的发展,已经成为计算机图形图像以及计算机视觉方向的研究热点。本文在基于样图的纹理合成技术的基础上,对用户约束下的多样图纹理合成做了研究,并对现有
时空数据库技术是计算机科学的新兴领域。面对着海量的数据,如何在给定的空间及时间范围内实现对移动对象快速有效地查询,是实现定位服务、智能交通、数字化战争等诸多应用中
软件测试是保证软件质量最为有效的技术手段,测试数据的优劣决定了软件测试的有效性。在不影响测试效果的前提下,减小测试用例集的规模将有效地减少测试成本,提高测试效率。
嵌入式系统开发是当今计算机软件发展的一个热点。嵌入式系统调试器是进行嵌入式开发的关键工具,常用于对嵌入式软件的调试和测试。嵌入式系统调试器由交叉调试器和调试代理
大学生综合素质发展测评是高校学生管理的重要内容之一,传统的描述性的定性评价方法往往是定性分析或者单因素的定量评价,往往存在主观片面,不够准确、不够全面的问题,已经不能适
近20年以来,随着国家经济的飞速发展,对能源的需求日益俱增。从而对各种勘探与解释方法要求也越来越高。特别是对石油勘探中的主要手段地震勘探要求更高。地震数值模拟技术是
随着存储规模日益扩大,存储网络的多样性和异构性,资源分布的广阔性和动态性,都对数据的存储管理方式和访问方式提出了新的要求和挑战。面向广域网的存储资源发现技术研究,旨
Internet上超过80亿个网页的海量数据使互联网成为当今世界上最大的信息库和全球范围内传播信息的最主要渠道,也为广大用户提供了一个巨大价值的,广阔的获取信息的渠道。但当我
OSEK操作系统标准是针对汽车电子领域嵌入式系统制定的工业标准,在汽车工业界有着广泛的应用。 调度是多任务系统正确运行的保证,而OSEK.操作系统作为硬实时系统,其调度有着特