Deterministic replay of Java multithreaded applications
SPDT '98 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Performance monitoring of java applications
WOSP '02 Proceedings of the 3rd international workshop on Software and performance
Performance Analysis Tools for Parallel Java Applications on Shared-memory Systems
ICPP '02 Proceedings of the 2001 International Conference on Parallel Processing
JaViz: a client/server Java profiling tool
IBM Systems Journal
A unifying approach to performance analysis in the Java environment
IBM Systems Journal
The Tau Parallel Performance System
International Journal of High Performance Computing Applications
Dynamic instrumentation of production systems
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Comprehensive profiling support in the javaTM virtual machine
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
Statistically rigorous java performance evaluation
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Effective performance measurement and analysis of multithreaded applications
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Addressing Cache/Memory Overheads in Enterprise Java CMP Servers
IISWC '07 Proceedings of the 2007 IEEE 10th International Symposium on Workload Characterization
Design of JFluid: a profiling technology and tool based on dynamic bytecode instrumentation
Design of JFluid: a profiling technology and tool based on dynamic bytecode instrumentation
Hi-index | 0.00 |
The growing scale of available commercial multicore systems has increased the need for concurrent programming, because these systems expose hardware parallelism to the programmer that must be explicitly managed in software. Commercial software developers that are traditionally skilled in sequential programming are now forced to reason about concurrency to exploit multicore parallelism. More than ever, this new group of concurrent programmers has to rely on performance tools for help. This paper introduces a new tool called THOR, which addresses the complexities introduced by multicore parallelism by organizing views in terms of Java®threads and using vertical profiling techniques to understand the state of a Java thread at all layers of the execution stack. Data collection supports visualization by tagging each trace event with a corresponding thread identifier and with a time-stamp from the machine's high-resolution timer. By exhaustively tracing fine-grain events, such as operating system context switches and Java lock contention, data collection allows a user to utilize visualization to reconstruct the precise behavior of his application. In this paper, we present the details of the THOR architecture and design. THOR is currently available from IBM alphaWorks®as part of the multicore software development kit.