SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Graal and Truffle:
Modularity and Separation of Concerns
as Cornerstones for Building a
Multipurpose Runtime
Thomas Wuerthinger
Oracle Labs
@thomaswue
24-April-2014,
Keynote at MODULARITY in Lugano
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2
Disclaimer
The following is intended to provide some insight into a line of
research in Oracle Labs. It is intended for information purposes
only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and
should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or
functionality described in connection with any Oracle product or
service remains at the sole discretion of Oracle. Any views
expressed in this presentation are my own and do not
necessarily reflect the views of Oracle.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3
Agenda
§  Graal
§  Truffle
§  Community
§  Q&A
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4
Dimensions of Extensibility
Architectures Host Runtimes
Compilation Policy Programming Languages
Graal
X86, SPARC, HSAIL, PTX, ... HotSpotVM, SubstrateVM, ...
Java, JavaScript, Python, R,
Ruby, C, Smalltalk, ...
Baseline, Mid-tier, Optimizing,
Vectorizing, ...
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5
Modularity
Graal
Truffle
runtime-specificisa-specific
Graal extension
Graal/Truffle bridge
Truffle language
Fine-grained modular structure with Rich Client
Platforms like Eclipse or NetBeans as role models.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6
Specific to Host Runtime
§ Field/Array Access
–  object/array layout, read/write barriers, …
§ Allocation
–  garbage collector, thread-local buffer, …
§ Type Checks
–  class hierarchy organization, …
§ Locking
–  monitor system, monitor enter/exit, …
§ JDK intrinsifications
–  hashCode, clone, reflection, …
§ Invocations
§ Safepoints
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.7
Levels of Lowering
Java
Lowered
Runtime-Specific
ISA-Specific
JavaArrayStore
NullCheck Length BoundsCheck TypeCheck Store
Read WriteBarrierCmpUCmpNullCheck
Read&Check WriteShiftRead&CmpUCmp
Read
Write
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8
Snippets for Graph Construction
int max(int a, int b) {	
if (a > b) return a;	
else return b;	
}
Node max(ValueNode a, ValueNode b) {	
IfNode ifNode = new IfNode(new IntegerLessThanNode(a, b));	
ifNode.trueSuccessor().setNext(new ReturnNode(a));	
ifNode.falseSuccessor().setNext(new ReturnNode(b));	
return ifNode;	
}
Manual construction:
Expression as snippet:
Data Code
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9
Simple API
API ProviderAPI User
request
data
ü  Can capture statically x  Limited flexibility
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10
Callback API
API ProviderAPI User
request including callback
callback with data
callback with data
callback with data
request returns
ü  High flexibility x  Cannot capture statically
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11
Snippet API
API ProviderAPI User
request
code as data
ü  High flexibility ü  Can capture statically
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12
Snippet Lifecycle
Bytecodes Prepared
IR Graph Specialized
IR Graphs
Preparation Specialization Instantiation
Once Few Times Many Times
...
aload_0
getfield
ifne 10
aload_1
arraylength
...
Frequency:
Java Bytecode Parsing
Node Intrinsification
Exhaustive Method Inlining
Constant Folding, Canonicalization
Graph Duplication
Node Intrinsification
Constant Folding, Canonicalization
Constant Parameter Replacement
Graph Duplication
Graph Inlining in Targe
Constant Folding, Cano
Steps:
Targ
with
...
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13
Snippet Example: Convert
@Snippet
static int f2i(float input, int result) {
if (probability(SLOW_PATH,
result == Integer.MIN_VALUE)) {
if (Float.isNaN(input)) {
return 0;
} else if (input > 0.0f) {
return Integer.MAX_VALUE;
}
}
return result;
}
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.14
Agenda
§  Graal
§  Truffle
§  Community
§  Q&A
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15
Technical Approach
Speculate and Optimize…
U
U U
U
U I
I I
G
G I
I I
G
G
Node Rewriting
for Profiling Feedback
AST Interpreter
Rewritten Nodes
AST Interpreter
Uninitialized Nodes
Compilation using
Partial Evaluation
Compiled Code
Node Transitions
S
U
I
D
G
Uninitialized Integer
Generic
DoubleString
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16
Technical Approach
… and Deoptimize and Reoptimize!
I
I I
G
G I
I I
G
G
Deoptimization
to AST Interpreter
D
I D
G
G D
I D
G
G
Node Rewriting to Update
Profiling Feedback
Recompilation using
Partial Evaluation
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17
Technical Approach
Three main parts for driving partial evaluation
§ Limit partial evaluation expansion
–  Annotation @SlowPath on a method stops the inclusion of a method
in the expansion.
§ Dynamic speculation
–  Call to CompilerDirectives.transferToInterpreter()
advises the partial evaluator to stop and place a deoptimization exit.
§ Global speculation
–  Assumption objects can be used for global speculations about the
system state. Checking the assumption in compiled code poses no
runtime overhead.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18
Peak Performance: JavaScript
Speedup relative to V8
1.0
1.5
0.6
0.7
0.9
2.6
0.5
1.4
0.8
1.0
0.7
0.8
1.0
0.7
1.1
1.6
0.6
1.1
1.2
0.9
0.0
0.5
1.0
1.5
2.0
2.5
3.0
richards
deltablue
crypto
raytrace
navier-stokes
splay
earley-boyer
box2d
gbem
u
C
om
posite
Truffle
SpiderMonkey
Selection of benchmarks from Google‘s Octane benchmark suite v1.0
latest versions of V8, Truffle, and SpiderMonkey as of December 2013
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19
Peak Performance: C
Speedup relative to GCC O0
1
1
1
1
1
1
2.7
2.0
2.0
1.9
2.6
3.2
2.5
1.7
2.0
1.9
2.7
3.4
2.1
1.8
1.9
1.0
2.8
3.4
0
0.5
1
1.5
2
2.5
3
3.5
4
fannkuch-redux fasta mandelbrot meteor-contest nbody spectralnorm
GCC O0
GCC Best
Clang Best
TruffleC
Grimmer, Rigger, Schatz, Stadler, Mössenböck:
TruffleC: Dynamic Execution of C on the Java
Virtual Machine; to be submitted	
  
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.20
Agenda
§  Graal
§  Truffle
§  Community
§  Q&A
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.21
Graal OpenJDK Project
Graal
Truffle
JavaScript
HotSpotVM
RRuby
Java Scala
Python Smalltalk C J
http://openjdk.java.net/projects/graal/
§ Development of Graal/Truffle core artifacts and APIs
§ Highly active: 30+ contributors over last 12 months
§ Highly modular: 80+ individual modules
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.22
Research Areas
Language
Implementation
General Language
Research
Compiler
Construction
Experimentation with new language
features, new languages, new
execution models
Language-independent instrumentation,
cross-language research, automatic partial
evaluation experiments
Core compiler construction research,
heterogenuous computing, advanced
architectures and backends
Truffle
Interpreters
Truffle
Graal
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.23
Graal/Truffle Related Research Projects (1)
§ TruffleRuby
–  Development in the JRuby repository (lead Chris Seaton).
–  https://github.com/jruby/jruby
–  http://blog.jruby.org/2014/01/truffle_graal_high_performance_backend/
§ FastR
–  Joint effort of a group from Purdue University (Prof. Jan Vitek) and a
team at Oracle Labs (lead Michael Haupt).
–  https://bitbucket.org/allr/fastr
§ ZipPy
–  Development by a group from University of California, Irvine (Prof.
Michael Franz).
–  https://bitbucket.org/ssllab/zippy
§ TruffleSOM
–  Development by Stefan Marr at: https://github.com/smarr/
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.24
Graal/Truffle Related Research Projects (2)
§ C and Language Interoperability
–  Experiment by students at JKU Linz (Matthias Grimmer and Manuel Rigger).
§ JavaScript
–  Effort done by the core Graal/Truffle team.
§ Debugging
–  Effort by Micheal van de Vanter from Oracle Labs.
§ SubstrateVM
–  Team at Oracle Labs led by Christian Wimmer is developing an alternative
host runtime.
§ Graal IR Instrumentation
–  Research by Yudi Zheng (USI Lugano) on instrumenting Graal IR.
§ GPU Offload
–  Research by Christopher Dubach et al. from the University of Edinburgh.
–  Graal is the compiler of choice for Project Sumatra (HSAIL/PTX offload).
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.25
Your Language or Compiler Extension?
http://openjdk.java.net/projects/graal/
graal-dev@openjdk.java.net
$ hg clone http://hg.openjdk.java.net/graal/graal
$ cd graal
$ ./mx --vm server build
$ ./mx ideinit
$ ./mx --vm server unittest SumTest
§  Truffle API License: GPLv2 with Classpath Exception
§  Graal License: GPLv2
https://wiki.openjdk.java.net/display/Graal/Main
§  Graal Resources
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.26
Acknowledgements
Oracle Labs
Danilo Ansaloni
Daniele Bonetta
Laurent Daynès
Erik Eckstein
Michael Haupt
Peter Kessler
David Leibs
Mick Jordan
Tom Rodriguez
Roland Schatz
Chris Seaton
Doug Simon
Lukas Stadler
Michael Van De Vanter
Adam Welc
Christian Wimmer
Christian Wirth
Mario Wolczko
Thomas Würthinger
Laura Hill
Interns
Miguel Garcia Gutierrez
Shams Imam
Stephen Kell
Gregor Richards
Rifat Shariyar
JKU Linz
Prof. Hanspeter Mössenböck
Stefan Anzinger
Gilles Duboscq
Josef Eisl
Matthias Grimmer
Christian Häubl
Josef Haider
Christian Humer
Christian Huber
David Leopoldseder
Manuel Rigger
Georg Schmid
Bernhard Urban
Andreas Wöß
University of Edinburgh
Christophe Dubach
Juan José Fumero Alfonso
Ranjeet Singh
Toomas Remmelg
LaBRI
Floréal Morandat
University of California, Irvine
Prof. Michael Franz
Codrut Stancu
Gulfem Savrun Yeniceri
Wei Zhang
Purdue University
Prof. Jan Vitek
Tomas Kalibera
Petr Maj

