Detection and optimization approaches for synchronization bottlenecks in parallel programs

被引:0
|
作者
Zhang Y. [1 ]
Li L. [1 ]
机构
[1] School of Information Science and Engineering, Hebei University of Science and Technology, Shijiazhuang
关键词
lock; parallele programs; performance optimization; program analysis; synchronization bottleneck;
D O I
10.11887/j.cn.202205010
中图分类号
学科分类号
摘要
Aiming at the problem that improper locks in parallel programs may lead to performance bottlenecks, an approach called IdeSync was proposed to detect and optimize synchronization bottlenecks. IdeSync leveraged the static analysis to obtain the synchronized methods and blocks, and constructed a static synchronization dependency graph. The dynamic analysis technology based on the execution path was used to analyze the synchronization dependency and build the synchronization dependency graph.In order to expose the performance bottleneck, the performance change of the critical section was monitored by increasing the program workload on the synchronization dependency graph, and optimization suggestions were given for the detected synchronization bottleneck. The effectiveness of IdeSync was evaluated with 12 large real-world applications such as HSQLDB, SPECjbb2005 and RxJava, and a total of 72 synchronization bottlenecks were detected. All these bottlenecks were optimized based on IdeSync′s suggestion to achieve performance improvements, which shows that IdeSync can effectively detect and optimize synchronization bottlenecks. © 2022 National University of Defense Technology. All rights reserved.
引用
收藏
页码:92 / 101
页数:9
相关论文
共 33 条
  • [1] SCHORGENHUMER A, HOFER P, GNEDT D, Et al., Efficient sampling-based lock contention profiling for Java[C], Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering, pp. 331-334, (2017)
  • [2] PATROS P, AUBANEL E, BREMNER D, Et al., A Java util concurrent park contention tool, Proceedings of the 6th International Workshop on Programming Models and Applications for Multicores and Manycores, pp. 106-111, (2015)
  • [3] ZHENG L, LIAO X F, HE B S, Et al., On performance debugging of unnecessary lock contentions on multicore processors:a replay-based approach, Proceedings of IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pp. 56-67, (2015)
  • [4] XIAN F, SRISA-AN W, JIANG H., Contention-aware scheduler:unlocking execution parallelism in multithreaded Java programs, Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented Programming Systems Languages and Applications, pp. 163-179, (2008)
  • [5] RINARD M C, DINIZ P C., Eliminating synchronization bottlenecks using adaptive replication[J], ACM Transactions on Programming Languages and Systems, 25, 3, pp. 316-359, (2003)
  • [6] JOAO J A, SULEMAN M A, MUTLU O, Et al., Bottleneck identification and scheduling in multithreaded applications, ACM SIGARCH Computer Architecture News, 40, 1, pp. 223-234, (2012)
  • [7] TALLENT N R, MELLOR-CRUMMEY J M, PORTERFIELD A., Analyzing lock contention in multithreaded applications, Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 269-279, (2010)
  • [8] DAVID F, THOMAS G, LAWALL J, Et al., Continuously measuring critical section pressure with the free-lunch profiler[J], ACM SIGPLAN Notices, 49, 10, pp. 291-307, (2014)
  • [9] TRAHAY F., Contribution to automatic performance analysis of parallel applications, (2021)
  • [10] SELAKOVIC M, PRADEL M., Performance issues and optimizations in JavaScript:an empirical study, Proceedings of IEEE/ACM 38th International Conference on Software Engineering (ICSE), pp. 61-72, (2016)