多核体系结构高产能任务并行编程模型研究

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 0次 | 上传用户:shohoku23
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多核已经成为处理器设计的主流技术,应用软件要想获得性能提升也必须实施并行化,并行编程也就成为了广大程序员不可回避的问题。   传统的并行计算多集中在高性能数值计算领域,随着多核处理器的普及,大量非数值计算应用迫切需要并行化。但是,传统的并行编程模型并不能很好地满足这些应用的需求,新兴应用领域对任务并行和编程产能提出了更高的要求。很多遗产软件在算法层面蕴含着丰富的并行性,但是,软件的串行编程风格导致它们在并行化过程中遇到许多障碍。因此,本文针对非数值计算应用的并行化需求,开展面向多核架构的高产能、高性能的并行编程模型研究。   本文的主要创新和贡献如下:   1.提出一个面向多核处理器的并行编程模型:PTA(Process-based TAsk parallelprogramming model)。PTA基于进程模型,任务具备继承性、隔离性和可定序性。PTA可自动避免数据竞争、原子性违反等常见并发错误,有效减轻程序员的编程负担。   2.提出一种分割自调度执行模型,该模型将循环体划分成序言段和任务段,对它们采取不同的调度策略,保证了依赖关系并提高了执行效率。与常规的主从调度模型相比,对于论文中选用的9个非数值计算测试用例,在8核和48核系统上分别获得平均37.30%和55.63%的性能提升。   3.给出PTA模型的产能评估。通过9个非数值计算应用程序对PTA进行了产能评估,应用范围涉及自然语言处理、编译器、生物计算、金融计算、图像检索、游戏等,最大程序规模可达50万行以上。实验表明,使用PTA编程模型比现有多线程模型(Pthread、OpenMP、Cilk)产能显著提高。使用PTA模型并行化上述程序平均只需修改约15行代码,不到多线程模型修改量的10%。   4.给出PTA模型的性能评估。通过上述程序对PTA和多线程模型进行了性能评估。在8核并行系统上,PTA可获得最高7.90、平均6.97的加速比,相比多线程模型平均提升6.14%;在48核并行系统上,PTA可获得最高44.88、平均29.55的加速比,相比多线程模型平均提升18.58%。   5.实现了PTA模型的编译系统,系统特点如下:   a)兼容现有OvenMP,可与OpenMP有机结合,实现多层次并行。   b)支持程序中存在I/O的并行化。   c)提供了程序分析工具,帮助找出程序中潜在影响正确并行化的数据访问或代码,进一步提高并行编程产能。
其他文献
群是近年来即时通信平台中日益流行的概念,她比普通的好友分组具有更多的含义,更丰富的功能。用户可以在群内相互交流意见,共享资源,开展集体活动,协同办公。服务器运营商可以利用
近年来,GPU(Graphic Processing Unit)并行加速技术成为解决高复杂度计算问题的重要手段,特别是2007年NVIDIA公司的CUDA(Compute Unified Device Architecture)平台推出后,对多
人类对超级计算的性能追求从未止步。计算机Top500的统计结果表明,从1993年到2010年,超级计算机的性能一直保持每3年提升一个量级的速度。超并行处理(HyperParallel Ptocessing
改善无线Mesh网吞吐量是当前无线Mesh网研究中的关键问题。随着无线电技术的发展,无线接口已逐渐具备频率捷变的特性,即无线接口能在短时间内动态地重配置通信信道的中心频率与
群机器人是典型的群体智能系统,主要研究一群能力相对有限的自主移动机器人如何在有限感知情况下,通过局部交互机制涌现出群体智能行为来合作完成相对复杂的规定任务。群机器
随着集成电路制造和设计技术的不断进步,芯片中晶体管的数目以指数性增长,这导致电路的测试数据量和测试时间急剧增加,测试成本显著上升。测试压缩技术在保障测试质量的前提下,能
近年来,辅助盲人使用计算机的软硬件技术取得了长足的进展,盲人使用计算机已经越来越方便。然而,还是有一些因素使得我国盲人无法和明眼人一样熟练便捷的使用计算机,其中,输入汉字
随着计算机和网络技术的迅猛发展,传统的工业生产正逐渐向以计算机为主导的自动化控制生产转变。在煤炭行业,发展以计算机自动化控制为核心的采煤工艺和监控技术,是近年来煤
“存储墙”问题一直是制约处理器性能的关键瓶颈,计算与存储的速度鸿沟导致CPU的运算能力因为需要等待存储器的数据而大量虚耗。在片上多核的处理器环境中,多个处理器核对共享
由于易用性和良好的扩展性,google提出的MapReduce编程模型被广泛应用于各类大规模数据处理和分析项目中。在实际应用中,一个分析项目往往需要分解成多个MapReduce作业,且这些计