Lei Zhao
T. U. Dortmund
Prof. Peter Marwedel
Helena Kotthaus
Ingo Korb
University of California, Davis
Prof. Duncan Temple Lang
Nicholas Ulle
And many more…
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.27
Q/A
http://openjdk.java.net/projects/graal/
graal-dev@openjdk.java.net
@thomaswue
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.28
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.29

Mais conteúdo relacionado

Mais procurados

GraalVM - OpenSlava 2019-10-18
GraalVM - OpenSlava 2019-10-18GraalVM - OpenSlava 2019-10-18
GraalVM - OpenSlava 2019-10-18Jorge Hidalgo
 
Towards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainTowards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainAttila Szegedi
 
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesCharlie Gracie
 
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsTensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsStijn Decubber
 
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...Chris Fregly
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016Tim Ellison
 
JVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovJVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovZeroTurnaround
 
Python Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on FlinkPython Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on FlinkAljoscha Krettek
 
JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013Vladimir Ivanov
 
Nashorn in the future (English)
Nashorn in the future (English)Nashorn in the future (English)
Nashorn in the future (English)Logico
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open InnovationTim Ellison
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew Gerring
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance TuningMinh Hoang
 
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...scalaconfjp
 
"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine
"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine
"JIT compiler overview" @ JEEConf 2013, Kiev, UkraineVladimir Ivanov
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesMark Stoodley
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylightGunjan Patel
 

