虚拟内存密集型多线程程序的性能改进方法  

Improving the Performance of Virtual Memory Intensive Multithreaded Programs

在线阅读下载全文

作  者:陈健康 张昱[1] CHEN Jian-kang;ZHANG Yu(School of Computer & Technology, University of Science & Technology of China,Hefei 230027, Chin)

机构地区:[1]中国科学技术大学计算机科学与技术学院,合肥230027

出  处:《小型微型计算机系统》2018年第5期924-929,共6页Journal of Chinese Computer Systems

基  金:国家重点研发计划项目(2016YFB1000403)资助

摘  要:随着多核处理器的普及,大量基于共享地址空间的虚拟内存密集型多线程程序被开发出来.这类程序的一个重要特征是存在频繁的地址空间操作,例如page faults、mmap.为了保证并发地址空间操作的正确性,操作系统使用一个全局读写锁来同步,然而却导致在高并发时因多个线程竞争该锁而使这类程序性能下降.为了解决该问题,本文提出了一个基于隔离地址空间的线程模型PMthreads,可以完全消除线程在该读写锁上的竞争.通过自定义字符设备驱动轻量级更改Linux内核中进程的全局数据区域以及实现IAmalloc堆分配器,PMthreads可以保持线程共享变量.此外,PMthreads采用Pthreads接口以支持现有的Pthreads程序.在32核机器上,本文使用5个应用进行性能评估,实验结果表明:对于虚拟内存密集型应用histogram和dedup,在32线程时PM threads相对于Pthreads性能提升了2.17倍和3.19倍;在16线程时,非此类应用的linear_regression也因削减假共享带来了8.15倍的性能提升.The development of multicore processor arouses the flourish of multithreaded VM-intensive programs based on shared memory.These programs feature frequent VM space operations such as page faults,mmap. To ensure the correctness of these concurrent operations on VM space which is shared by all threads,the operating system guards these operations with a r-w lock. However,the lock may drag the performance of these programs. This paper proposes a thread model( PMthreads) based on isolated address space to address this problem which can eliminate these contentions completely. Lightly modifying Linux kernel by character devices driver and implementing IAmalloc heap allocators,PMthreads can keep shared variables. To avoid modifying the Pthreads programs,this paper prototypes an analog of Pthreads programming model. 5 programs are evaluated on a 32-core machine with the support from Pthreads or PMthreads. The results show that VM-intensive applications such as histogram and dedup get a boost of 2. 17 times and 3. 19 times respectively when running with 32 threads. as a Non-VM-intensive application,linear regression gets an increase of 8. 15 times when running with 16 threads.

关 键 词:虚拟内存密集型程序 地址空间 竞争 性能 可扩展性 

分 类 号:TP311[自动化与计算机技术—计算机软件与理论]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象