22
What’s Your Workload? and Why You Care Stephen M Blackburn, Robin Garner, Chris Hoffmann, Asjad M Khan, Kathryn S McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J Eliot B Moss, Aashish Phansalkar, Darko Stefanovic, Thomas VanDrunen, Daniel von Dincklage, Ben Wiedermann OOPSLA--ACM Conference on Object-Oriented Programming, Systems, Languages, & Applications, Portland OR, October 2007

What’s Your Workload? and Why You Care

Embed Size (px)

DESCRIPTION

What’s Your Workload? and Why You Care. Stephen M Blackburn, Robin Garner, Chris Hoffmann, Asjad M Khan, Kathryn S McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z Guyer, - PowerPoint PPT Presentation

Citation preview

Page 1: What’s Your Workload? and Why You Care

What’s Your Workload?

and Why You CareStephen M Blackburn, Robin Garner, Chris Hoffmann, Asjad M Khan, Kathryn S

McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z Guyer,

Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J Eliot B Moss, Aashish Phansalkar, Darko Stefanovic, Thomas VanDrunen, Daniel von Dincklage, Ben

Wiedermann

OOPSLA--ACM Conference on Object-Oriented Programming, Systems, Languages, & Applications, Portland OR, October 2007

Page 2: What’s Your Workload? and Why You Care

2

statisticsDisraeli

benchmarks

There are lies, damn lies, and“sometimes more than twice as fast”

“our …. is better or almost as good as …. across the board”

“garbage collection degrades performance by 70%”

“speedups of 1.2x to 6.4x on a variety of benchmarks”

“our prototype has usable performance”

“the overhead …. is on average negligible”

“…demonstrating high efficiency and scalability”

“our algorithm is highly efficient”

“can reduce garbage collection time by 50% to 75%”

“speedups…. are very significant (up to 54-fold)”

“speed up by 10-25% in many cases…”“…about 2x in two cases…”

“…more than 10x in two small benchmarks”

“…improves throughput by up to 41x”

Page 3: What’s Your Workload? and Why You Care

3

The success of most systems innovationhinges on benchmark performance.

Predicate 2. Methodology is appropriate.

Predicate 1. Benchmarks reflect current(and ideally, future) reality.

Page 4: What’s Your Workload? and Why You Care

4

Predicate 1.

Benchmarks & Reality• JVM design & implementation

– SPECjvm98 is small and SPECjbb is relatively simple

• Q: What has this done to compiler research?• Q: What has this done to GC research?

• Computer architecture– ISCA & Micro still rely on SPEC CPU (almost

exclusively)

• Q: What does this mean for Java performance on future architectures?

CK metrics Instruction Misses/ms

Heap (MB)

Methods

Inheritence

L1/ms ITLB/ms Allocated

Live

min 152 12 34 2 0.7 0.6

max 1011 186 6356 759 271 21.1

geomean

366 40 860 56 86.5 3.8

Page 5: What’s Your Workload? and Why You Care

5

The success of most systems innovationhinges on benchmark performance.

Predicate 2. Methodology is appropriate.

Predicate 1. Benchmarks reflect current(and ideally, future) reality.

Page 6: What’s Your Workload? and Why You Care

6

Predicate 2.

Benchmarks & Methodology

• We’re not in Kansas anymore!– JIT compilation, GC, dynamic checks,

etc

• Methodology has not adapted– Needs to be updated and

institutionalizedQuickTime™ and a

TIFF (Uncompressed) decompressorare needed to see this picture.

“…this sophistication provides a significant challenge tounderstanding complete system performance, not found intraditional languages such as C or C++” [Hauswirth et al OOPSLA ’04]

SPEC _209_db Performance

1.1

1.15

1.2

1.25

1.3

1.35

System A System B

Normalized Time

SPEC _209_db Performance

0.95

1

1.05

1.1

1.15

1.2

System A System B

Normalized Time

