多核系统中内存被越来越多地核共享,因此,日益加深的内存竞争和内存干扰导致了越来越严重的核间不同程度的性能下降、不公平的资源共享和优先级翻转甚至饿死等问题.首先分析内存共享引发的问题,接着提出伪共享(pseudoshare)方法减少内存竞争。伪共享的框架包含3个部分:1)将所有的线程、处理器核以及内存分别划分成线程组、处理器核组以及内存组,1个线程组运行在1个核组上同时使用1个内存组,从而形成一个个相互独立的子系统,子系统间互不干扰;2)分析线程的内存行为特征,获取线程所需的内存带宽;3)给每个线程分配内存带宽.伪共享的方法通过内存的划分减少核间对内存的干扰和竞争,同时通过内存带宽划分提高了公平性.实验结果显示,伪共享的方法降低了9.8%的内存干扰,提高了22.5%的公平性,并且降低了5.3%的能耗.
In modern multi-core system,memory is shared among more and more concurrently running threads.Therefore,memory contention and interference are more and more serious,which induces performance degradation differently, unfairness resource sharing and priority inversion even starvation.In this paper,we firstly analyze the problems induced by contention and interference in detail,and propose a pseudoshare framework which brings shared memory to be exclusive likely in multi-core system.The pseudoshare framework contains three main components:1)Partition threads,cores and memory into thread,core and memory groups respectively,and one thread group runs on one core group occupying unique one memory group,and one core group is only scheduled for its corresponding thread group accessing its unique memory group.Through this way,memory access among core groups is isolated;2)Analyze the behavior characteristics of threads,especially the threads'performance influence after memory is shared for each thread;3) According to the performance influence of parallel running threads,allocate memory bandwidth for each thread.We implement pseudoshare in both 4-core and 8-core platforms.Experimental results show pseudoshare optimizes both the problems of performance degradation differently and unfairness resource sharing in both 4-core and 8-core,9.8% and 22.5% on average for interference and fairness respectively.Moreover,pseudoshare solves starvation and reduces 5.3% power on average.