11
© 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 Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

Embed Size (px)

Citation preview

Page 1: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 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

Page 2: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 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...)

Page 3: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 2009 IBM Corporation

(1) Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming / Clemens Grelck

Page 4: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 2009 IBM Corporation

(2) Adaptive Generalized Task-Parallelism / Kevin Streit

Page 5: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 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, …)

Page 6: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 2009 IBM Corporation

(4) Metrics to be handled for dynamic compilation on embedded systems / Henri-Pierre Charles

Page 7: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 2009 IBM Corporation

(5) Holistic Query Evaluation / Stratis Viglas

Page 8: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 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

Page 9: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 2009 IBM Corporation

(7) Automatically generating and optimising parallel dynamic compilers from high-level descriptions / Bjoern Franke

Page 10: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 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

Page 11: © 2009 IBM Corporation Session one: 1."Asynchronous Dynamic Code Adaptation for Generic Data-Parallel Array Programming" Clemens Grelck (U. of Amsterdam)

© 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.