多核下可伸缩的多线程模型

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:m200997
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
基于共享地址空间的多线程是有效利用多核资源的重要方式。并发线程对一些共享数据的竞争,成为影响应用性能瓶颈之一。严重的共享地址空间竞争,限制了大量的多线程程序的性能。此外,在一些多线程的流处理应用中,共享队列的同步方式也极大地限制了此类应用的可伸缩性和性能。本文提出了一个线程模型 PMthreads(private virtual memory threads),旨在完全消除线程间的地址空间竞争。基于课题组已有的生产-消费共享内存模型,本文在PMthreads中设计和实现了多线程流式编程模型PMPL(PMthreads Pipeline),旨在解决流式应用可伸缩性差的问题。本文的主要贡献如下:1、详细分析了地址空间竞争影响应用性能的原因,以及共享队列同步方式的缺陷。本文通过实验以及性能分析工具发现,保护共享地址空间的全局读写锁是导致多线程程序性能下降的主要原因。本文进一步分析了粗粒度锁、细粒度锁、原子指令以及无锁化在同步共享队列上的各自缺陷。2、提出了一个基于隔离地址空间的线程模型,并且在Linux上实现了一个保持共享变量语义的原型系统PMthreads。为了完全消除线程间的地址空间竞争,PMthreads给每一个线程一个隔离的地址空间。通过自定义字符设备驱动和开发 IAmalloc(isolated address space malloc)堆分配器,PMthreads 保持了线程共享变量语义,并且PMthreads采用Pthreads接口以支持现有的Pthreads程序。3、在PMthreads上,本文设计和实现了线程之间可以高效传递数据的流式编程模型PMPL。基于生产-消费共享内存模型,本文在PMthreads上设计和实现了 PMPL,并且设计和实现了简单易用的发送和接收接口。4、在32核机器上对PMthreads和PMPL分别进行了性能评估。本文使用了 Phoenix和PARSEC中的10个测试程序评估了 PMthreads的性能。在32核下,实验结果表明:对于虚拟内存密集型应用,PMthreads相对于Pthreads性能提升了 2.17倍~3.19倍;PMthreads对NUMA的亲和性要优于Pthreads;以dedup流式应用为例,PMPL相对于使用共享队列的方式性能提升了 7.51倍。本文提出的PMthreads可以提升虚拟内存密集型多线程应用的可伸缩性和性能,并且Pthreads多线程程序可以无修改地调用PMthreads。同时本文提出的PMPL为程序员提供了一种简单高效的方式在线程之间传递数据,也使得流式多线程应用可以高可伸缩地执行。
其他文献
互联网名称与数字地址分配机构ICANN/IANA于2011年2月宣布IPv4地址已全部耗尽,IPv6时代正式到来。IPv6协议采用了128位地址,从根本上解决了地址资源不足的问题,同时IPv6协议在安
自动发电控制(AGC:AutomaticGenerationControl)系统是电力调度能量管理系统中的一项重要环节,由电厂控制系统、信息传输系统、主站控制系统等三部分组成。随着电力系统自动化
移动存储介质因体积小、使用便捷等优点而得到普及,随之产生的信息威胁也日趋严重。这是计算机安全领域的又一课题,由于移动存储介质的本地接入难以管理,通用终端设备的安全
伴随着科学技术和社会经济的快速发展,民航运输业也得到了迅猛发展,从而促进了民航空中交通流量快速增长,航班流量密集,架次增加,导致空中交通拥挤状况日益严重,造成大量航班延误、
随着处理器体系的发展,在通用多核处理器的结构上扩展加速核形成异构多核处理器平台,已经成为了高性能计算的趋势之一。在通用多核处理器上集成加速核,给处理核之间的互连方式的
短波语音通信环境下飞机类型识别是非合作通信相关方向一个新课题,无论是在民用领域还是在军用领域都有着广阔的应用前景,对国家安全非常有意义。利用短波语音通信环境下飞机驾
GPGPU的主要目标是利用GPU强大的并行计算能力进行通用目的的计算。为了支持通用计算,GPU的结构也开始针对通用计算优化,但GPU固有的SIMD工作方式依然是限制其性能发挥的巨大障
随着Internet的快速发展与深入研究,新一代网络技术及其应用已经对软件的形态、方法和运行环境提出了挑战。传统的封闭、静态的运行环境已经难以适应新的软件技术的发展。如何
定位问题是无线传感器网络(Wireless Sensor Networks,WSNs)研究中的基础性问题之一。在无线传感器网络中,确定所发生事件在监测环境的具体位置是十分重要的,众多学者对无线传感器