Presentation is loading. Please wait.

Presentation is loading. Please wait.

SPEC Workshop 2008 Laboratory for Computer Architecture1/27/2008 On the Object Orientedness of C++ programs in SPEC CPU 2006 Ciji Isen & Lizy K. John University.

Similar presentations


Presentation on theme: "SPEC Workshop 2008 Laboratory for Computer Architecture1/27/2008 On the Object Orientedness of C++ programs in SPEC CPU 2006 Ciji Isen & Lizy K. John University."— Presentation transcript:

1 SPEC Workshop 2008 Laboratory for Computer Architecture1/27/2008 On the Object Orientedness of C++ programs in SPEC CPU 2006 Ciji Isen & Lizy K. John University of Texas - Austin 1/27/2008

2 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Introduction Object Oriented programming encourages –Code modularity, ease of design & maintenance –Inheritance & hierarchies –polymorphism –Dynamic Dispatch Should imply –Multiple function invocation –More functions –More indirect branching Increased control flow –particularly function calls and indirect branches

3 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Objective Object oriented nature of SPEC CPU2006 C++ programs –Measure using quantifiable metrics –Compare with other OO(SPEC java) benchmarks Has OO nature affected control flow? –branch compositions –Branch misprediction

4 SPEC Workshop Laboratory for Computer Architecture1/27/2008 C++ programs in SPEC cpu06

5 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Methodology Performance counters –Woodcrest(Intel), Power5+(IBM) Benchmarks –SPEC CPU 2006 –SPEC jbb2000 –SPECjvm98 Principle Component Analysis for Visualization

6 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Object Oriented metrics CK (Chidamber and Kemerrer) metrics –WMC (Weighted Methods per Class) –DIT (Depth of Inheritance Tree) –NOC (Number of Children) –CBO (Coupling Between Objects) –RFC (Response for a Class)

7 SPEC Workshop Laboratory for Computer Architecture1/27/2008 WMC (Weighted Methods per Class) if complexity is unity WMC = n Intuition: More methods implies –more time & effort to develop and maintain class –More methods inherited by children => more impact on children –Likely to be more application specific => less reuse

8 SPEC Workshop Laboratory for Computer Architecture1/27/2008 DIT (Depth of Inheritance Tree) A measure of impact of ancestor classes Intuition: deeper class hierarchy implies –More methods inherited => more complexity –Greater design complexity –Greater potential to reuse inherited methods

9 SPEC Workshop Laboratory for Computer Architecture1/27/2008 NOC (Number of Children) Definition: Number of immediate subclasses Intuition: more children implies –Greater reuse –more influence on the design

10 SPEC Workshop Laboratory for Computer Architecture1/27/2008 CBO (Coupling Between Objects) Definition: The number of other classes to which a class is coupled –Via methods –Instance variables Intuition: more coupling implies –Bad for modularity. Less independence for class => difficult to reuse –Less independence => sensitive to change in other parts –More interaction => complexity in testing correctness

11 SPEC Workshop Laboratory for Computer Architecture1/27/2008 RFC (Response for a Class) Intuition: more methods executed per message implies –More complexity for the class –Complexity in testing and debugging

12 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Object Orientedness of C++ benchmarks in cpu06

13 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Object Orientedness of C++ benchmarks in cpu06

14 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Object Orientedness of C++ vs. java benchmarks [ DaCapo paper ]

15 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Object Orientedness of C++ vs. java benchmarks

16 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Control flow Characteristics Has OO nature affected control flow? –branch compositions –Branch misprediction

17 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Branch types - INT

18 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Branch types - FP

19 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Branch types - INT

20 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Branch types - FP

21 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Branch misprediction - INT

22 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Branch misprediction - FP

23 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Summary Increased presence of C++ in SPEC CPU encouraging Measured object orientedness of C++ programs –Xalanckbmk,dealII & omnetpp – strong OO –OO nature of C++ programs not any worse than SPEC Java benchmarks Analyzed impact of OO nature on control flow –Control flow increase pronounced for FP –Xalanckbmk, dealII & omnetpp – higher % of function calls and indirect branches

24 SPEC Workshop Laboratory for Computer Architecture1/27/2008 Questions 24Laboratory for Computer Architecture8/28/2007


Download ppt "SPEC Workshop 2008 Laboratory for Computer Architecture1/27/2008 On the Object Orientedness of C++ programs in SPEC CPU 2006 Ciji Isen & Lizy K. John University."

Similar presentations


Ads by Google