Mais procurados (20)

GraalVM - OpenSlava 2019-10-18
GraalVM - OpenSlava 2019-10-18GraalVM - OpenSlava 2019-10-18
GraalVM - OpenSlava 2019-10-18
 
Towards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainTowards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages Toolchain
 
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
 
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsTensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
 
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016
 
JVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovJVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir Ivanov
 
R ext world/ useR! Kiev
R ext world/ useR!  KievR ext world/ useR!  Kiev
R ext world/ useR! Kiev
 
Python Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on FlinkPython Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on Flink
 
JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013
 
Nashorn in the future (English)
Nashorn in the future (English)Nashorn in the future (English)
Nashorn in the future (English)
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation
 
DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
Scarab: SAT-based Constraint Programming System in Scala / Scala上で実現された制約プログラ...
 
"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine
"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine
"JIT compiler overview" @ JEEConf 2013, Kiev, Ukraine
 
KFServing and Feast
KFServing and FeastKFServing and Feast
KFServing and Feast
 
The Java Carputer
The Java CarputerThe Java Carputer
The Java Carputer
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimes
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylight
 

Semelhante a Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for Building a Multipurpose Runtime

Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)jeckels
 
Apache Storm and Oracle Event Processing for Real-time Analytics
Apache Storm and Oracle Event Processing for Real-time AnalyticsApache Storm and Oracle Event Processing for Real-time Analytics
Apache Storm and Oracle Event Processing for Real-time AnalyticsPrabhu Thukkaram
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the CoreC4Media
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your MicroservicesMarcus Hirt
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18Xiaoli Liang
 
