Journal of University of Science and Technology of China ›› 2016, Vol. 46 ›› Issue (3): 200-207.DOI: 10.3969/j.issn.0253-2778.2016.03.004

• Original Paper • Previous Articles    

Research on stream program task scheduling and cache optimization for X86 multi-core processor

TANG Jiufei,LI He,YU Junqing   

  1. 1.Center of Network and Computation, Huazhong University of Science and Technology, Wuhan 430074, China 2.School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan 430074, China
  • Received:2015-08-27 Revised:2015-12-01 Accepted:2015-12-01 Online:2015-12-01 Published:2015-12-01

Abstract: Stream programming as a kind of programming paradigm widely used in multi-core systems, in which the parallel scheduling and access latency of main memory has a great influence on the performance of the program. To solve this problem, a task scheduling and cache optimization method was proposed for the stream program by combining the characteristics of X86 multi-core processors. To improve the parallel scheduling granularity and locality of the target program, expanded scheduling in the pre-processing phase was used firstly. Then the compiler exploitsed the data parallelism and task parallelism to keep load balancing and construct the corresponding software pipeline scheduling. According to cache hierarchies of the target system, the interference were reduced among parallel scheduling cores were reduced by eliminating cache false sharing, and the optimized mapping between logic threads and physical cores in line with the inter-thread communication distribution were implemented. The compiler took a COStream dataflow program as input and outputs the optimized program. The common algorithms in media processing technology were chosen as the test programs for the experiment. The experimental result shows that the optimized test programs achieve linear speedup, which indicates the effectiveness of the compiling optimization system.

Key words: X86 multi-core, data flow, task scheduling, cache optimization

CLC Number: