Cell Broadband Engine processor performance optimization: Tracing tools implementation and use

Optimizing performance on multicore processors is a daunting task M. S. Chang because of the increased importance of such factors as thread communication, memory contention, and memory access latency. This paper presents two tools that programmers and performance analysts can use to understand application performance on the Cell Broadband Engine® (Cell/B.E.) processor: the Performance Debugging Tool (PDT) and the Trace Analyzer (TA). PDT traces user-space events, augmenting them with scheduling data from the operating system; those traces are then read, analyzed, and presented visually by the TA. This paper describes the implementation issues arising from the fact that a common lowoverhead clock shared by all cores, essential for analysis and visualization, is not available on the Cell/B.E. processor. The TA employs an offline analysis to align the collected events to a common time based only on thread-local timestamps, event order, and context switch information. We also discuss the overhead of tracing and its impact on execution and performance analysis. We illustrate the use of the PDT and TA by analyzing several significant Cell/B.E. processor workloads, including native code and higher-level abstractions offered by the Data Communication and Synchronization services. We show how trace analysis can help identify performance issues in these workloads and how it can be used by programmers to spot performance antipatterns (common programming practices leading to suboptimal performance).

[1]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[2]  Karthikeyan Sankaralingam,et al.  MapReduce for the Cell Broadband Engine Architecture , 2009, IBM J. Res. Dev..

[3]  Bronis R. de Supinski,et al.  Delta coherence protocols , 2000, IEEE Concurr..

[4]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[5]  Jesús Labarta,et al.  CellSs: Making it easier to program the Cell Broadband Engine processor , 2007, IBM J. Res. Dev..

[6]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[7]  Eric Maillet,et al.  On Efficiently Implementing Global Time for Performance Evaluation on Multiprocessor Systems , 1995, J. Parallel Distributed Comput..

[8]  Allen D. Malony,et al.  Compensation of Measurement Overhead in Parallel Performance Profiling , 2007, Int. J. High Perform. Comput. Appl..

[9]  Barton P. Miller,et al.  The Paradyn Parallel Performance Measurement Tool , 1995, Computer.

[10]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[11]  Bilha Mendelson,et al.  Trace-based Performance Analysis on Cell BE , 2008, ISPASS 2008 - IEEE International Symposium on Performance Analysis of Systems and software.

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

[13]  Barton P. Miller,et al.  An Adaptive Cost System for Parallel Program Instrumentation , 1996, Euro-Par, Vol. I.

[14]  Matthias Hauswirth,et al.  Understanding Measurement Perturbation in Trace-based Data , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[15]  Andre Heilper,et al.  Clock synchronization in Cell-B.E. traces , 2009 .