µProfiler: A Concurrent Profiler for Concurrent C++ (µC++)

dc.comment.hiddenI've made the 3 revisions. Front matter no longer includes blank pages. The landscape page (p. 27) is actually no longer a landscape page. All new chapters now start on a right-hand odd-numbered page. I am leaving the country for 5 weeks on Sunday, August 26th, so I need to have the review (and any subsequent revisions) completed by Friday August 24th.en
dc.contributor.authorGidzinski, Justyna Jay
dc.date.accessioned2007-08-21T13:31:43Z
dc.date.available2007-08-21T13:31:43Z
dc.date.issued2007-08-21T13:31:43Z
dc.date.submitted2007
dc.description.abstractA concurrent program, unlike a sequential program, has multiple threads of execution, resulting in numerous advantages (e.g., faster execution), but also in complex and unpredictable interaction. As a consequence, a concurrent program can easily underutilize available parallelism, and performance can be extremely difficult for users to predict and analyze on their own. A profiler is a tool that can help a user identify as well as locate potential performance problems in a program. Profiling is accomplished through monitoring of the program execution, and analyzing and visualizing the collected performance data. A profiler must display useful information in a way that allows a user to effectively and efficiently understand and analyze a program's behaviour. This thesis describes the advancement in design and implementation of µProfiler, a profiler for sequential and concurrent programs written in µC++. µC++ is a concurrent dialect of the C++ programming language, which executes in uni-processor and multi-processor shared-memory environments. Major advancements to three µProfiler metrics are presented: the Execution State, the Exact Routine Call-Graph and the Statistical Routine Call-Graph. The Execution State metric charts each state for every thread over the entire execution of the program. With high overhead and perfect accuracy, the Exact Routine Call-Graph metric provides an exact call-graph profile of the program's dynamic execution, describing the control flow among routines. With low overhead and less accuracy, the Statistical Routine Call-Graph metric provides a statistical call-graph profile of the program's dynamic execution. For each metric, advancements were made throughout the profiling process (i.e., monitoring, analysis and visualization), addressing goals such as scalability, functionality, usability and performance. The metrics provide reasonable memory overhead and, based on the comparison to related work, are state-of-the-art in functionality and provide similar run-time performance.en
dc.identifier.urihttp://hdl.handle.net/10012/3167
dc.language.isoenen
dc.pendingfalseen
dc.publisherUniversity of Waterlooen
dc.subjectprofileren
dc.subjectconcurrenten
dc.subjectcall graphen
dc.subjectexecution stateen
dc.subject.programComputer Scienceen
dc.titleµProfiler: A Concurrent Profiler for Concurrent C++ (µC++)en
dc.typeMaster Thesisen
uws-etd.degreeMaster of Mathematicsen
uws-etd.degree.departmentSchool of Computer Scienceen
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Thesis.pdf
Size:
1.67 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
259 B
Format:
Item-specific license agreed upon to submission
Description: