SlideShare a Scribd company logo
The role of Java™ in
Heterogeneous Computing
…and how you can help!

Nandini Ramani
Vice President, Java Platform
@eyeseewaters
1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The following is intended to outline our general product direction. 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 for Oracle’s products remains at the sole
discretion of Oracle.
©2013 Oracle Corporation

2

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java

3

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
9 Million Java developers worldwide
#1 Choice for developers
#1 Development platform
5 of Top 5 OEMs ship Java ME
3 Billion mobile phones run Java
80% of mobile developers use Java
100% of Blu-Ray players ship with Java
97% of enterprise desktops run Java
89% of desktops in USA run Java
7 Billion Java Cards sold
5 Billion Java Cards in use
115 Million TV devices run Java

4

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Life of Java Program

Hello.java

5

javac

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Hello.class

Hello.jar

Java Virtual
Machine
Oracle Java Platforms Overview
Footprint
100MB+

10MB-100MB

1MB-10MB

50KB-1MB

Java Card
SECURITY

6

Java ME Embedded
SMALL EMBEDDED

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Java SE Embedded

MEDIUM EMBEDDED

LARGE EMBEDDED

Java SE
DESKTOP

SERVER
Rich Tools
Ecosystem

7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Rich Tools Ecosystem
Choice is good
 Java has rich and competitive tools ecosystem
 Ports to many platforms and tool chains

8

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java is Open!

9

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
OpenJDK
In a Nutshell
“The place to collaborate on an open-source implementation of the
Java Platform, Standard Edition, and related projects.”

http://openjdk.java.net

10

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
OpenJDK Virtuous Cycle
Open Community – GPL v2 +
Classpath Exception

Both Gratis and Commercial
offerings (Including Support,
Enterprise tooling, etc, available)
Java 7 RI
Binaries

30+ Projects

Java for IBM
Platforms

Source contributions

Java for SAP
Platforms
Java for Red Hat
Platforms

Companies AND Individuals

11

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Customized VM for
Internal Use

...and many more
64-bit
Porting and optimizing
Oracle JDK for Linux ARM/V8
GA - H1 2015

12

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java and
Heterogeneous
Compute

13

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
“The HSA Foundation goal is to make it
dramatically easier to program
heterogeneous parallel devices.”

14

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
“The HSA Foundation goal is to make it
dramatically easier to program
heterogeneous parallel devices.”

15

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Parallel
Java and Heterogeneous Computing

 Power usage is leading to parallel throughput
 Programmers need to execute a mix of parallel and

sequential tasks
 Java remains the tool of choice as hardware tilts toward
the parallel

16

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
History of Parallelism Support in Java
java.util.concurrent
(jsr166)
Phasers, etc
java.lang.Thread
(jsr166)

1.4
2002
17

5.0
…

2004 …

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Fork/Join Framework
(jsr166y)

7 8

6
2006

Project Lambda

….

2011

…

2014
Parallelism Support in Java 8 – Lambdas
Simplifying the code to write parallel actions
// The OLD way. Simplistic, Brittle, and Serialized
// Find Total Salary of all California Employees
public static int californiaSalary(List<Employee> employees, int salary) {
int sum=0;
for (Employee e : employees) {
if (e.getStateCode() == CALIFORNIA)
sum += e.getSalary();
}
return sum;
}

18

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Parallelism Support in Java 8 – Lambdas
Simplifying the code to write parallel actions
// Total Salary of all California Employees
int sum = employees.parallelStream()
.filter(e -> e.getStateCode() == CALIFORNIA)
.mapToInt(e -> e.getSalary())
.sum();

19

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Parallelism Support in Java 8 – Arrays
Simplifying the code to write parallel actions
// New Parallel Methods added to Array
// In place cumulation
Array.parallelPrefix(anArray, BinaryOperator)
// Sort
Array.parallelSort(anArray);
// In place mutations
Array.parallelSetAll(anArray, UnaryOperator)
// Special Iterator for decomposition in addition to single-element
Array.spliterator(anArray)

20

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
“The HSA Foundation goal is to make it
dramatically easier to program
heterogeneous parallel devices.”

21

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Heterogeneous
Java and Heterogeneous Computing

 Future is power-constrained
 Tradeoff is latency vs. throughput
 Typical system will be a few low latency cores, many high

throughput cores, some special accelerators

