Abstract:
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.