Partitioning streaming parallelism for multi-cores: a machine learning based approach

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Stream based languages are a popular approach to expressing parallelism in modern applications. The efficient mapping of streaming parallelism to multi-core processors 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 off-line. 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.90x 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.77x performance improvement. By porting our approach to a 8-core platform, we are able to obtain 1.8x improvement over the StreamIt default scheme, demonstrating the portability of our approach.
Original languageEnglish
Title of host publicationProceedings of the 19th international conference on Parallel Architectures And Compilation Techniques (PACT '10)
Place of PublicationNew York, NY, USA
Number of pages12
ISBN (Print)978-1-4503-0178-7
Publication statusPublished - 2010


  • compiler optimization
  • machine learning
  • partitioning streaming parallelism


Dive into the research topics of 'Partitioning streaming parallelism for multi-cores: a machine learning based approach'. Together they form a unique fingerprint.

Cite this