Loading in 5 sec....

Adaptive Optimization in the Jalapeño JVMPowerPoint Presentation

Adaptive Optimization in the Jalapeño JVM

- By
**paul2** - Follow User

- 438 Views
- Updated On :

Adaptive Optimization in the Jalapeño JVM Matthew Arnold Stephen Fink David Grove Michael Hind Peter F. Sweeney Presentation by Michael Bond Talk overview Introduction: Background & Jalapeño JVM Adaptive Optimization System (AOS) Multi-level recompilation Miscellaneous issues

Related searches for a { OPQRSTUVWXYZ

Download Presentation
## PowerPoint Slideshow about 'a { OPQRSTUVWXYZ ' - paul2

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Adaptive Optimization in the Jalapeño JVM

Matthew Arnold

Stephen Fink

David Grove

Michael Hind

Peter F. Sweeney

Presentation by Michael Bond

Talk overview

- Introduction: Background & Jalapeño JVM
- Adaptive Optimization System (AOS)
- Multi-level recompilation
- Miscellaneous issues
- Feedback-directed inlining
- Conclusion

Background

- Three waves of JVMs:
- First: Compile method when first encountered; use fixed set of optimizations
- Second: Determine hot methods dynamically and compile them with more advanced optimizations
- Third: Feedback-directed optimizations

- Jalapeño JVM targets third wave, but current implementation is second wave

Jalapeño JVM

- Written in Java (core services precompiled to native code in boot image)
- Compiles at four levels: baseline, 0, 1, & 2
- Why three levels of optimization?

- Compile-only strategy (no interpretation)
- Advantages? Disadvantages?

- Yield points for quasi-preemptive switching
- Advantages? (Disadvantages later)

Talk progress

- Introduction: Background & Jalapeño JVM
- Adaptive Optimization System (AOS)
- Multi-level recompilation
- Miscellaneous issues
- Feedback-directed inlining
- Conclusion

“Distributed, asynchronous, object-oriented design” useful for managing lots of data, say authors

Each successive pipeline (from raw data to compilation decisions) performs increasingly complex analysis on decreasing amounts of data

AOS: DesignTalk progress useful for managing lots of data, say authors

- Introduction: Background & Jalapeño JVM
- Adaptive Optimization System (AOS)
- Multi-level recompilation
- Other issues
- Feedback-directed inlining
- Conclusion

Multi-level recompilation useful for managing lots of data, say authors

Multi-level recompilation: useful for managing lots of data, say authorsSampling

- Sampling occurs on thread switch
- Thread switch triggered by clock interrupt
- Thread switch can occur only at yield points
- Yield points are method invocations and loop back edges

- Discussion: Is this approach biased?

Multi-level recompilation: useful for managing lots of data, say authorsBiased sampling

Short method

Code with no method calls or back edges

Long method

method call

method call

Multi-level recompilation: Cost-benefit analysis useful for managing lots of data, say authors

- Method m compiled at level i; estimate:
- Ti, expected time program will spend executing m if m not recompiled
- Cj, the cost of recompiling m at optimization level j, for i ≤ j ≤ N.
- Tj, expected time program will spend executing method m if m recompiled at level j.
- If, for best j, Cj + Tj < Ti, recompile m at level j.

Multi-level recompilation: Cost-benefit analysis (continued) useful for managing lots of data, say authors

- Estimate Ti :
Ti = Tf * Pm

- Tf is the future running time of the program

- We estimate that the program will run for as long as it has run so far
- Reasonable assumption?

Multi-level recompilation: Cost-benefit analysis (continued) useful for managing lots of data, say authors

- Pm is the percentage of Tf spent in m
Pm estimated from sampling

- Sample frequencies decay over time.

- Why is this a good idea?
- Could it be a disadvantage in certain cases?

Multi-level recompilation: Cost-benefit analysis (continued) useful for managing lots of data, say authors

- Statically-measured speedups Si and Si used to determine Tj:
Tj = Ti * Si / Sj

- Statically-measured speedups?!
- Is there any way to do better?

Multi-level recompilation: Cost-benefit analysis (continued) useful for managing lots of data, say authors

- Cj (cost of recompilation) estimated using a linear model of speed for each optimization level:
Cj = aj * size(m), where aj = constant for level j

- Is it reasonable to assume a linear model?
- OK to use statically-determined aj?

Multi-level recompilation: useful for managing lots of data, say authorsResults

Multi-level recompilation: useful for managing lots of data, say authorsResults (continued)

Multi-level recompilation: Discussion useful for managing lots of data, say authors

- Adaptive multi-level compilation does better than JIT at any level in short term.
- But in the long run, performance is slightly worse than JIT compilation.
- The primary target is server applications, which tend to run for a long time.

Multi-level recompilation: Discussion (continued) useful for managing lots of data, say authors

- So what’s so great about Jalapeño’s AOS?

- Current AOS implementation gives good results for both short and long term – JIT compiler can’t do both cases well because optimization level is fixed.
- The AOS can be extended to support feedback-directed optimizations such as
- fragment creation (i.e., Dynamo)
- determining if an optimization was effective

Talk progress useful for managing lots of data, say authors

- Introduction: Background & Jalapeño JVM
- Adaptive Optimization System (AOS)
- Multi-level recompilation
- Miscellaneous issues
- Feedback-directed inlining
- Conclusion

Miscellaneous issues: useful for managing lots of data, say authorsMultiprocessing

- Authors say that if a processor is idle, recompilation can be done almost for free.

- Why almost for free?
- Are there situations when you could get free recompilation on a uniprocessor?

You’re so useful for managing lots of data, say authorshot!

Adaptively optimize me all night long!

AOS Controller

Hot method

Miscellaneous issues: useful for managing lots of data, say authorsModels vs. heuristics

- Authors moving toward “analytic model of program behavior” and elimination of ad-hoc tuning parameters.
- Tuning parameters proved difficult because of “unforeseen differences in application behavior.”

- Is it believable that ad-hoc parameters can be eliminated and replaced with models?

Miscellaneous issues: useful for managing lots of data, say authorsMore intrusive optimizations

- The future of Jalapeño is more intrusive optimizations, such as compiler-inserted instrumentation for profiling
- Advantages and disadvantages compared with current system?

- Advantages:
- Performance gains in the long term
- Adjusts to phased behavior

- Disadvantages:
- Unlike with sampling, you can’t profile all the time
- Harder to adaptively throttle overhead

Miscellaneous: useful for managing lots of data, say authorsStack frame rewriting

- In the future, Jalapeño will support rewriting of a baseline stack frame with an optimized stack frame
- Authors say that rewriting an optimized stack frame with an optimized stack frame is more difficult?
- Why?

Talk progress useful for managing lots of data, say authors

- Introduction: Background & Jalapeño JVM
- Adaptive Optimization System (AOS)
- Multi-level recompilation
- Miscellaneous issues
- Feedback-directed inlining
- Conclusion

Feedback-directed inlining: More cost-benefit analysis useful for managing lots of data, say authors

- Boost factor estimated:
- Boost factor b is a function of
- The fraction f of dynamic calls attributed to the call edge in the sampling-approximated call graph
- Estimate s of the benefit (i.e., speedup) from eliminating virtually all calls from the program

- Presumably something like b = f * s.

- Boost factor b is a function of

Talk progress useful for managing lots of data, say authors

- Introduction: Background & Jalapeño JVM
- Adaptive Optimization System (AOS)
- Multi-level recompilation
- Other issues
- Feedback-directed inlining
- Conclusion

Conclusion useful for managing lots of data, say authors

- AOS designed to support feedback-directed optimizations (third wave)
- Current AOS implementation only supports selective optimizations (second wave)
- Improves short-term performance without hurting long term
- Uses mix of cost-benefit model and ad-hoc methods.

- Future work will use more intrusive performance monitoring (e.g., instrumentation for path profiling, checking that an optimization improved performance)

Download Presentation

Connecting to Server..