Compiler Support for Work-Stealing Parallel Runtime Systems

dc.contributor.authorRaman, Raghavanen_US
dc.contributor.authorZhao, Jishengen_US
dc.contributor.authorBudimlić, Zoranen_US
dc.contributor.authorSarkar, Viveken_US
dc.date.accessioned2017-08-02T22:03:07Zen_US
dc.date.available2017-08-02T22:03:07Zen_US
dc.date.issued2010-03-03en_US
dc.date.noteMarch 3, 2010en_US
dc.description.abstractMultiple programming models are emerging to address an increased need for dynamic task parallelism in multicore shared-memory multiprocessors. Examples include OpenMP 3.0, Java Concurrency Utilities, Microsoft Task Parallel Library, Intel Threading Building Blocks, Cilk, X10, Chapel, and Fortress. Scheduling algorithms based on work-stealing, as embodied in Cilk’s implementation of dynamic spawn-sync parallelism, are gaining in popularity but also have inherent limitations. In this paper, we focus on the compiler support needed to extend work-stealing for dynamic async-finish task parallelism as supported by X10 and Habanero-Java (HJ). We discuss the compiler support needed for workstealing with both the work-first and help-first policies. Performance results obtained using our compiler and the HJ work-stealing runtime show significant improvement compared to the earlier work-sharing runtime from X10 v1.5. We also propose and implement three optimizations, Dynamic-Loop-Chunking, Redundant-Frame-Store, and Objects-As-Frames, that can be performed in the compiler to improve the code generated for work-stealing schedulers. Performance results show that the Dynamic-Loop-Chunking optimization significantly improves the performance of loop based benchmarks using work-stealing schedulers with work-first policy. The Redundant-Frame-Store optimizations provide a significant reduction in the code size. The results also show that our novel Objects-As-Frames optimization yields performance improvement in many cases. To the best of our knowledge, this is the first implementation of compiler support for work-stealing schedulers for async-finish parallelism with both the work-first and help-first policies and support for task migration.en_US
dc.format.extent20 ppen_US
dc.identifier.citationRaman, Raghavan, Zhao, Jisheng, Budimli?, Zoran, et al.. "Compiler Support for Work-Stealing Parallel Runtime Systems." (2010) https://hdl.handle.net/1911/96383.en_US
dc.identifier.digitalTR10-02en_US
dc.identifier.urihttps://hdl.handle.net/1911/96383en_US
dc.language.isoengen_US
dc.rightsYou are granted permission for the noncommercial reproduction, distribution, display, and performance of this technical report in any format, but this permission is only for a period of forty-five (45) days from the most recent time that you verified that this technical report is still available from the Computer Science Department of Rice University under terms that include this permission. All other rights are reserved by the author(s).en_US
dc.titleCompiler Support for Work-Stealing Parallel Runtime Systemsen_US
dc.typeTechnical reporten_US
dc.type.dcmiTexten_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR10-02.pdf
Size:
466.97 KB
Format:
Adobe Portable Document Format