22

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
New Challenges –
Array-wise programming concepts
Java and Heterogeneous Computing
Array-wise programming

Exploit the hardware

 Java is a concurrent language with  Java JDK 8 includes parallel

concurrent and parallel
programming support built into the
core

23

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

decomposition and programming
tools out of the box.
New Challenges – “WORA” Becomes Local
Java and Heterogeneous Computing
 Transitioning from write once, run anywhere “WORA” to a world where

one JVM can access multiple ISAs at once

JVM 1

JVM

OS 1

OS 2

OS

ISA 1

ISA 2

ISA 1

ISA 2

Chip 1

Chip 2

Chip 1

Chip 2

Mem 1
24

JVM 2

Mem 2

Mem 1

Mem 2

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
New Challenges – Route Work to Best Resource
Java and Heterogeneous Computing
 Some cores optimized for:
– High Throughput

JVM

– Low latency

OS ?

– Low Power

 Where should work be routed?

25

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ISA 1

ISA 2

Chip 1

Chip 2

Mem 1

– Special Accelerators

Mem 2
New Challenges – Non-Uniform Memory Access
Java and Heterogeneous Computing
 Heterogeneous systems have

JVM

bumpy costs with non-uniform
memory
– JVM can manage memory on

the fly in response to program
dynamics
– Manage memory access and

data flow across ISAs

26

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

OS
ISA 1

ISA 2

Chip 1

Chip 2

Mem 1 Memory Mem 2
How do we meet these and other challenges?
JVM
OS
ISA 1
Chip 1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Chip 2

Mem 1

27

ISA 2

Mem 2
How do we meet these and other challenges?

http://openjdk.java.net/projects/sumatra/

28

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Project Sumatra
Java and Heterogeneous Computing
 OpenJDK Project with leadership from AMD and Oracle
 Goal is to simplify Heterogeneous Compute (via multiple ISAs) for

nine million+ Java developers
 Oracle team includes Labs and SPARC expertise
 HSA Standards are important:
– HSAIL helps with common back end notation
– HSA helps with portability

29

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
30

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Gary Frost
Software Fellow

31

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Sumatra Demo
Java and Heterogeneous Computing
 Histogram of male/female (5150) names
 Found in selected works of ‘Charles Dickens’
 So conceptually we have sequence of nested loops.
for each selected book{
for each name{
for each occurrence of ‘name’ in ‘book’{
name.count++;
}
}
}

32

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Can be done
in parallel !
Sumatra Demo
Java and Heterogeneous Computing
 Here is the actual Java 8 code at the heart of the demo
Arrays.stream(library)
.filter(Book::isSelected)
.forEach(book->
Arrays.stream(names)
.parallel() // <-- Loop over the names in parallel.
.forEach(name ->
// for each occurrence of ‘name’ in ‘book’
//
name.count++;
);
);
33

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Sumatra Demo
Java and Heterogeneous Computing
 Java 8 can efficiently dispatch the enclosed lambda across multiple

cores when the stream is marked as parallel()
Arrays.stream(T[] array)
.parallel()
.forEach(t -> /* lambda */)

 A Sumatra JVM will dispatch to CPU and HSA enabled GPU cores.
– JVM converts (JITS) bytecode to HSAIL and executes via HSA Runtime

34

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
35

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HSA enablement of JAVA
Java 7

Java 8

Beyond Java 8

OpenCL enabled Aparapi

HSA enabled Aparapi

Sumatra

• AMD initiated Open Source project

• Java 8 Lambda based API

• Java API for data parallel algorithms

• HSA and SVM enablement

• Adds Native GPU acceleration to JVM
• Java 8 Lambda/Stream API

• No need to learn OpenCL

• JVM generates HSAIL via JIT

• No explicit buffer transfers

• JVM dispatches to CPU or GPU
depending on workload characteristics.

Java Application

Java JDK Stream + Lambda API

APARAPI
API

APARAPI / Lambda
API

OpenCL™

36

HSAIL

HSA Finalizer &
Runtime

HSA Finalizer &
Runtime
JVM

JVM

JVM
GPU ISA

CPU

JIT

HSAIIL

OpenCL™ Compiler
and Runtime

CPU ISA

Java Application

Java Application

GPU

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

GPU ISA

CPU ISA
CPU

GPU

GPU ISA

CPU ISA
CPU

