Using machine learning to partition streaming programs

Wang, Zheng and O'Boyle, Michael (2013) Using machine learning to partition streaming programs. ACM Transactions on Architecture and Code Optimization, 10 (3). ISSN 1544-3973

Full text not available from this repository.


Stream-based parallel languages are a popular way to express parallelism in modern applications. The efficient mapping of streaming parallelism to today's multicore systems is, however, highly dependent on the program and underlying architecture. We address this by developing a portable and automatic compiler-based approach to partitioning streaming programs using machine learning. Our technique predicts the ideal partition structure for a given streaming application using prior knowledge learned offline. Using the predictor we rapidly search the program space (without executing any code) to generate and select a good partition. We applied this technique to standard StreamIt applications and compared against existing approaches. On a 4-core platform, our approach achieves 60% of the best performance found by iteratively compiling and executing over 3000 different partitions per program. We obtain, on average, a 1.90× speedup over the already tuned partitioning scheme of the StreamIt compiler. When compared against a state-of-the-art analytical, model-based approach, we achieve, on average, a 1.77× performance improvement. By porting our approach to an 8-core platform, we are able to obtain 1.8× improvement over the StreamIt default scheme, demonstrating the portability of our approach.

Item Type:
Journal Article
Journal or Publication Title:
ACM Transactions on Architecture and Code Optimization
Uncontrolled Keywords:
ID Code:
Deposited By:
Deposited On:
05 Aug 2014 09:54
Last Modified:
17 Sep 2023 01:33