Effective Performance Measurement and Analysis of Multithreaded Applications

dc.contributor.authorMellor-Crummey, John
dc.contributor.authorTallent, Nathan
dc.date.accessioned2017-08-02T22:03:06Z
dc.date.available2017-08-02T22:03:06Z
dc.date.issued2008-10-13
dc.date.noteOctober 13, 2008
dc.description.abstractUnderstanding why the performance of a multithreaded program does not improve linearly with the number of cores in a sharedmemory node populated with one or more multicore processors is a problem of growing practical importance. This paper makes three contributions to performance analysis of multithreaded programs. First, we describe how to measure and attribute parallel idleness, namely, where threads are stalled and unable to work. This technique applies broadly to programming models ranging from explicit threading (e.g., Pthreads) to higher-level models such as Cilk and OpenMP. Second, we describe how to measure and attribute parallel overhead—when a thread is performing miscellaneous work other than executing the user’s computation. By employing a combination of compiler support and post-mortem analysis, we incur no measurement cost beyond normal profiling to glean this information. Using idleness and overhead metrics enables one to pinpoint areas of an application where concurrency should be increased (to reduce idleness), decreased (to reduce overhead), or where the present parallelization is hopeless (where idleness and overhead are both high). Third, we describe how to measure and attribute arbitrary performance metrics for high-level multithreaded programming models, such as Cilk. This requires bridging the gap between the expression of logical concurrency in programs and its realization at run-time as it is adaptively partitioned and scheduled onto a pool of threads. We have prototyped these ideas in the context of Rice University’s HPCTOOLKIT performance tools. We describe our approach, implementation, and experiences applying this approach to measure and attribute work, idleness, and overhead in executions of Cilk programs.
dc.format.extent10 pp
dc.identifier.citationMellor-Crummey, John and Tallent, Nathan. "Effective Performance Measurement and Analysis of Multithreaded Applications." (2008) https://hdl.handle.net/1911/96368.
dc.identifier.digitalTR08-05
dc.identifier.urihttps://hdl.handle.net/1911/96368
dc.language.isoeng
dc.rightsYou are granted permission for the noncommercial reproduction, distribution, display, and performance of this technical report in any format, but this permission is only for a period of forty-five (45) days from the most recent time that you verified that this technical report is still available from the Computer Science Department of Rice University under terms that include this permission. All other rights are reserved by the author(s).
dc.titleEffective Performance Measurement and Analysis of Multithreaded Applications
dc.typeTechnical report
dc.type.dcmiText
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR08-05.pdf
Size:
454.18 KB
Format:
Adobe Portable Document Format