Proceedings of the 25th International Symposium on Software Testing and Analysis 2016
DOI: 10.1145/2931037.2931070
|View full text |Cite
|
Sign up to set email alerts
|

SyncProf: detecting, localizing, and optimizing synchronization bottlenecks

Abstract: Writing concurrent programs is a challenge because developers must consider both functional correctness and performance requirements. Numerous program analyses and testing techniques have been proposed to detect functional faults, e.g., caused by incorrect synchronization. However, little work has been done to help developers address performance problems in concurrent programs, e.g., because of inefficient synchronization. This paper presents SyncProf, a concurrency-focused profiling approach that helps in det… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
24
0

Year Published

2017
2017
2023
2023

Publication Types

Select...
6
1
1

Relationship

2
6

Authors

Journals

citations
Cited by 42 publications
(24 citation statements)
references
References 87 publications
(70 reference statements)
0
24
0
Order By: Relevance
“…Synchronization problems are the least common performance bug pattern fixed in the investigated commits. Synchronization related performance bugs, in particular those related to lock contention, have been addressed by previous research [5]- [7]. This work, however, is relatively new and we do not expect the developed techniques to be already part of the standard tool set of open source developers.…”
Section: A Bug Pattern Distributionmentioning
confidence: 93%
See 2 more Smart Citations
“…Synchronization problems are the least common performance bug pattern fixed in the investigated commits. Synchronization related performance bugs, in particular those related to lock contention, have been addressed by previous research [5]- [7]. This work, however, is relatively new and we do not expect the developed techniques to be already part of the standard tool set of open source developers.…”
Section: A Bug Pattern Distributionmentioning
confidence: 93%
“…In C/C++ projects, mutex-like locks are the most commonly used synchronization primitives, while spinlocks are widely used in operating system kernels. Since a mutex may block the execution of the program, low CPU utilization could be regarded as a rudimentary indicator of possible performance problems [5]. Besides CPU utilization, developers nowadays also profile the waiting time of each thread on a lock [6], [7] to localize where locks are mostly contended.…”
Section: E Synchronizationmentioning
confidence: 99%
See 1 more Smart Citation
“…SyncProf [148] locates portions of code where bottlenecks are caused by threads suffering from contention and synchronization issues. SyncProf repeatedly executes a program with various inputs and summarizes the observed performance behavior with a graph-based representation that relates different critical sections.…”
Section: Profilers For Parallel Applicationsmentioning
confidence: 99%
“…Complementary to generating concurrent tests, there is work on creating multi-threaded performance regression tests [31], which is orthogonal to the problem addressed here. races [5,12,24] and atomicity violations [2,15,40], static analyses [17,28,47], and profilers to detect synchronizationrelated performance bottlenecks [48]. In contrast to these approaches, Simian is a black-box analysis that does not require low-level reasoning about the application code.…”
Section: Generation Of Concurrent Testsmentioning
confidence: 99%