Compiler Support for Work-Stealing Parallel Runtime Systems

dc.contributor.authorRaman, Raghavan
dc.contributor.authorZhao, Jisheng
dc.contributor.authorBudimlić, Zoran
dc.contributor.authorSarkar, Vivek
dc.date.accessioned2017-08-02T22:03:07Z
dc.date.available2017-08-02T22:03:07Z
dc.date.issued2010-03-03
dc.date.noteMarch 3, 2010
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.
dc.format.extent20 pp
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.
dc.identifier.digitalTR10-02
dc.identifier.urihttps://hdl.handle.net/1911/96383
dc.language.isoeng
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).
dc.titleCompiler Support for Work-Stealing Parallel Runtime Systems
dc.typeTechnical report
dc.type.dcmiText
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