THOR: A performance analysis tool for Java applications running on multicore systems

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.

[1]  Allen D. Malony,et al.  The Tau Parallel Performance System , 2006, Int. J. High Perform. Comput. Appl..

[2]  Bryan Cantrill,et al.  Dynamic Instrumentation of Production Systems , 2004, USENIX Annual Technical Conference, General Track.

[3]  Jong-Deok Choi,et al.  Deterministic replay of Java multithreaded applications , 1998, SPDT '98.

[4]  Chandra Krintz,et al.  VIProf: Vertically Integrated Full-System Performance Profiler , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[5]  Eugene Kuleshov Using the ASM framework to implement common Java bytecode transformation patterns , 2007 .

[6]  Peter F. Sweeney,et al.  Understanding the cost of thread migration for multi-threaded Java applications running on a multicore platform , 2009, 2009 IEEE International Symposium on Performance Analysis of Systems and Software.

[7]  David J. Lilja,et al.  JaViz: A client/server Java profiling tool , 2000, IBM Syst. J..

[8]  Walter Binder,et al.  A Quantitative Evaluation of the Contribution of Native Code to Java Workloads , 2006, 2006 IEEE International Symposium on Workload Characterization.

[9]  Peter F. Sweeney,et al.  Using the middle tier to understand cross-tier delay in a multi-tier application , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[10]  Mikhail Dmitriev Design of JFluid: a profiling technology and tool based on dynamic bytecode instrumentation , 2003 .

[11]  Nathan R. Tallent,et al.  Effective performance measurement and analysis of multithreaded applications , 2009, PPoPP '09.

[12]  R. Wisniewski,et al.  Performance and Environment Monitoring for Whole-System Characterization and Optimization , 2004 .

[13]  Sheng Liang,et al.  Comprehensive Profiling Support in the Java Virtual Machine , 1999, COOTS.

[14]  Walter Binder,et al.  Exact and Portable Profiling for the JVM Using Bytecode Instruction Counting , 2006, QAPL.

[15]  Tong Li,et al.  Using OS Observations to Improve Performance in Multicore Systems , 2008, IEEE Micro.

[16]  Jordi Torres,et al.  Performance analysis tools for parallel Java applications on shared-memory systems , 2001, International Conference on Parallel Processing, 2001..

[17]  Lieven Eeckhout,et al.  Statistically rigorous java performance evaluation , 2007, OOPSLA.

[18]  Sam Kash Kachigan Statistical Analysis: An Interdisciplinary Introduction to Univariate & Multivariate Methods , 1986 .

[19]  Robert F. Berry,et al.  A unifying approach to performance analysis in the Java environment , 2000, IBM Syst. J..

[20]  Ravi Iyer,et al.  Addressing Cache/Memory Overheads in Enterprise Java CMP Servers , 2007, 2007 IEEE 10th International Symposium on Workload Characterization.

[21]  Dick A. C. Quartel,et al.  Performance monitoring of java applications , 2002, WOSP '02.