GPU
How you can help!
Java and Heterogeneous Computing
 Project Sumatra is Open Source
 We can always use help:
– Test builds
– Track progress
– Are you a VM or Compiler super star? We

can always use more help!
http://openjdk.java.net/projects/sumatra/

37

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
38

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
39

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...
HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...
HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...
AMD Developer Central
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
AMD Developer Central
 
Heterogeneous Systems Architecture: The Next Area of Computing Innovation
Heterogeneous Systems Architecture: The Next Area of Computing Innovation Heterogeneous Systems Architecture: The Next Area of Computing Innovation
Heterogeneous Systems Architecture: The Next Area of Computing Innovation
AMD
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
AMD Developer Central
 
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
AMD Developer Central
 
HSA Introduction
HSA IntroductionHSA Introduction
HSA Introduction
Ofer Rosenberg
 
MM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey Pavlenko
MM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey PavlenkoMM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey Pavlenko
MM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey Pavlenko
AMD Developer Central
 
HSA Memory Model Hot Chips 2013
HSA Memory Model Hot Chips 2013HSA Memory Model Hot Chips 2013
HSA Memory Model Hot Chips 2013
HSA Foundation
 
Bolt C++ Standard Template Libary for HSA by Ben Sanders, AMD
Bolt C++ Standard Template Libary for HSA  by Ben Sanders, AMDBolt C++ Standard Template Libary for HSA  by Ben Sanders, AMD
Bolt C++ Standard Template Libary for HSA by Ben Sanders, AMD
HSA Foundation
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
AMD Developer Central
 
CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...
CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...
CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...
AMD Developer Central
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
AMD Developer Central
 
HSA From A Software Perspective
HSA From A Software Perspective HSA From A Software Perspective
HSA From A Software Perspective
HSA Foundation
 
HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...
HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...
HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...
AMD Developer Central
 
Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.
J On The Beach
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
AMD Developer Central
 
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
AMD Developer Central
 
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil HenningPL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
AMD Developer Central
 
HSA Queuing Hot Chips 2013
HSA Queuing Hot Chips 2013 HSA Queuing Hot Chips 2013
HSA Queuing Hot Chips 2013
HSA Foundation
 
Hsa10 whitepaper
Hsa10 whitepaperHsa10 whitepaper
Hsa10 whitepaper
HSA Foundation
 

What's hot (20)

HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...
HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...
HC-4015, An Overview of the HSA System Architecture Requirements, by Paul Bli...
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
 
Heterogeneous Systems Architecture: The Next Area of Computing Innovation
Heterogeneous Systems Architecture: The Next Area of Computing Innovation Heterogeneous Systems Architecture: The Next Area of Computing Innovation
Heterogeneous Systems Architecture: The Next Area of Computing Innovation
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
 
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
 
HSA Introduction
HSA IntroductionHSA Introduction
HSA Introduction
 
MM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey Pavlenko
MM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey PavlenkoMM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey Pavlenko
MM-4097, OpenCV-CL, by Harris Gasparakis, Vadim Pisarevsky and Andrey Pavlenko
 
HSA Memory Model Hot Chips 2013
HSA Memory Model Hot Chips 2013HSA Memory Model Hot Chips 2013
HSA Memory Model Hot Chips 2013
 
Bolt C++ Standard Template Libary for HSA by Ben Sanders, AMD
Bolt C++ Standard Template Libary for HSA  by Ben Sanders, AMDBolt C++ Standard Template Libary for HSA  by Ben Sanders, AMD
Bolt C++ Standard Template Libary for HSA by Ben Sanders, AMD
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
 
CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...
CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...
CC-4000, Characterizing APU Performance in HadoopCL on Heterogeneous Distribu...
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
 
HSA From A Software Perspective
HSA From A Software Perspective HSA From A Software Perspective
HSA From A Software Perspective
 
HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...
HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...
HC-4021, Efficient scheduling of OpenMP and OpenCL™ workloads on Accelerated ...
 
Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
 
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
PT-4053, Advanced OpenCL - Debugging and Profiling Using AMD CodeXL, by Uri S...
 
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil HenningPL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
 
HSA Queuing Hot Chips 2013
HSA Queuing Hot Chips 2013 HSA Queuing Hot Chips 2013
HSA Queuing Hot Chips 2013
 
