Understanding and overcoming parallelism bottlenecks in ForkJoin applications

Understanding and overcoming parallelism bottlenecks in ForkJoin applications
复制标题

了解并克服 ForkJoin 应用程序中的并行瓶颈

DOI:
--
复制
发表时间:
2017
期刊:
International Conference on Automated Software Engineering
影响因子:
--
通讯作者:
Yu David Liu
Yu David Liu
中科院分区:
--
文献类型:
--
作者:
G. Pinto;Anthony Canino;F. C. Filho;G. Xu;Yu David Liu

文献摘要

被引文献

相似文献

ForkJoin 框架是一种广泛使用的并行编程框架,核心并发库和实际应用程序均基于该框架构建。在其简单且用户友好的 API 之下,ForkJoin 是一个复杂的托管并行运行时,许多应用程序程序员都不熟悉:框架核心是一个工作窃取调度程序,处理细粒度的任务,并承受来自自动内存管理的压力。 ForkJoin 在高级软件工程和低级系统优化之间的计算堆栈中造成了独特的差距。理解并弥合这一差距对于 JVM 支持的应用程序中并行性支持的未来至关重要。本文描述了对 ForkJoin 应用程序中并行性瓶颈的全面研究,特别关注它们如何与底层系统级功能(例如工作窃取和内存管理)交互。我们确定了 6 个瓶颈,发现重构它们可以显着提高性能和能源效率。我们的实地研究包括对 Akka(一个现实世界的 Actor 框架)和 30 个其他开源 ForkJoin 项目的深入分析。我们将补丁发送给了 15 个项目的开发人员,在回复我们补丁的 9 个项目中,有 7 个项目已经接受了补丁。
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.