Replicate data between environments
Replicate data between environmentsReplicate data between environments
Replicate data between environmentsDLT Solutions
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8jclingan
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 
XSEDE14 SciGaP-Apache Airavata Tutorial
XSEDE14 SciGaP-Apache Airavata TutorialXSEDE14 SciGaP-Apache Airavata Tutorial
XSEDE14 SciGaP-Apache Airavata Tutorialmarpierc
 
2015 Java update and roadmap, JUG sevilla
2015  Java update and roadmap, JUG sevilla2015  Java update and roadmap, JUG sevilla
2015 Java update and roadmap, JUG sevillaTrisha Gee
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouDavid Delabassee
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20Phil Wilkins
 
Deep Learning for Java Developer - Getting Started
Deep Learning for Java Developer - Getting StartedDeep Learning for Java Developer - Getting Started
Deep Learning for Java Developer - Getting StartedSuyash Joshi
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
 
"Quantum" Performance Effects
"Quantum" Performance Effects"Quantum" Performance Effects
"Quantum" Performance EffectsSergey Kuksenko
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowKaxil Naik
 

Semelhante a Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for Building a Multipurpose Runtime (20)

Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
 
Apache Storm and Oracle Event Processing for Real-time Analytics
Apache Storm and Oracle Event Processing for Real-time AnalyticsApache Storm and Oracle Event Processing for Real-time Analytics
Apache Storm and Oracle Event Processing for Real-time Analytics
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 
Replicate data between environments
Replicate data between environmentsReplicate data between environments
Replicate data between environments
 
Java 8
Java 8Java 8
Java 8
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
XSEDE14 SciGaP-Apache Airavata Tutorial
XSEDE14 SciGaP-Apache Airavata TutorialXSEDE14 SciGaP-Apache Airavata Tutorial
XSEDE14 SciGaP-Apache Airavata Tutorial
 
2015 Java update and roadmap, JUG sevilla
2015  Java update and roadmap, JUG sevilla2015  Java update and roadmap, JUG sevilla
2015 Java update and roadmap, JUG sevilla
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and Architecture
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
 
Deep Learning for Java Developer - Getting Started
Deep Learning for Java Developer - Getting StartedDeep Learning for Java Developer - Getting Started
Deep Learning for Java Developer - Getting Started
 
Oracle Ravello
Oracle Ravello Oracle Ravello
Oracle Ravello
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
 
"Quantum" Performance Effects
"Quantum" Performance Effects"Quantum" Performance Effects
"Quantum" Performance Effects
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 

Último

FAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceFAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceAlex Henderson
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsSérgio Sacani
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professormuralinath2
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bSérgio Sacani
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusNazaninKarimi6
 
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxPSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxSuji236384
 
