Upload
magdalena-birchett
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
© 2009 IBM Corporation
Session one:
1. "Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)
2. "Adaptive Generalized Task-Parallelism" Kevin Streit (U. of Saarland)
3. "Feedback Directed Dynamic Recompilation for statically compiled languages”Dorit Nuzman (IBM)
4. "Metrics to be handled for dynamic compilation on embedded systems" Henri-Pierre Charles (CEA)
Session two:
5. "Holistic Query Evaluation" Stratis Viglas (U. of Edinburgh)
6. "Towards reconfigurable acceleration in mobile phones via dynamic compilation" Geoffrey Ndu, Mikel Lujan (U. of Manchester)
7. "Automatically generating and optimising parallel dynamic compilers from high-level descriptions" Bjoern Franke (U. of Edinburgh)
8. "Pseudo Accurate Emulation with QEMU and Dinero for and Auto Tuning System" Christophe Guillon (ST)
Thematic Session on Dynamic Compilation - Schedule
© 2009 IBM Corporation
Thematic Session on Dynamic Compilation: Common questions for discussion:
1) What is the dynamic optimization stage? (e.g., load time, across invocations, during program execution, other...)
2) What triggers the dynamic compilation cycle? (e.g., information about the target platform/environment, run-time changes to the environment, run-time changes in the application execution paths, other...)
3) How are these triggers being detected? (e.g., special idioms/instructions whose execution triggers recompilation, HW assisted run-time monitoring, instrumentation based run-time monitoring, other...)
4) How/when are the above triggers (detection/monitoring mechanisms) being inserted? (e.g., ahead-of-time by the programmer, ahead-of-time by the static-compiler, at run-time, other...)
5) What is the recompilation scope/granularity? (e.g., trace, method, entire program, other...)
6) What is the target application domain? (e.g., applications that are invoked repetitively, long running applications, domain specific applications, any general purpose applications, other...)
7) What is the input code for the dynamic optimization? (e.g., source code, intermediate representation, binary, other...)
8) What is the programming language of the target applications? (e.g., interpreted languages (Java, dynamic scripting languages...), statically compiled languages (C/C++...), any languages, other...)
9) What specific adaptation / optimization / translation / code-transformation is applied? (e.g., selection between pre-prepared versions, specialization of parallelized code, general optimizations, feedback-directed optimizations, other...)
© 2009 IBM Corporation
(1) Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming / Clemens Grelck
© 2009 IBM Corporation
(2) Adaptive Generalized Task-Parallelism / Kevin Streit
© 2009 IBM Corporation
(3) Feedback-Directed Dynamic Recompilation for Statically Compiled Languages / Dorit Nuzman
1) What is the dynamic optimization stage? During program execution
2) What triggers the dynamic compilation cycle? A method gets warm
3) How are these triggers being detected? sampling execution/PCs (via time interrupts & code instrumentation) to monitor application behavior
4) How/when are the above triggers being inserted? at run-time
5) What is the recompilation scope/granularity? method
6) What is the target application domain? general purpose/commercial applications
7) What is the input code for the dynamic optimization? fat-binary (binary + IR)
8) What is the programming language of the target applications? statically compiled languages (C/C++...)
9) What specific adaptation / optimization / code-transformation is applied? general feedback-directed optimizations (BB ordering, …)
© 2009 IBM Corporation
(4) Metrics to be handled for dynamic compilation on embedded systems / Henri-Pierre Charles
© 2009 IBM Corporation
(5) Holistic Query Evaluation / Stratis Viglas
© 2009 IBM Corporation
(6) Towards reconfigurable acceleration in mobile phones via dynamic compilation / Geoffrey Ndu, Mikel Lujan
1) What is the dynamic optimization stage? during program execution
2) What triggers the dynamic compilation cycle? special instruction
3) How are these triggers being detected? hardware inside microprocessor
4) How/when are the above triggers being inserted? at run-time
5) What is the recompilation scope/granularity? basic block
6) What is the target application domain? general purpose
7) What is the input code for the dynamic optimization? IR
8) What is the programming language of the target applications? any
9) What specific adaptation / optimization / code-transformation is applied? mapping to reconfigurable hardware
© 2009 IBM Corporation
(7) Automatically generating and optimising parallel dynamic compilers from high-level descriptions / Bjoern Franke
© 2009 IBM Corporation10
1) What is the dynamic optimization stage? instrumentation during binary translation
2) What triggers the dynamic compilation cycle? Program execution, always.
3) How are these triggers being detected? Not applicable, not trigger.
4) How/when are the above triggers being inserted? Not applicable
5) What is the recompilation scope/granularity? Superblock (kind of)
6) What is the target application domain? program instrumentation
7) What is the input code for the dynamic optimization? bare binary
8) What is the programming language of the target applications? any
9) What specific adaptation / optimization / code-transformation is applied? program instrumentation, actually cache penalty estimation and block length
(8) Pseudo Accurate Emulation with QEMU for Auto Tuning / Christophe Guillon
© 2009 IBM Corporation
Thematic Session on Dynamic Compilation - Summary1.Grelck 2.Streit 3.Nuzman 4.HPC 5.Viglas 6.Ndu 7.Franke 8.Guillon
1) Opt. stage
At application runtime
During and across invocations
During single invocation
Compile time / call time
At query time During program execution
During app runtime/JIT compilation
During translation. No fist obj.
2) Opt. trigger
Specific pre-inserted detection code
Changing functions behavior
Method “hottness”
Data params,values
Info about platform & data dist.
Special instruction
#interprted insns trigger inspection; hot regions (counters)
always
3) Trigger detection
Sampling instrument.
Sampling instrument.
Algorithmic level
manually /monitoring
HW n/a
4) Trigger insertion
Ahead of time (static compiler)
During runtime recomp.
runtime Runtime/AOT by DB admin/programmer
runtime Within the ISS/DBT system
n/a
5) Opt. granularity
function + its static call tree
function method method Entire query Basic block Region (dynamic CFG)
superblock
6) Target apps
Long-running, CPU bound
General purpose
General purpose
Multimedia, CPU bound
Static DB workloads
General purpose
any
7) Input to optimizer
IR Fat-binary Fat-binary IR IR (query plan)
IR IR Bare binary
8) App. Prog. Lang
SAC (stat. comp. array lang)
Stat. comp: C/C++/ ObjectiveC
Stat. comp: C/C++/…
C/Any SQL(interpreted)
Any Stat. comp binary
Any
9) Specific opt.
Specialize the IR
Parallelization
Generic FDO
User choice
Specialize codegen
Map to reconfig hw
Parallel JITing, PE
Program instrument.