SPEC _209_db Performance

1

1.05

1.1

1.15

1.2

1.25

1.3

20 40 60 80 100 120

Heap Size (MB)

Normalized Time

System ASystem B

SPEC _209_db Performance

1.1

1.15

1.2

1.25

1.3

1.35

System A System B

Normalized Time

SPEC _209_db Performance

0.95

1

1.05

1.1

1.15

1.2

System A System B

Normalized Time

00.20.40.60.8

11.21.41.61.8

compressjess

raytracedb

javacmpegaudio

mtrt jack antlr bloat chart eclipsefop

hsqldb luindex lusearch jython pmd xalangeomean

Normalized Time

System ASystem BSystem C

00.20.40.60.8

11.21.41.61.8

2

compressjess

raytracedb

javacmpegaudio

mtrt jack antlr bloat chart eclipsefop

hsqldb luindex lusearch jython pmd xalangeomean

Normalized Time

System ASystem BSystem C

00.20.40.60.8

11.21.41.61.8

2

compressjess

raytracedb

javacmpegaudio

mtrt jack antlr bloat chart eclipsefop

hsqldb luindex lusearch jython pmd xalangeomean

Normalized Time

System ASystem BSystem C

1st iteration

2nd iteration

3rd iteration

• Comprehensive comparison– 3 state-of-the-art JVMs– Best of 5 executions– 19 benchmarks– 1 platform (2GHz Pentium-M, 1GB RAM, linux 2.6.15)

Page 7: What’s Your Workload? and Why You Care

7

The success of most systems innovationhinges on benchmark performance.

Predicate 2. Methodology is appropriate.

Predicate 1. Benchmarks reflect current(and ideally, future) reality.

?

Page 8: What’s Your Workload? and Why You Care

8

Innovation Trap• Innovation is gated by benchmarks• Poor benchmarking retards innovation

& misdirects energy– Reality: inappropriate, unrealistic benchmarks– Reality: poor methodology

• Examples– GC is avoided when doing SPEC performance

runs– No architectural exploration with Java

Page 9: What’s Your Workload? and Why You Care

9

How Did This Happen?• Researchers depend on SPEC

– Primary purveyor & de facto guardian– Historically C & Fortran benchmarks

• SPEC did not significantly modify methodology for Java

– Industry body concerned with product comparison

• Minimal involvement from researchers• SPEC is not concerned with research

analysis/methodology

– But the research community depends on them!• Researchers tend not to create their own suites

– Enormously expensive exercise

Page 10: What’s Your Workload? and Why You Care

10

Enough Whining.How Do We Respond?

• Critique our benchmarks & methodology– Not enough to “set the bar high” when

reviewing!– Need appropriate benchmarks & methodology

• Develop new benchmarks– NSF review panel challenged us

• Maintain and evolve those benchmarks• Establish new, appropriate methodologies• Attack problem as a community

– Formally (SIGPLAN?) and ad hoc (eg DaCapo)

Page 11: What’s Your Workload? and Why You Care

11

The DaCapo Suite: Background & Scope

• Motivation (mid 2003)

– We wanted to do good Java runtime and compiler research– An NSF review panel agreed that the existing Java

benchmarks were limiting our progress

• Non-goal: Product comparison framework (see SPEC)

• Scope– Client-side, real-world, measurable Java applications

• Real-world data and coding idioms, manageable dependencies

• Two-pronged effort– New candidate benchmarks– New suite of analyses to characterize candidates

Page 12: What’s Your Workload? and Why You Care

12

The DaCapo Suite: Goals

• Open source– Encourage (& leverage) community feedback– Enable analysis of benchmark sources – Freely available, avoid intellectual property

restrictions

• Real, non-trivial applications– Popular, non-contrived, active applications– Use analysis to ensure non-trivial, good coverage

• Responsive, not static– Adapt the suite as circumstances change

• Easy to use

Page 13: What’s Your Workload? and Why You Care

