Abstract

Dynamic instrumentation systems offer a valuable solution for program profiling and analysis, architectural simulation, and bug detection. However, the performance of target programs suffers great losses when they are instrumented by these systems. This issue is mainly caused by the resource contention between the target programs and the instrumentation systems. As multi-core processors are becoming more and more prevalent in modern computing environments, more hardware resource parallelism is provided for software to exploit. In this paper, we propose to leverage the abundant computing resources of multi-core systems to accelerate program instrumentation. We design and implement a Multi-Threaded Profiling framework named MT-Profiler to dynamically characterize parallel programs. The framework creates instrumenting and analysis code slices which can run along with application threads in parallel on different cores. To further reduce the overhead of dynamic instrumentation, MT-profiler employs two-stage sampling scheme with several optimizations. It is implemented on DynamoRIO which is an open-source dynamic instrumentation and runtime code manipulation system. The performance of our MT-Profiler is evaluated by using the NPB3.3 OPENMP test suite. The results demonstrate that the MTProfiler obtains 3 to 17 times speedup compared with the DynamoRIO perfect profiler while the average accuracy is over 80%.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.