2014
DOI: 10.1007/978-3-319-09873-9_7
|View full text |Cite
|
Sign up to set email alerts
|

ParaShares: Finding the Important Basic Blocks in Multithreaded Programs

Abstract: Abstract. Understanding and optimizing multithreaded execution is a significant challenge. Numerous research and industrial tools debug parallel performance by combing through program source or thread traces for pathologies including communication overheads, data dependencies, and load imbalances. This work takes a new approach: it ignores any underlying pathologies, and focuses instead on pinpointing the exact locations in source code that consume the largest share of execution. Our new metric, ParaShares, sc… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 9 publications
(4 citation statements)
references
References 22 publications
0
4
0
Order By: Relevance
“…COZ identifies many lines in the CNDF and BlkSchlsEqEuroNoDiv functions that would have a small impact if optimized. This same code was identified as a bottleneck by ParaShares [26]; this is the only optimization we describe here that was previously reported. This block of code performs the main numerical work of the program, and uses many temporary variables to break apart the complex computation.…”
Section: Case Study: Blackscholesmentioning
confidence: 77%
See 1 more Smart Citation
“…COZ identifies many lines in the CNDF and BlkSchlsEqEuroNoDiv functions that would have a small impact if optimized. This same code was identified as a bottleneck by ParaShares [26]; this is the only optimization we describe here that was previously reported. This block of code performs the main numerical work of the program, and uses many temporary variables to break apart the complex computation.…”
Section: Case Study: Blackscholesmentioning
confidence: 77%
“…Techniques based on binary instrumentation can identify cache and heap performance issues, contended locks, and other program hotspots [5,31,36]. ParaShares and Harmony identify basic blocks that run during periods with little or no parallelism [25,26]. Code identified by these tools is a good candidate for parallelization or classic serial optimizations.…”
Section: Parallel Profilersmentioning
confidence: 99%
“…There is a large body of work to identify parallelism bottlenecks. These include techniques to address load imbalances [12,24,34,40], scalability bottlenecks [31,38,41], visualizing bottlenecks [13][14][15]25], synchronization bottlenecks [7,11,45], and data locality bottlenecks [1,28,30]. Data locality and synchronization bottlenecks increase serial work.…”
Section: Related Workmentioning
confidence: 99%
“…This approach essentially extends the gprof [5] style execution time profilers to handle multithreaded programs. [8] defines a metric called ParaShares as the normalized processor time with respect to weighted basic blocks. The key reason of using the above metrics for performance debugging is that the code which runs during periods of high parallelism has a smaller impact on overall execution time when optimized, than the code that runs during points of low parallelism.…”
Section: Related Workmentioning
confidence: 99%