13

The DaCapo Suite: Today

• Open source (www.dacapobench.org)– Significant community-driven improvements already

• Examples: enable whole program analysis (McGill) , Xalan revision (Intel)

• 11 real, non-trivial applications– Compared to JVM98, JBB2000; on average:

• 2.5 X classes, 4 X methods, 3 X DIT, 20 X LCOM, 2 X optimized methods, 5 X icache load, 8 X ITLB, 3 X running time, 10 X allocations, 2 X live size

– Uncovered bugs in product JVMs

• Responsive, not static– Have adapted the suite

• Examples: addition of eclipse, lusearch, luindex and revision of Xalan

• Easy to use– Single jar file, OS-independent, output validation

Page 14: What’s Your Workload? and Why You Care

14

Methodology Recommendations

• Improved methodology for JVM– Measure & report multiple iterations– Use & report multiple arch. when measuring JVM– Use & report multiple JVMs when measuring arch.

• Improved methodology for JIT– Determinism is crucial to some analyses (use

“replay”)

• Improved methodology for GC– Use & report a range of fixed heap sizes– Hold workload (cf time) constant– Hold compiler activity constant (use “replay”)

Page 15: What’s Your Workload? and Why You Care

15

Example Analyses

Page 16: What’s Your Workload? and Why You Care

16

Broader Impact• Just the tip of the iceberg?

– Q: How many good ideas did not see light of day because of jvm98?

• A problem unique to Java?– Q: How has the lack of C# benchmarks impacted research?

• What’s next?– Multicore architectures, transactional memory, Fortress,

dynamic languages, …– Q: Can we evaluate TM versus locking?– Q: Can we evaluate TM implementations? (SPLASH & JBB???)

• Are we prepared to let major directions in our field unfold at the whim of inadequate methodology?

Page 17: What’s Your Workload? and Why You Care

17

Developing a New Suite• Establish a community consortium

– Practical and qualitative reasons– DaCapo grew to around 12 institutions

• Scope the project– What qualities do you most want to expose?

• Identify realistic candidate benchmarks– … and iterate.

• Identify/develop many analyses and metrics– This is essential

• Analyze candidates & prune set, engaging community– An iterative process

• Use PCA to verify coverage

Page 18: What’s Your Workload? and Why You Care

18

Conclusions• Systems innovation is gated by benchmarks

– Benchmarks & methodology can retard or accelerate innovation, focus or misdirect energy.

• As a community, we have failed– We have unrealistic benchmarks and poor methodology

• We have a unique opportunity– Transactional memory, multicore performance,

dynamic languages, etc…

• We need to take responsibility for benchmarks & methodology– Formally (eg SIGPLAN) or via ad hoc consortia (eg

DaCapo)

Page 19: What’s Your Workload? and Why You Care

19

Acknowledgments• Andrew Appel, Randy Chow, Frans Kaashoek and Bill Pugh who

encouraged this project at our three year ITR review.• Intel and IBM for their participation in this project• The US National Science Foundation (NSF) and Australian

Research Council (ARC) for funding this work • Mark Wegman who initiated the public availability of Jikes RVM, and

the developers of Jikes RVM • Fahad Gilani for writing the original version of our measurement

infrastructure for his ANU Masters Thesis • Kevin Jones and Eric Bodden for significant feedback and

enhancements• Vladimir Strigun and Yuri Yudin for extensive testing and feedback• The entire DaCapo research consortium for their long term

assistance and engagement with this project

www.dacapobench.org

Page 20: What’s Your Workload? and Why You Care

20

Extra Slides

Page 21: What’s Your Workload? and Why You Care

21

Page 22: What’s Your Workload? and Why You Care

22

Example Analyses

Benchmark overview

Vital statistics

Heap composition time series

Live objectsize distribution

Allocated objectSize distributionObject size distribution

time series (alloc & live)

Pointer distance distributions(mutation & snapshot)