Use of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptxUse of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptxRenuJangid3
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY1301aanya
 
Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.Silpa
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxseri bangash
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Silpa
 
CYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptxCYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptxSilpa
 
Gwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRL
Gwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRLGwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRL
Gwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRLkantirani197
 
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...Monika Rani
 
Grade 7 - Lesson 1 - Microscope and Its Functions
Grade 7 - Lesson 1 - Microscope and Its FunctionsGrade 7 - Lesson 1 - Microscope and Its Functions
Grade 7 - Lesson 1 - Microscope and Its FunctionsOrtegaSyrineMay
 
Atp synthase , Atp synthase complex 1 to 4.
Atp synthase , Atp synthase complex 1 to 4.Atp synthase , Atp synthase complex 1 to 4.
Atp synthase , Atp synthase complex 1 to 4.Silpa
 
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Silpa
 
Chemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfChemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfSumit Kumar yadav
 

Último (20)

Clean In Place(CIP).pptx .
Clean In Place(CIP).pptx                 .Clean In Place(CIP).pptx                 .
Clean In Place(CIP).pptx .
 
FAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceFAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical Science
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virus
 
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxPSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
 
Use of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptxUse of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptx
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY
 
Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.Selaginella: features, morphology ,anatomy and reproduction.
Selaginella: features, morphology ,anatomy and reproduction.
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptx
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.
 
CYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptxCYTOGENETIC MAP................ ppt.pptx
CYTOGENETIC MAP................ ppt.pptx
 
Gwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRL
Gwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRLGwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRL
Gwalior ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Gwalior ESCORT SERVICE❤CALL GIRL
 
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICEPATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
 
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
 
Grade 7 - Lesson 1 - Microscope and Its Functions
Grade 7 - Lesson 1 - Microscope and Its FunctionsGrade 7 - Lesson 1 - Microscope and Its Functions
Grade 7 - Lesson 1 - Microscope and Its Functions
 
Atp synthase , Atp synthase complex 1 to 4.
Atp synthase , Atp synthase complex 1 to 4.Atp synthase , Atp synthase complex 1 to 4.
Atp synthase , Atp synthase complex 1 to 4.
 
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
 
Chemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfChemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdf
 

Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for Building a Multipurpose Runtime

  • 1. Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for Building a Multipurpose Runtime Thomas Wuerthinger Oracle Labs @thomaswue 24-April-2014, Keynote at MODULARITY in Lugano
  • 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2 Disclaimer The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in connection with any Oracle product or service remains at the sole discretion of Oracle. Any views expressed in this presentation are my own and do not necessarily reflect the views of Oracle.
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3 Agenda §  Graal §  Truffle §  Community §  Q&A
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4 Dimensions of Extensibility Architectures Host Runtimes Compilation Policy Programming Languages Graal X86, SPARC, HSAIL, PTX, ... HotSpotVM, SubstrateVM, ... Java, JavaScript, Python, R, Ruby, C, Smalltalk, ... Baseline, Mid-tier, Optimizing, Vectorizing, ...
  • 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5 Modularity Graal Truffle runtime-specificisa-specific Graal extension Graal/Truffle bridge Truffle language Fine-grained modular structure with Rich Client Platforms like Eclipse or NetBeans as role models.
  • 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6 Specific to Host Runtime § Field/Array Access –  object/array layout, read/write barriers, … § Allocation –  garbage collector, thread-local buffer, … § Type Checks –  class hierarchy organization, … § Locking –  monitor system, monitor enter/exit, … § JDK intrinsifications –  hashCode, clone, reflection, … § Invocations § Safepoints
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.7 Levels of Lowering Java Lowered Runtime-Specific ISA-Specific JavaArrayStore NullCheck Length BoundsCheck TypeCheck Store Read WriteBarrierCmpUCmpNullCheck Read&Check WriteShiftRead&CmpUCmp Read Write
  • 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8 Snippets for Graph Construction int max(int a, int b) { if (a > b) return a; else return b; } Node max(ValueNode a, ValueNode b) { IfNode ifNode = new IfNode(new IntegerLessThanNode(a, b)); ifNode.trueSuccessor().setNext(new ReturnNode(a)); ifNode.falseSuccessor().setNext(new ReturnNode(b)); return ifNode; } Manual construction: Expression as snippet: Data Code
  • 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9 Simple API API ProviderAPI User request data ü  Can capture statically x  Limited flexibility
  • 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10 Callback API API ProviderAPI User request including callback callback with data callback with data callback with data request returns ü  High flexibility x  Cannot capture statically
  • 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11 Snippet API API ProviderAPI User request code as data ü  High flexibility ü  Can capture statically
  • 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12 Snippet Lifecycle Bytecodes Prepared IR Graph Specialized IR Graphs Preparation Specialization Instantiation Once Few Times Many Times ... aload_0 getfield ifne 10 aload_1 arraylength ... Frequency: Java Bytecode Parsing Node Intrinsification Exhaustive Method Inlining Constant Folding, Canonicalization Graph Duplication Node Intrinsification Constant Folding, Canonicalization Constant Parameter Replacement Graph Duplication Graph Inlining in Targe Constant Folding, Cano Steps: Targ with ...
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13 Snippet Example: Convert @Snippet static int f2i(float input, int result) { if (probability(SLOW_PATH, result == Integer.MIN_VALUE)) { if (Float.isNaN(input)) { return 0; } else if (input > 0.0f) { return Integer.MAX_VALUE; } } return result; }
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.14 Agenda §  Graal §  Truffle §  Community §  Q&A
  • 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15 Technical Approach Speculate and Optimize… U U U U U I I I G G I I I G G Node Rewriting for Profiling Feedback AST Interpreter Rewritten Nodes AST Interpreter Uninitialized Nodes Compilation using Partial Evaluation Compiled Code Node Transitions S U I D G Uninitialized Integer Generic DoubleString
  • 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16 Technical Approach … and Deoptimize and Reoptimize! I I I G G I I I G G Deoptimization to AST Interpreter D I D G G D I D G G Node Rewriting to Update Profiling Feedback Recompilation using Partial Evaluation
  • 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17 Technical Approach Three main parts for driving partial evaluation § Limit partial evaluation expansion –  Annotation @SlowPath on a method stops the inclusion of a method in the expansion. § Dynamic speculation –  Call to CompilerDirectives.transferToInterpreter() advises the partial evaluator to stop and place a deoptimization exit. § Global speculation –  Assumption objects can be used for global speculations about the system state. Checking the assumption in compiled code poses no runtime overhead.
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18 Peak Performance: JavaScript Speedup relative to V8 1.0 1.5 0.6 0.7 0.9 2.6 0.5 1.4 0.8 1.0 0.7 0.8 1.0 0.7 1.1 1.6 0.6 1.1 1.2 0.9 0.0 0.5 1.0 1.5 2.0 2.5 3.0 richards deltablue crypto raytrace navier-stokes splay earley-boyer box2d gbem u C om posite Truffle SpiderMonkey Selection of benchmarks from Google‘s Octane benchmark suite v1.0 latest versions of V8, Truffle, and SpiderMonkey as of December 2013
  • 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19 Peak Performance: C Speedup relative to GCC O0 1 1 1 1 1 1 2.7 2.0 2.0 1.9 2.6 3.2 2.5 1.7 2.0 1.9 2.7 3.4 2.1 1.8 1.9 1.0 2.8 3.4 0 0.5 1 1.5 2 2.5 3 3.5 4 fannkuch-redux fasta mandelbrot meteor-contest nbody spectralnorm GCC O0 GCC Best Clang Best TruffleC Grimmer, Rigger, Schatz, Stadler, Mössenböck: TruffleC: Dynamic Execution of C on the Java Virtual Machine; to be submitted  
  • 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.20 Agenda §  Graal §  Truffle §  Community §  Q&A
  • 21. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.21 Graal OpenJDK Project Graal Truffle JavaScript HotSpotVM RRuby Java Scala Python Smalltalk C J http://openjdk.java.net/projects/graal/ § Development of Graal/Truffle core artifacts and APIs § Highly active: 30+ contributors over last 12 months § Highly modular: 80+ individual modules
  • 22. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.22 Research Areas Language Implementation General Language Research Compiler Construction Experimentation with new language features, new languages, new execution models Language-independent instrumentation, cross-language research, automatic partial evaluation experiments Core compiler construction research, heterogenuous computing, advanced architectures and backends Truffle Interpreters Truffle Graal
  • 23. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.23 Graal/Truffle Related Research Projects (1) § TruffleRuby –  Development in the JRuby repository (lead Chris Seaton). –  https://github.com/jruby/jruby –  http://blog.jruby.org/2014/01/truffle_graal_high_performance_backend/ § FastR –  Joint effort of a group from Purdue University (Prof. Jan Vitek) and a team at Oracle Labs (lead Michael Haupt). –  https://bitbucket.org/allr/fastr § ZipPy –  Development by a group from University of California, Irvine (Prof. Michael Franz). –  https://bitbucket.org/ssllab/zippy § TruffleSOM –  Development by Stefan Marr at: https://github.com/smarr/
  • 24. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.24 Graal/Truffle Related Research Projects (2) § C and Language Interoperability –  Experiment by students at JKU Linz (Matthias Grimmer and Manuel Rigger). § JavaScript –  Effort done by the core Graal/Truffle team. § Debugging –  Effort by Micheal van de Vanter from Oracle Labs. § SubstrateVM –  Team at Oracle Labs led by Christian Wimmer is developing an alternative host runtime. § Graal IR Instrumentation –  Research by Yudi Zheng (USI Lugano) on instrumenting Graal IR. § GPU Offload –  Research by Christopher Dubach et al. from the University of Edinburgh. –  Graal is the compiler of choice for Project Sumatra (HSAIL/PTX offload).
  • 25. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.25 Your Language or Compiler Extension? http://openjdk.java.net/projects/graal/ graal-dev@openjdk.java.net $ hg clone http://hg.openjdk.java.net/graal/graal $ cd graal $ ./mx --vm server build $ ./mx ideinit $ ./mx --vm server unittest SumTest §  Truffle API License: GPLv2 with Classpath Exception §  Graal License: GPLv2 https://wiki.openjdk.java.net/display/Graal/Main §  Graal Resources
  • 26. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.26 Acknowledgements Oracle Labs Danilo Ansaloni Daniele Bonetta Laurent Daynès Erik Eckstein Michael Haupt Peter Kessler David Leibs Mick Jordan Tom Rodriguez Roland Schatz Chris Seaton Doug Simon Lukas Stadler Michael Van De Vanter Adam Welc Christian Wimmer Christian Wirth Mario Wolczko Thomas Würthinger Laura Hill Interns Miguel Garcia Gutierrez Shams Imam Stephen Kell Gregor Richards Rifat Shariyar JKU Linz Prof. Hanspeter Mössenböck Stefan Anzinger Gilles Duboscq Josef Eisl Matthias Grimmer Christian Häubl Josef Haider Christian Humer Christian Huber David Leopoldseder Manuel Rigger Georg Schmid Bernhard Urban Andreas Wöß University of Edinburgh Christophe Dubach Juan José Fumero Alfonso Ranjeet Singh Toomas Remmelg LaBRI Floréal Morandat University of California, Irvine Prof. Michael Franz Codrut Stancu Gulfem Savrun Yeniceri Wei Zhang Purdue University Prof. Jan Vitek Tomas Kalibera Petr Maj
 Lei Zhao T. U. Dortmund Prof. Peter Marwedel Helena Kotthaus Ingo Korb University of California, Davis Prof. Duncan Temple Lang Nicholas Ulle And many more…
  • 27. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.27 Q/A http://openjdk.java.net/projects/graal/ graal-dev@openjdk.java.net @thomaswue
  • 28. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.28
  • 29. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.29