© 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 - Summary 1.Grelck2.Streit3.Nuzman4.HPC5.Viglas6.Ndu7.Franke8.Guillon 1) Opt. stage At application runtime During and across invocations During single invocation Compile time / call time At query timeDuring 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,v alues Info about platform & data dist. Special instruction #interprted insns trigger inspection; hot regions (counters) always 3) Trigger detection Sampling instrument. Algorithmi c level manually / monitoring HWn/a 4) Trigger insertion Ahead of time (static compiler) During runtime recomp. runtimeRuntime/AOT by DB admin/ programmer runtimeWithin the ISS/DBT system n/a 5) Opt. granularity function + its static call tree functionmethod Entire queryBasic blockRegion (dynamic CFG) superblock 6) Target apps Long- running, CPU bound General purpose Multimedi a, CPU bound Static DB workloads General purpose any 7) Input to optimizer IRFat-binary IRIR (query plan) IR Bare binary 8) App. Prog. Lang SAC (stat. comp. array lang) Stat. comp: C/C++/ ObjectiveC Stat. comp: C/C++/… C/AnySQL (interpreted) AnyStat. comp binary Any 9) Specific opt. Specialize the IR Parallelizati on Generic FDO User choice Specialize codegen Map to reconfig hw Parallel JITing, PE Program instrument.