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

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

Abstract

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
PublisherACM
Pages307-318
Number of pages12
ISBN (Print)978-1-4503-0178-7
DOIs
Publication statusPublished - 2010

Keywords

  • compiler optimization
  • machine learning
  • partitioning streaming parallelism

Fingerprint

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