Pinpointing and repairing performance bottlenecks in concurrent programs

被引:16
|
作者
Yu, Tingting [1 ]
Pradel, Michael [2 ]
机构
[1] Univ Kentucky, Dept Comp Sci, Lexington, KY 40506 USA
[2] Tech Univ Darmstadt, Dept Comp Sci, Darmstadt, Germany
关键词
Testing; Concurrency; Performance bottlenecks;
D O I
10.1007/s10664-017-9578-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Developing concurrent software that is both correct and efficient is challenging. Past research has proposed various techniques that support developers in finding, understanding, and repairing concurrency-related correctness problems, such as missing or incorrect synchronization. In contrast, existing work provides little support for dealing with concurrency-related performance problems, such as unnecessary or inefficient synchronization. This paper presents SyncProf, a profiling approach that helps in identifying, localizing, and repairing performance bottlenecks in concurrent programs. The approach consists of a sequence of dynamic analyses that reason about relevant code locations with increasing precision while narrowing down performance problems and gathering data for avoiding them. A key novelty is a graph-based representation of relations between critical sections, which is the basis for computing the performance impact of a critical section and for identifying the root cause of a bottleneck. Once a bottleneck is identified, SyncProf searches for a suitable optimization strategy to avoid the problem, increasing the level of automation when repairing performance bottlenecks over a traditional, manual approach. We evaluate SyncProf on 25 versions of eleven C/C++ projects with both known and previously unknown synchronization bottlenecks. The results show that SyncProf effectively localizes the root causes of these bottlenecks with higher precision than a state of the art lock contention profiler, and that it suggests valuable strategies to repair the bottlenecks.
引用
收藏
页码:3034 / 3071
页数:38
相关论文
共 50 条
  • [31] Detection and optimization approaches for synchronization bottlenecks in parallel programs
    Zhang Y.
    Li L.
    Guofang Keji Daxue Xuebao/Journal of National University of Defense Technology, 2022, 44 (05): : 92 - 101
  • [32] Neural bottlenecks in concurrent multi-item visual search
    Peters, J.
    Reithler, J.
    Goebel, R.
    Roelfsema, P.
    PERCEPTION, 2013, 42 : 213 - 213
  • [33] Pinpointing representative portions of large Intel® Itanium® programs with dynamic instrumentation
    Patil, H
    Cohn, R
    Charney, M
    Kapoor, R
    Sun, A
    Karunanidhi, A
    MICRO-37 2004: 37TH ANNUAL INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, PROCEEDINGS, 2004, : 81 - 92
  • [34] Armada: Low-Effort Verification of High-Performance Concurrent Programs
    Lorch, Jacob R.
    Chen, Yixuan
    Kapritsos, Manos
    Parno, Bryan
    Qadeer, Shaz
    Sharma, Upamanyu
    Wilcox, James R.
    Zhao, Xueyuan
    PROCEEDINGS OF THE 41ST ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '20), 2020, : 197 - 210
  • [35] Fault Comprehension for Concurrent Programs
    Park, Sangmin
    PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), 2013, : 1444 - 1446
  • [36] LOGICAL VERIFICATION OF CONCURRENT PROGRAMS
    KRUMM, H
    ANGEWANDTE INFORMATIK, 1987, (04): : 131 - 140
  • [37] A PROBE EFFECT IN CONCURRENT PROGRAMS
    GAIT, J
    SOFTWARE-PRACTICE & EXPERIENCE, 1986, 16 (03): : 225 - 233
  • [38] Slicing Concurrent Constraint Programs
    Falaschi, Moreno
    Gabbrielli, Maurizio
    Olarte, Carlos
    Palamidessi, Catuscia
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, LOPSTR 2016, 2017, 10184 : 76 - 93
  • [39] Reachability testing of concurrent programs
    Lei, Yu
    Carver, Richard H.
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2006, 32 (06) : 382 - 403
  • [40] Syntactic Regions for Concurrent Programs
    Mimram, Samuel
    Ulusoy, Aly-Bora
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2021, (351): : 184 - 199