Using CPU Stubs to Optimize Parallel Processing Tasks: An Application of Dynamic Performance Stubs

Dynamic performance stubs provide a framework for the simulation of the performance behavior of software modules and functions. Hence, they can be used as an extension to software performance engineering methodologies. The methodology of dynamic performance stubs can be used for a gain oriented performance improvement. It is also possible to identify “hidden” bottlenecks and to prioritize optimization possibilities. Nowadays, the processing power of CPUs is mainly increasing by adding more cores to the architecture. To have benefits from this, new software is mostly designed for parallel processing, especially, in large software projects. As software performance optimizations can be difficult in these environments, new methodologies have to be defined. This paper extends and improves the methodology of CPU stubs and applies it to multi-core environments and parallel processing. The method is evaluated by means of a proof of concept. We were able to show that CPU stubs can be used to identify performance bottlenecks in parallel processing environments and to quantify the gain of different performance improvements. Hence, a new methodology for gain oriented optimization of CPU bound parallel processes has been validated in a case study.

[1]  Neil J. Gunther,et al.  The Practical Performance Analyst , 1998 .

[2]  Ram Srinivasan,et al.  MonteSim: a Monte Carlo performance model for in-order microachitectures , 2005, CARN.

[3]  David J. Lilja,et al.  Measuring computer performance : A practitioner's guide , 2000 .

[4]  Steve McConnell,et al.  Code complete - a practical handbook of software construction, 2nd Edition , 1993 .

[5]  Ian Sommerville,et al.  Software Engineering, 6. Auflage , 2001 .

[6]  Sebastian Bittl,et al.  The Concept of Memory Stubs as a Specialization of Dynamic Performance Stubs to Simulate Memory Access Behavior , 2009 .

[7]  Connie U. Smith,et al.  Best Practices for Software Performance Engineering , 2003, Int. CMG Conference.

[8]  Scott A. Chapman Finding the Critical Path - A Simple Approach , 2009, Int. CMG Conference.

[9]  Christian Facchi,et al.  Performance Improvement Using Dynamic Performance Stubs Performance Improvement Using Dynamic Performance Stubs Arbeitsberichte Working Papers , 2007 .

[10]  D. Feitelson,et al.  Time Stamp Counters Library - Measurements with Nano Seconds Resolution , 2000 .

[11]  Connie U. Smith,et al.  Introduction to Software Performance Engineering: Origins and Outstanding Problems , 2007, SFM.

[12]  A. Bertolino,et al.  A Brief Essay on Software Testing , 2004 .

[13]  Ray Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[14]  M. Malik,et al.  Operating Systems , 1992, Lecture Notes in Computer Science.

[15]  Christian Facchi,et al.  How to Handle CPU Bound Systems: A Spezialization of Dynamic Performance Stubs to CPU Stubs , 2008, Int. CMG Conference.

[16]  Paul J. Fortier,et al.  Computer Systems Performance Evaluation and Prediction , 2003 .

[17]  Marco Bernardo,et al.  Formal Methods for Performance Evaluation, 7th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM 2007, Bertinoro, Italy, May 28-June 2, 2007, Advanced Lectures , 2007, SFM.

[18]  Christian Facchi,et al.  Echtzeitverhalten durch die Verwendung von CPU Stubs: Eine Erweiterung von Dynamic Performance Stubs , 2009, Echtzeit.