Hsa10 whitepaper
Hsa10 whitepaperHsa10 whitepaper
Hsa10 whitepaper
 

Similar to Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How You Can Help - by Nandini Ramani, VP, Java Platform, Oracle Corporation

Java 8
Java 8Java 8
Java 8
jclingan
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
jclingan
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
Thomas Wuerthinger
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
glassfish
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěJaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Develcz
 
What's new for JavaFX in JDK8 - Weaver
What's new for JavaFX in JDK8 - WeaverWhat's new for JavaFX in JDK8 - Weaver
What's new for JavaFX in JDK8 - Weaver
Codemotion
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
Shaun Smith
 
Functional Programming With Lambdas and Streams in JDK8
 Functional Programming With Lambdas and Streams in JDK8 Functional Programming With Lambdas and Streams in JDK8
Functional Programming With Lambdas and Streams in JDK8
IndicThreads
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Marco Antonio Maciel
 
Java SE 8
Java SE 8Java SE 8
Java SE 8
Simon Ritter
 
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon RitterLambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
JAXLondon2014
 
Lambdas And Streams in JDK8
Lambdas And Streams in JDK8Lambdas And Streams in JDK8
Lambdas And Streams in JDK8
Simon Ritter
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
Wolfgang Weigend
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
JAXLondon2014
 
Functional programming with_jdk8-s_ritter
Functional programming with_jdk8-s_ritterFunctional programming with_jdk8-s_ritter
Functional programming with_jdk8-s_ritter
Simon Ritter
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
Sandeep Rawat
 
Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018
CodeOps Technologies LLP
 

Similar to Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How You Can Help - by Nandini Ramani, VP, Java Platform, Oracle Corporation (20)

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
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěJaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
 
What's new for JavaFX in JDK8 - Weaver
What's new for JavaFX in JDK8 - WeaverWhat's new for JavaFX in JDK8 - Weaver
What's new for JavaFX in JDK8 - Weaver
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Functional Programming With Lambdas and Streams in JDK8
 Functional Programming With Lambdas and Streams in JDK8 Functional Programming With Lambdas and Streams in JDK8
Functional Programming With Lambdas and Streams in JDK8
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
 
Java SE 8
Java SE 8Java SE 8
Java SE 8
 
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon RitterLambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
 
Lambdas And Streams in JDK8
Lambdas And Streams in JDK8Lambdas And Streams in JDK8
Lambdas And Streams in JDK8
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
 
Functional programming with_jdk8-s_ritter
Functional programming with_jdk8-s_ritterFunctional programming with_jdk8-s_ritter
Functional programming with_jdk8-s_ritter
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018
 

More from AMD Developer Central

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
AMD Developer Central
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
AMD Developer Central
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
AMD Developer Central
 
Media SDK Webinar 2014
Media SDK Webinar 2014Media SDK Webinar 2014
Media SDK Webinar 2014
AMD Developer Central
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
AMD Developer Central
 
DirectGMA on AMD’S FirePro™ GPUS
DirectGMA on AMD’S  FirePro™ GPUSDirectGMA on AMD’S  FirePro™ GPUS
DirectGMA on AMD’S FirePro™ GPUS
AMD Developer Central
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
AMD Developer Central
 
Inside XBox- One, by Martin Fuller
Inside XBox- One, by Martin FullerInside XBox- One, by Martin Fuller
Inside XBox- One, by Martin Fuller
AMD Developer Central
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas Thibieroz
AMD Developer Central
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellAMD Developer Central
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
AMD Developer Central
 
Inside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin FullerInside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin Fuller
AMD Developer Central
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
AMD Developer Central
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan Nevraev
AMD Developer Central
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
AMD Developer Central
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
AMD Developer Central
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
AMD Developer Central
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
AMD Developer Central
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
AMD Developer Central
 

More from AMD Developer Central (20)

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Media SDK Webinar 2014
Media SDK Webinar 2014Media SDK Webinar 2014
Media SDK Webinar 2014
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
DirectGMA on AMD’S FirePro™ GPUS
DirectGMA on AMD’S  FirePro™ GPUSDirectGMA on AMD’S  FirePro™ GPUS
DirectGMA on AMD’S FirePro™ GPUS
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
 
Inside XBox- One, by Martin Fuller
Inside XBox- One, by Martin FullerInside XBox- One, by Martin Fuller
Inside XBox- One, by Martin Fuller
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas Thibieroz
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Gcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodesGcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodes
 
