Understanding and overcoming parallelism bottlenecks in ForkJoin applications.

ASE(2017)

引用 26|浏览44
暂无评分
摘要
ForkJoin framework is a widely used parallel programming framework upon which both core concurrency libraries and real-world applications are built. Beneath its simple and user-friendly APIs, ForkJoin is a sophisticated managed parallel runtime unfamiliar to many application programmers: the framework core is a *work-stealing* scheduler, handles *fine-grained* tasks, and sustains the pressure from *automatic* memory management. ForkJoin poses a unique gap in the compute stack between high-level software engineering and low-level system optimization. Understanding and bridging this gap is crucial for the future of parallelism support in JVM-supported applications. This paper describes a comprehensive study on parallelism bottlenecks in ForkJoin applications, with a unique focus on how they interact with underlying system-level features, such as work stealing and memory management. We identify 6 bottlenecks, and found that refactoring them can significantly improve performance and energy efficiency. Our field study includes an in-depth analysis of Akka --- a real-world actor framework --- and 30 additional open-source ForkJoin projects. We sent our patches to the developers of 15 projects, and 7 out of the 9 projects that replied to our patches have accepted them.
更多
查看译文
关键词
real-world actor framework,parallelism bottlenecks,core concurrency libraries,real-world applications,application programmers,work-stealing scheduler,automatic memory management,compute stack,high-level software engineering,low-level system optimization,parallelism support,energy efficiency,JVM-supported applications,user-friendly API,parallel programming framework,ForkJoin applications,open-source ForkJoin,system-level features
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要