Inside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin FullerInside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin Fuller
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan Nevraev
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
 

Recently uploaded

Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How You Can Help - by Nandini Ramani, VP, Java Platform, Oracle Corporation

  • 1. The role of Java™ in Heterogeneous Computing …and how you can help! Nandini Ramani Vice President, Java Platform @eyeseewaters 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. The following is intended to outline our general product direction. 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 for Oracle’s products remains at the sole discretion of Oracle. ©2013 Oracle Corporation 2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 3. Java 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 4. 9 Million Java developers worldwide #1 Choice for developers #1 Development platform 5 of Top 5 OEMs ship Java ME 3 Billion mobile phones run Java 80% of mobile developers use Java 100% of Blu-Ray players ship with Java 97% of enterprise desktops run Java 89% of desktops in USA run Java 7 Billion Java Cards sold 5 Billion Java Cards in use 115 Million TV devices run Java 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. Life of Java Program Hello.java 5 javac Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Hello.class Hello.jar Java Virtual Machine
  • 6. Oracle Java Platforms Overview Footprint 100MB+ 10MB-100MB 1MB-10MB 50KB-1MB Java Card SECURITY 6 Java ME Embedded SMALL EMBEDDED Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Java SE Embedded MEDIUM EMBEDDED LARGE EMBEDDED Java SE DESKTOP SERVER
  • 7. Rich Tools Ecosystem 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 8. Rich Tools Ecosystem Choice is good  Java has rich and competitive tools ecosystem  Ports to many platforms and tool chains 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 9. Java is Open! 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. OpenJDK In a Nutshell “The place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects.” http://openjdk.java.net 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 11. OpenJDK Virtuous Cycle Open Community – GPL v2 + Classpath Exception Both Gratis and Commercial offerings (Including Support, Enterprise tooling, etc, available) Java 7 RI Binaries 30+ Projects Java for IBM Platforms Source contributions Java for SAP Platforms Java for Red Hat Platforms Companies AND Individuals 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Customized VM for Internal Use ...and many more
  • 12. 64-bit Porting and optimizing Oracle JDK for Linux ARM/V8 GA - H1 2015 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. Java and Heterogeneous Compute 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. “The HSA Foundation goal is to make it dramatically easier to program heterogeneous parallel devices.” 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 15. “The HSA Foundation goal is to make it dramatically easier to program heterogeneous parallel devices.” 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. Parallel Java and Heterogeneous Computing  Power usage is leading to parallel throughput  Programmers need to execute a mix of parallel and sequential tasks  Java remains the tool of choice as hardware tilts toward the parallel 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. History of Parallelism Support in Java java.util.concurrent (jsr166) Phasers, etc java.lang.Thread (jsr166) 1.4 2002 17 5.0 … 2004 … Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Fork/Join Framework (jsr166y) 7 8 6 2006 Project Lambda …. 2011 … 2014
  • 18. Parallelism Support in Java 8 – Lambdas Simplifying the code to write parallel actions // The OLD way. Simplistic, Brittle, and Serialized // Find Total Salary of all California Employees public static int californiaSalary(List<Employee> employees, int salary) { int sum=0; for (Employee e : employees) { if (e.getStateCode() == CALIFORNIA) sum += e.getSalary(); } return sum; } 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. Parallelism Support in Java 8 – Lambdas Simplifying the code to write parallel actions // Total Salary of all California Employees int sum = employees.parallelStream() .filter(e -> e.getStateCode() == CALIFORNIA) .mapToInt(e -> e.getSalary()) .sum(); 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. Parallelism Support in Java 8 – Arrays Simplifying the code to write parallel actions // New Parallel Methods added to Array // In place cumulation Array.parallelPrefix(anArray, BinaryOperator) // Sort Array.parallelSort(anArray); // In place mutations Array.parallelSetAll(anArray, UnaryOperator) // Special Iterator for decomposition in addition to single-element Array.spliterator(anArray) 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 21. “The HSA Foundation goal is to make it dramatically easier to program heterogeneous parallel devices.” 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 22. Heterogeneous Java and Heterogeneous Computing  Future is power-constrained  Tradeoff is latency vs. throughput  Typical system will be a few low latency cores, many high throughput cores, some special accelerators 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 23. New Challenges – Array-wise programming concepts Java and Heterogeneous Computing Array-wise programming Exploit the hardware  Java is a concurrent language with  Java JDK 8 includes parallel concurrent and parallel programming support built into the core 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. decomposition and programming tools out of the box.
  • 24. New Challenges – “WORA” Becomes Local Java and Heterogeneous Computing  Transitioning from write once, run anywhere “WORA” to a world where one JVM can access multiple ISAs at once JVM 1 JVM OS 1 OS 2 OS ISA 1 ISA 2 ISA 1 ISA 2 Chip 1 Chip 2 Chip 1 Chip 2 Mem 1 24 JVM 2 Mem 2 Mem 1 Mem 2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. New Challenges – Route Work to Best Resource Java and Heterogeneous Computing  Some cores optimized for: – High Throughput JVM – Low latency OS ? – Low Power  Where should work be routed? 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. ISA 1 ISA 2 Chip 1 Chip 2 Mem 1 – Special Accelerators Mem 2
  • 26. New Challenges – Non-Uniform Memory Access Java and Heterogeneous Computing  Heterogeneous systems have JVM bumpy costs with non-uniform memory – JVM can manage memory on the fly in response to program dynamics – Manage memory access and data flow across ISAs 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. OS ISA 1 ISA 2 Chip 1 Chip 2 Mem 1 Memory Mem 2
  • 27. How do we meet these and other challenges? JVM OS ISA 1 Chip 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Chip 2 Mem 1 27 ISA 2 Mem 2
  • 28. How do we meet these and other challenges? http://openjdk.java.net/projects/sumatra/ 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 29. Project Sumatra Java and Heterogeneous Computing  OpenJDK Project with leadership from AMD and Oracle  Goal is to simplify Heterogeneous Compute (via multiple ISAs) for nine million+ Java developers  Oracle team includes Labs and SPARC expertise  HSA Standards are important: – HSAIL helps with common back end notation – HSA helps with portability 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. Gary Frost Software Fellow 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. Sumatra Demo Java and Heterogeneous Computing  Histogram of male/female (5150) names  Found in selected works of ‘Charles Dickens’  So conceptually we have sequence of nested loops. for each selected book{ for each name{ for each occurrence of ‘name’ in ‘book’{ name.count++; } } } 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Can be done in parallel !
  • 33. Sumatra Demo Java and Heterogeneous Computing  Here is the actual Java 8 code at the heart of the demo Arrays.stream(library) .filter(Book::isSelected) .forEach(book-> Arrays.stream(names) .parallel() // <-- Loop over the names in parallel. .forEach(name -> // for each occurrence of ‘name’ in ‘book’ // name.count++; ); ); 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 34. Sumatra Demo Java and Heterogeneous Computing  Java 8 can efficiently dispatch the enclosed lambda across multiple cores when the stream is marked as parallel() Arrays.stream(T[] array) .parallel() .forEach(t -> /* lambda */)  A Sumatra JVM will dispatch to CPU and HSA enabled GPU cores. – JVM converts (JITS) bytecode to HSAIL and executes via HSA Runtime 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 35. 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. HSA enablement of JAVA Java 7 Java 8 Beyond Java 8 OpenCL enabled Aparapi HSA enabled Aparapi Sumatra • AMD initiated Open Source project • Java 8 Lambda based API • Java API for data parallel algorithms • HSA and SVM enablement • Adds Native GPU acceleration to JVM • Java 8 Lambda/Stream API • No need to learn OpenCL • JVM generates HSAIL via JIT • No explicit buffer transfers • JVM dispatches to CPU or GPU depending on workload characteristics. Java Application Java JDK Stream + Lambda API APARAPI API APARAPI / Lambda API OpenCL™ 36 HSAIL HSA Finalizer & Runtime HSA Finalizer & Runtime JVM JVM JVM GPU ISA CPU JIT HSAIIL OpenCL™ Compiler and Runtime CPU ISA Java Application Java Application GPU Copyright © 2013, Oracle and/or its affiliates. All rights reserved. GPU ISA CPU ISA CPU GPU GPU ISA CPU ISA CPU GPU
  • 37. How you can help! Java and Heterogeneous Computing  Project Sumatra is Open Source  We can always use help: – Test builds – Track progress – Are you a VM or Compiler super star? We can always use more help! http://openjdk.java.net/projects/sumatra/ 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.