SlideShare una empresa de Scribd logo
1 de 136
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Java in the 21 Century: Are
you thinking far enough
ahead?
June 2018
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
About me
Steve Poole
IBM Lead Engineer / Developer advocate
Making Java Real Since Version 0.9
Open Source Advocate
DevOps Practitioner (whatever that means!)
Driving Change
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
This talk may seem to be about possible futures
for Java and the JVM
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
This talk is actually about why we have to think differently
about solving the problems of the future
Cloud Data Machine And
Analytics Learning Beyond
?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
So really this talk is about your future.
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Whatchya thinking
about now?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Thinking Positively about Java?
Still learning about features in Java 8?
Looking at Java 10 or going to Java 11?
Trying to understand the new feature release process?
What does “LTS” mean for Java?
Exploring “Java Platform Module System”?
Trying out Jshell?
Figuring out jlink?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167It’s easy to focus on now – it’s real and concrete
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
What about a wider view?
What does it mean for EE now Oracle have donated it to Eclipse?
Why have IBM open sourced their JVM and Application Servers?
What should you be doing with MicroProfile?
Is Spring the right answer?
Should I be learning other programming languages?
Where does Java fit?
Should I use Java at all?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167Let’s think about what drives us
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Economics
Faster, cheaper, easier, better …
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
For many years Java innovation focused on
performance
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Maximize the
opportunities
offered by
Moore’s Law
Forever… https://commons.wikimedia.org/wiki/File:Moores_law_(1970-2011).PNG
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
We built a walled garden and made it the best
place to run enterprise applications of a certain
kind
https://www.flickr.com/photos/40139809@N00/
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Vendor competition and collaboration delivered
• The fastest runtime environments
• The most scalable runtime environments
• The best garbage collectors
• The greatest dynamically re-optimizing compilers
The best environment for long running Java only applications
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
But the fact is that Java’s innovation is mostly
driven by factors outside our control
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Moore’s Law
stalled.
https://commons.wikimedia.org/wiki/File:Moores_law_(1970-2011).PNG
Now it’s about
multi-core
processors
And multi-processor
machines
And don’t forget VMs can scale from the very
smallest to the very largest devices
Tiny
winy
Ginormous
humongous
From the smallest
On the
smart card
Next to the processor (separate IC)
In the processor
@spoole167
Java Card JVM
• Becoming a major IOT edge device type
• Has security physically built in
• Low Power
• Small cost
Writing code in Java
means less chance of
code problems.
no hand crafting
assembler for small
devices
Want to debug a Java
Card in the field?
Want to patch 6
million cards?
Java offers a superior
developer experience
To the very biggest
Slido.io #K100
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
And then we finally achieved
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
And then we finally achieved
Compute on Tap
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Aka “Cloud”
Faster, cheaper, easier, better …
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Economics rules
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
New rules of the game.
Compute == money
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
New rules of the game.
Compute == money
$ == GB/hr
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
New rules of the game.
Compute == money
$ == GB/hr
-Xmx: $100
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Cloud isn’t going away: in fact its coming to you
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Cloud is coming to a data center near you
https://github.com/IBM/deploy-ibm-cloud-private
git clone
vagrant up
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
New economics requires Java to break out of the
walled garden.
And since we don’t know all the answers – we
need to be able to experiment and innovate faster
https://www.flickr.com/photos/40139809@N00/
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
We need to go from Very long running, efficient,
monolithic applications
Willing to trade startup time for
throughput
in it for the long haul
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Short lived, container based, micro
service oriented, instant-on, always
available, cross server, polyglot
services
Now we also need
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0 1 2 3 4 5 6 7 8 9 101112131415161718
Throughput
Throughput
0
0.5
1
1.5
0 1 2 3 4 5 6
Throughput
Throughput
0
0.5
1
1.5
0 1 2 3 4 5 6
Throughput
Throughput
0
0.5
1
1.5
0 1 2 3 4 5 6
Throughput
Throughput
0
0.5
1
1.5
0 1 2 3 4 5 6
Throughput
Throughput
We need all of these models
Time
demand
Traditional profile
@spoole167
Demand
time
@spoole167
Demand
time
How does your application respond to demand?
@spoole167
Demand
time
One big server running all the time?
@spoole167
Demand
time
One big server running all the time?Look at all that wasted money!
@spoole167
Demand
Smaller compute units are better
@spoole167
Demand
time
Smaller compute units are better
@spoole167
Time
Throughput
Traditional profile
@spoole167
Time
Throughput
Lag Over-Peek usage
Doesn’t fit new model
Costs $ Costs
more $
@spoole167
Time
Throughput
More like this please
@spoole167
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
And we need it ..
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Is to innovate faster – or loose to the competition
The immediate challenge for Java and the JVM
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
predictable
consistent cadence
easier migration increased innovation
Now you can see why our ecosystem is
repositioning for a faster pace
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Every development
team has both
common and unique
problems to solve.
Open source is key
to fast innovation
and adoption
OpenJDK
Eclipse OpenJ9
Open Liberty
Eclipse MicroProfile
Java EE
IBM Cloud
Docker
Kubernetes
Allowing everyone to participate
(and offering multiple starting points)
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
lambda
streams
modules
reactive streams
panama
valhalla
penrose
amber
Giving Java innovation a faster cadence
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Tomcat
Glassfish
Open Liberty
…
OpenJDK + Hotspot
OpenJDK + OpenJ9
J2EE
Micro-profile
And a variety of implementations to
choose from
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Container
awareness
Fast native code
interop
Re-optimised JITs
Re-tuned GC’s
AOT
Value Objects
Generating New JVM
technologies
Jit As A Service
<your idea here>
Time
Throughput
More like this please
@spoole167
Time
Real data
OpenJDK 9
with Hotspot
@spoole167
Time
Real data
OpenJDK 9
with Hotspot
OpenJDK 9
with OpenJ9
@spoole167
Time
Real data
OpenJDK 9
with Hotspot
OpenJDK 9
with OpenJ9
OpenJDK 9
with OpenJ9
+ AOT
@spoole167
https://adoptopenjdk.net/?variant=openjdk8-openj9@spoole167 Slido.io #K100
Don’t just
take my word
for it
@spoole167
adoptopenjdk.net
IBM donated J9 to Eclipse
because we believe it’s the best
way to move Java forward
• It offers a new place to start
• As the future emerges we can see
that Java needs to handle new
technologies, new hardware.
• Java must adapt or die
• We can’t do it on our own. We have
to do it together
@spoole167
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Cloud. So we know what to do.
We know why we need to do it
Cloud makes you think differently
but mostly about footprint, resilience
and scaling
Modularity, Lambdas
J2EE going to Eclipse
That’s not really a big change. …
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
The future starts here…
?
Data Analytics Machine Learning
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
But it’s still driven by economics
$
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
The new problems we face are not ones humans can easily
internalize, visualize or even compute
These drivers are changing the face of computing as we
know it. And it’s barely started
• The reality of data analytics
• The promise of AI
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
The common challenges
Effective optimization
Visualisation of complex patterns
Extracting meaning from enormous amounts of data.
All things human beings are poor at doing
And so are current computer architectures
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Machine Learning etc
• Helps us find reasonable answers to questions.
• No guarantees on it being the best answer.
Organize a group of people at a table.
So that you get the ‘best’ conversation
You decide what
‘best’ means
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Two or three people - easy
What about 10? - how many combinations to consider?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Two or three people - easy
What about 10? - how many combinations to consider?
Going to need
some help here3628800
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Two or three people - easy
What about 150?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
571338395644585459047893286526105400318
955357860112641825483758331798291248453
983931265744886753111453771078787468542
041626662501986845044663559491959220665
749425920957357789293253572904449624724
054167907221184454371222696755200000000
00000000000000000000000000000
Going to need a lot of help
here
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
It’s this level of scale , complexity and uncertainly
we now have to deal with…
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Imagine creating systems that can
Tailor responses to the personalities of your
customers without meeting a single one of them.
improve themselves
over time, learning
from and adapting to
the world around
them.
identify their own inefficiencies-and address them
automatically-in real time.
Uncover patterns, resources, trends and other
competitive advantages invisible to competitors and
their information systems.
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Machine Learning works because (mostly)
humans design and teach it
A ML solution can be a significant investment.
It it also a significant business opportunity
That has implications…
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
1 Lots of “BlackBox” services and APIs that allow the owner to
keep their “secret source” secret
2 Investment in the solution is sticky - it’s hard to create so
moving to a new runtime is less likely
3 Developers will spend more time consuming services into
their own applications and less on bespoke solutions
4 Developers will be creating new forms of applications around
data analytics and machine learning
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Which means
1 JVMs need to be able to offer good machine learning and data
analysis capabilities
2 Java Developers will spend more time in transforming data and
thinking about problems in data terms
3 All Developers will be learning new technologies and tools
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Lets try to make this more real (time for some
code)
c c e n t u r y b j
m k h l y t n e w t
t c i g a f n n o y
f d h t u s i a o v
i a w a h o h r v e
d i r n v e n y s i
g a p t u a o e x t
q f e a m o j k b o
y i c h r b y p n a
t t n v a e i z h i
Java
In
The
Twenty
First
Century
Are
you
thinking
far
enough
ahead
IBM
Find
which
one of
these
words is
missing
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
How do you solve this problem?
For each String in the list.
Visit each element in the grid
Check if the string matches in any of the eight directions.
Record if found
Report which of the strings was not found
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
Java
In
The
Twenty
First
Century
Are
you
thinking
far
enough
ahead
IBM
for(y=0;y<side && dir==null;y++) {
for(x=0;x<side && dir==null;x++) {
char c=p.charAt(x, y);
if(c==w.charAt(0)) {
int l=0,dy=y,dx=x;
while(l<w.length() && dy>0 && p.charAt(x,dy)==w.charAt(l)) { l++;dy--; }
if(l==w.length()) { dir="N";break;}
l=0;dx=x;
while(l<w.length() && dx<side && p.charAt(dx,y)==w.charAt(l)) { l++;dx++; }
if(l==w.length()) { dir="E";break;}
l=0;dx=x;dy=y;
while(l<w.length() && dy<side && p.charAt(x,dy)==w.charAt(l)) { l++;dy++; }
if(l==w.length()) { dir="S";break;}
l=0;dx=x;
while(l<w.length() && dx>0 && p.charAt(dx,y)==w.charAt(l)) { l++;dx--; }
if(l==w.length()) { dir="W";break;}
l=0;dx=x;dy=y;
while(l<w.length() && dy<side && dx<side && p.charAt(dx,dy)==w.charAt(l)) {
l++; dy++;dx++; }
if(l==w.length()) { dir="SE";break;}
l=0;dx=x;dy=y;
while(l<w.length() && dy<side && dx>0 && p.charAt(dx,dy)==w.charAt(l)) {
l++;dy++;dx--; }
if(l==w.length()) { dir="SW";break;}
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Certainly inefficient use of a CPU
0
10
20
30
40
50
60
70
80
90
100
Java
CPU %
CPU1 CPU2 CPU3 CPU4
BRUTE FORCE?
IntStream is=IntStream.range(0, side*side);
is.parallel().forEach( i -> {
int x=i % side;
int y=i / side;
<do horrible code checking here..
});
}
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Good use of a CPU
What about that code?
0
10
20
30
40
50
60
70
80
90
100
Java
CPU %
CPU1 CPU2 CPU3 CPU4
while( l<w.length() && dy>0
&&
p.charAt(x,dy)==w.charAt(l)) {
l++;dy--; }
BETTER?
c c e n t u r y b j
m k h l y t n e w t
t c i g a f n n o y
f d h t u s i a o v
i a w a h o h r v e
d i r n v e n y s i
g a p t u a o e x t
q f e a m o j k b o
y i c h r b y p n a
t t n v a e i z h i
When searching for
“java” we have to
make sure we don’t
run off the edge
while( l<w.length()
&& dy>0 &&
p.charAt(x,dy)==w.
charAt(l)) { l++;dy--
; }
c c e n t u r y b j
m k h l y t n e w t
t c i g a f n n o y
f d h t u s i a o v
i a w a h o h r v e
d i r n v e n y s i
g a p t u a o e x t
q f e a m o j k b o
y i c h r b y p n a
t t n v a e i z h i
Changing the data
reduces our code
Adding a empty
boarder the width
of the largest word
Means we’ll never run
off the end of the array
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
We can do better. private static int[][] offsets= {
{ 0 , -1 } , // N
{ 1 , -1 } , // NE
{ 1 , 0 } , // E
{ 1 , 1 } , // SE
{ 0 , 1 } , // S
{ -1 , 1 } , // SW
{ -1 , 0 } , // W
{ -1 , -1 } // NW
};
Turning the direction
problem into a data
driven one
+1-1
-1
+1
IntStream is=IntStream.range(0, (side+buffer)*(side+buffer)*8);
is.parallel().forEach( i -> {
int offsets[]=directions[i % 8];
int r = i / 8;
int x = i % r;
int y = i / r;
// loop through word matching each character
for(int i=0;i<word.length;i++) {
. . .
// move to next char in required direction by simply:
x+= offsets[0];
y+= offsets[1];
}
...
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
o n c i o s u c d q d v p l a a n u s t c z p a a s h x o o g t r g g f l w v d n s j z o e p e e x
i e h f q u o q p r d m r u r w e p a x a a g k m e z t u u k u h r f w f w b z j n w y r s v t m o
w g j k r g u q h x l i j f f n l y f z r z t r p x a h c n h a s c v r y m w m a d o g g z u y g k
c c v s k l m m v t p v e b z c g b i m c r z o b i r s z o s g y e l f l k q v t v r v w d v i i v
w s g x b w u l y p q e r a t e l t e j u o f a k m i q x z p h b h h l h a j k d u n j y b z z e g
o u n a l o s r m b k f j h z f m e l a u j k w o m o g i v s v c l c i u r o s j b e r o z m z l q
r x y t a k q h u t a y v m b a v z s c a k e v m t c v e b s h c b t i j k t m n c o x o c w z n y
s d a y f h n q g b i o z w s j n o j a o o n y q d b l s q f r x n h g z j u v s w q e f q t e d g
f y u i q v k o q c t o h e t o d w q n f f m o s c t v h r e n o y o g f h j w u v w u n u b a s k
z u y u f r h z h g p j g r i q m l k p e j z g h k w r g k v k k w n w x g v p l g e v c o c e j z
v n f m l b k o m q g t y z d n t s e r i i e b n w w b l q x v s i l q a e p e h r j l r e n z m l
m o n w q j s f r g k s e s k o i j d z k y p t s u d p c f e t p f g t t l s h d x f r z p c c n v
o e u a m w u b i z t b k i b o p l s u e p j z w t j x f s s v r b h j c v h m k d k j t l o z b m
x y i m m j l d c k z f k v b q r c l t q e y n e o x f z m w b d w r b g h r j b u f u g z a m c n
l j l b q q o n h n a f k h s r w p l h i m d l u s i s u l t i o g h v q u k n m h z u z u v l d u
q x y m n u m o o j o u i k i d k l w h z v t o g p u d h s n f u i m j q x m x s y g l k k p p l x
j s s e p a r y t o e x t i d b u s l n l y y t i p g d q p z e d z s j k i p a y i n x i l s y y v
y f d o h n j m n l p g m p a n q p b s u l y d a e j m x q b a f a t f q p r z t t w q n s o f e q
g k d s b j a j g v m r n j w k n c v i r i j t z a r a q r e c l t i q r v r t o a t e u t w s h w
d c x r g m r h k c n y r t t s a i t i y c n s b l f s v n v q z u f c b c g o t b w m k f e p x q
q m y x e x p p c r b v z n y b e p l h n k w i z m u h g a f m s u q m b f n j p s y r n g r r u r
v m s a a f e e p c e m k i k t n c c a i x q e z p i k c c i c h b c k l o m z y e j y x u a y u s
j q k z t o a j g z s q h p w i g f k k o n z m a g k y q u k w h e t a t y v h d q h p q u t m p s
r w x t l f g l k t h b k t j d d u x u w c k u o w j l y d l f i j h k v x x n t g g w r y n g n k
k e m g h v w v j p i p j e h g u u t p a x g i a e l m o h r h a u b d x s a t m y v l e v l n m f
j y c n d w g y i z e t o b e e b x c b z e i g n p q u i u f j r h p z o b b d k f c a r t k y q k
o k g k l l f b g b i z x j n n q h k k l w c q s g m o x y q f r m e f n w j f q h p p c z l y b k
f w p e e i d c m w m r k f a q o f k a i b y a l s j u z m s j z v c q x g m p k m j a o k k n l g
q o y r o p s w z z o v d x u k b u m y l e n x q k k l j r s f f n i k v i c s r e x j q c j a t c
c v l k l h r h k c d p l l j e b w g k t y m z d z k x n j p a q e i k f x x y l z m q h a h h y t
w l t r v c e i y w f f h j j l d w r h h e r f g j h z n b x m c l c i d l j o r b m g n j p c v b
y m d p i p i b z r c z p k p b l o q p f w p n e o d n l g v i h a p t h t f i i z f r u h v q d x
q u l e n a s k q a u a h f e n i v o i i s e k h r y n i u q g y z l o x i h j u p h a r o l s o l
Best?
This is ok when you have a “small” amount of data.
What happens when the word grid is big:
Billions of characters?
Millions of words to find?
Multidimensional?
Or the word is very long (making the buffer too expensive)?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
a e k j c b a o a j
e j a x l o n d
o
d
n
v n a v a a j v i o
i c
m
e
i e t u p a a
t d a t a j a j k l
i t w i q a y a m h
n u e n x v d v g a
g o d g t f f a u i
o a s o g a g t v c
c i a c h j a i b m
PARTITIONING: Executor
node
Executor
node
Executor
node
Executor
nodeHow do you deal with words
split across the boundaries?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
a e k j c b a o a j
e j a x l o n d
o
d
n
v n a v a a j v i o
i c
m
e
i e t u p a a
t d a t a j a j k l
i t w i q a y a m h
n u e n x v d v g a
g o d g t f f a u i
o a s o g a g t v c
c i a c h j a i b m
PARTITIONING: Executor
node
Executor
node
Executor
node
Executor
node
Hint: split words into small 3x3
tiles. Find tiles (map) join
together (reduce)
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
a e k j c b a o a j
e j a x l o n d
o
d
n
v n a v a a j v i o
i c
m
e
i e t u p a a
t d a t a j a j k l
i t w i q a y a m h
n u e n x v d v g a
g o d g t f f a u i
o a s o g a g t v c
c i a c h j a i b m
PARTITIONING: Executor
node
Executor
node
Executor
node
Executor
node
CPU
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
a e k j c b a o a j
e j a x l o n d
o
d
n
v n a v a a j v i o
i c
m
e
i e t u p a a
t d a t a j a j k l
i t w i q a y a m h
n u e n x v d v g a
g o d g t f f a u i
o a s o g a g t v c
c i a c h j a i b m
PARTITIONING: Executor
node
Executor
node
Executor
node
Executor
node
CPU
GPU
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
a e k j c b a o a j
e j a x l o n d
o
d
n
v n a v a a j v i o
i c
m
e
i e t u p a a
t d a t a j a j k l
i t w i q a y a m h
n u e n x v d v g a
g o d g t f f a u i
o a s o g a g t v c
c i a c h j a i b m
PARTITIONING: Executor
node
Executor
node
Executor
node
Executor
node
CPU
GPU
FPGA
ASIC
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
GPU’s don’t work like CPU’s
They want their data in different forms
They behave differently
You’ll have to think differently too
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
publicclassCardTrick{
enumSuit{ hearts,clubs,diamonds,spades}
enumValue{ ace,two,three,four,five,six,seven,eight,nine,ten,jack,queen,king}
publicint score(Suits , Value v) {
int points=100;
if(s==Suit.hearts|| s==Suit.diamonds){
switch(v){
casefive : points=100;break;
casesix: points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s){
casehearts: points*=10;break;
caseclubs: points*=20;break;
casediamonds: points*=50;break;
casespades:points*=5;break;
}
returnpoints;
} }
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
publicclassCardTrick{
enumSuit{ hearts,clubs,diamonds,spades}
enumValue{ ace,two,three,four,five,six,seven,eight,nine,ten,jack,queen,king}
publicint score(Suits , Value v) {
int points=100;
if(s==Suit.hearts|| s==Suit.diamonds){
switch(v){
casefive : points=50;break;
casesix: points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s){
casehearts: points*=10;break;
caseclubs: points*=20;break;
casediamonds: points*=10;break;
casespades:points*=5;break;
}
returnpoints;
} }
1H 5D QS
1000 500 5000
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
intpoints=100;
if(s==Suit.hearts||s==Suit.diamonds){
switch(v) {
casefive: points=50;break;
casesix: points=250;break;
casejack: points=400;break;
casequeen : points=1000;break;
}
}
switch(s) {
casehearts: points*=10;break;
caseclubs:points*=20;break;
casediamonds:points*=10;break;
casespades:points*=5;break;
}
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
intpoints=100;
if(s==Suit.hearts || s==Suit.diamonds) {
switch(v) {
casefive: points=50;break;
casesix : points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s) {
casehearts :points*=10;break;
caseclubs :points*=20;break;
casediamonds :points*=10;break;
casespades :points*=5;break;
}
intpoints=100;
if(s==Suit.hearts || s==Suit.diamonds) {
switch(v) {
casefive: points=50;break;
casesix : points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s) {
casehearts :points*=10;break;
caseclubs :points*=20;break;
casediamonds :points*=10;break;
casespades :points*=5;break;
}
intpoints=100;
if(s==Suit.hearts || s==Suit.diamonds) {
switch(v) {
casefive: points=50;break;
casesix : points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s) {
casehearts :points*=10;break;
caseclubs :points*=20;break;
casediamonds :points*=10;break;
casespades :points*=5;break;
}
In standard CPU architectures – every thread has its
own program counter. You have to synchronize
threads to get them to work together
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
intpoints=100;
if(s==Suit.hearts || s==Suit.diamonds) {
switch(v) {
casefive: points=50;break;
casesix : points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s) {
casehearts :points*=10;break;
caseclubs :points*=20;break;
casediamonds :points*=10;break;
casespades :points*=5;break;
}
intpoints=100;
if(s==Suit.hearts || s==Suit.diamonds) {
switch(v) {
casefive: points=50;break;
casesix : points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s) {
casehearts :points*=10;break;
caseclubs :points*=20;break;
casediamonds :points*=10;break;
casespades :points*=5;break;
}
intpoints=100;
if(s==Suit.hearts || s==Suit.diamonds) {
switch(v) {
casefive: points=50;break;
casesix : points=250;break;
casejack: points=400;break;
casequeen: points=1000;break;
}
}
switch(s) {
casehearts :points*=10;break;
caseclubs :points*=20;break;
casediamonds :points*=10;break;
casespades :points*=5;break;
}
With GPU’s there is only one program counter.
Threads are implicitly synchronized – they are all in
lock step…
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
publicclassGPUCardTrick{
intpoint_table[][]=newint[][]{… }
enum Suit{hearts,clubs,diamonds,spades}
enum Value{ace,two,three,four,five,six,seven,eight,nine,ten,jack,queen,king}
publicintscore(Suit s, Valuev) {
returnpoint_table[s.ordinal()][v.ordinal()];
}
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Using a GPU without understanding how they
work is like driving your car in reverse all the time
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
IBM + NVIDIA
Improving Java application
performance with GPU
exploitation is available in IBM
SDK for Java 8 and OpenJDK 9
with Eclipse Open9
Standard SE API optimisation as
well as CUDA4J API for explicit
low level control
+
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Here’s where everything changes.
• Up to now the JVM has done all the heavy lifting in transforming your
model of an application into the real thing.
Your model Multiple real applications
JVM
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
From now on – you and your application will have
to change as well
GPUs require you to think differently.
So will AI and Machine Learning..
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
BTW – what does a server GPU look like?
NVIDIA’s largest graphics card is the DGX-2. It’s 2
petaflops, 512 gigabyte, 10 kilowatts.
It weighs 160 kg
That’s as much as a fully grown panda
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Numbers of GPU’s in data centers are growing
Hence why the JVM is working on improved native code interop
http://openjdk.java.net/projects/panama/
And things like value types
http://openjdk.java.net/jeps/169
Breaking down that wall even more
Making Java more attractive for new workloads
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Effective native interop requires the JVM to be
able to pass in data in the form that the native
code needs. And do it very fast (bye bye JNI).
old layout
on heap
New
layout on
heap
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
o n c i o s u c d q d v p l a a n u s t c z p a a s h x o o g t r g g f l w v d n s j z o e p e e x
i e h f q u o q p r d m r u r w e p a x a a g k m e z t u u k u h r f w f w b z j n w y r s v t m o
w g j k r g u q h x l i j f f n l y f z r z t r p x a h c n h a s c v r y m w m a d o g g z u y g k
c c v s k l m m v t p v e b z c g b i m c r z o b i r s z o s g y e l f l k q v t v r v w d v i i v
w s g x b w u l y p q e r a t e l t e j u o f a k m i q x z p h b h h l h a j k d u n j y b z z e g
o u n a l o s r m b k f j h z f m e l a u j k w o m o g i v s v c l c i u r o s j b e r o z m z l q
r x y t a k q h u t a y v m b a v z s c a k e v m t c v e b s h c b t i j k t m n c o x o c w z n y
s d a y f h n q g b i o z w s j n o j a o o n y q d b l s q f r x n h g z j u v s w q e f q t e d g
f y u i q v k o q c t o h e t o d w q n f f m o s c t v h r e n o y o g f h j w u v w u n u b a s k
z u y u f r h z h g p j g r i q m l k p e j z g h k w r g k v k k w n w x g v p l g e v c o c e j z
v n f m l b k o m q g t y z d n t s e r i i e b n w w b l q x v s i l q a e p e h r j l r e n z m l
m o n w q j s f r g k s e s k o i j d z k y p t s u d p c f e t p f g t t l s h d x f r z p c c n v
o e u a m w u b i z t b k i b o p l s u e p j z w t j x f s s v r b h j c v h m k d k j t l o z b m
x y i m m j l d c k z f k v b q r c l t q e y n e o x f z m w b d w r b g h r j b u f u g z a m c n
l j l b q q o n h n a f k h s r w p l h i m d l u s i s u l t i o g h v q u k n m h z u z u v l d u
q x y m n u m o o j o u i k i d k l w h z v t o g p u d h s n f u i m j q x m x s y g l k k p p l x
j s s e p a r y t o e x t i d b u s l n l y y t i p g d q p z e d z s j k i p a y i n x i l s y y v
y f d o h n j m n l p g m p a n q p b s u l y d a e j m x q b a f a t f q p r z t t w q n s o f e q
g k d s b j a j g v m r n j w k n c v i r i j t z a r a q r e c l t i q r v r t o a t e u t w s h w
d c x r g m r h k c n y r t t s a i t i y c n s b l f s v n v q z u f c b c g o t b w m k f e p x q
q m y x e x p p c r b v z n y b e p l h n k w i z m u h g a f m s u q m b f n j p s y r n g r r u r
v m s a a f e e p c e m k i k t n c c a i x q e z p i k c c i c h b c k l o m z y e j y x u a y u s
j q k z t o a j g z s q h p w i g f k k o n z m a g k y q u k w h e t a t y v h d q h p q u t m p s
r w x t l f g l k t h b k t j d d u x u w c k u o w j l y d l f i j h k v x x n t g g w r y n g n k
k e m g h v w v j p i p j e h g u u t p a x g i a e l m o h r h a u b d x s a t m y v l e v l n m f
j y c n d w g y i z e t o b e e b x c b z e i g n p q u i u f j r h p z o b b d k f c a r t k y q k
o k g k l l f b g b i z x j n n q h k k l w c q s g m o x y q f r m e f n w j f q h p p c z l y b k
f w p e e i d c m w m r k f a q o f k a i b y a l s j u z m s j z v c q x g m p k m j a o k k n l g
q o y r o p s w z z o v d x u k b u m y l e n x q k k l j r s f f n i k v i c s r e x j q c j a t c
c v l k l h r h k c d p l l j e b w g k t y m z d z k x n j p a q e i k f x x y l z m q h a h h y t
w l t r v c e i y w f f h j j l d w r h h e r f g j h z n b x m c l c i d l j o r b m g n j p c v b
y m d p i p i b z r c z p k p b l o q p f w p n e o d n l g v i h a p t h t f i i z f r u h v q d x
q u l e n a s k q a u a h f e n i v o i i s e k h r y n i u q g y z l o x i h j u p h a r o l s o l
What about when you don’t know the words you’re searching for?
Do you create a list of every possible word?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
NEURAL:
a e k j c b a o a j
e j a x l o n d
o
d
n
v n a v a a j v i o
i c
m
e
i e t u p a a
t d a t a j a j k l
i t w i q a y a m h
n u e n x v d v g a
g o d g t f f a u i
o a s o g a g t v c
c i a c h j a i b m
Teach a Neural Net
about how words are
constructed.
Then let it search the grid
Then work out which words
are ‘real’
Don’t think that’s possible?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Neural nets are number crunchers – something
GPU’s are also fantastically good at.
More reasons for Value Types and native interop
Breaking down that wall even more
Making Java more attractive for new workloads
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
What comes after GPUs?
neuromorphic processors of course
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
SYNAPSE:
A program to develop a
neuromorphic processor that is a
new kind of cognitive computer
Designed to simulate the neurones
and dendrites of the brain for low
power efficient operation
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Event driven, Non Von Neumann Neural Network.
Neural Nets want their data in different forms
They behave differently
You’ll have to think differently too
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
And beyond?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
SEARCH
In 1996 a search algorithm was
defined by Lov Grover. This
algorithm can transform the
problem into an O(√N) search.
On a traditional computer any
search problem is solved in no fewer
than O(N) evaluations
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
0 - ish
Z Rotation
or ‘phase’
1 - ish
Y Rotation or ‘pha
X Rotation or ‘phase’
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
QBIT
Microwave resonators
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
qubitbit
1
0
SEARCH
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
“Java”
Try 1 3,5 -> NE
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
“Java”
Try 1 3,5 -> NE
No – try again
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
“Java”
Try 2 4,4 -> N
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
“Java”
Try 2 4,4 -> N
No – try again
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
“Java”
Try 3 6,3 -> NW
r c e n t u r y l m
y q h m y t n e w t
j x v g f a s r h h
f u r t u k h o u q
y a m a h o c e k n
s b r p v e n c a t
a y g e u a j e a d
h z g a m o j i p b
h z a e r b y a n n
d m t f g e i v e i
“Java”
Try 3 6,3 -> NW
No – try again
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
QUANTUM:
a e k j c b a o a j
l g m e e t u p a p
l n a v a a j v i o
p c
m
e
i e t u p a a
r d a t a j a j k l
u t w i q a y a m h
d u e n x v d v g a
j o d g t f f a u i
a a s o g a g t v c
z i a c h j a i b m
www.research.ibm.com/ibm-q/
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Quantum Computers can and will solve linear equations
break cryptographic systems or model new medicines
In times that are a fraction of what existing computers can
achieve now.
Word searches are easy. But you present the data differently
and get a statistical response.
No more 0&1’s
The question is how to get the JVM talking quantum?
1
3
0
Runtime Language
Type Safe
Bytecode: JIT Compiled
Garbage Collected
Concurrent Threaded
All Platforms
The JVM’s design
characteristics allow
us to imagine taking
it to new places
No other runtime
environment comes
close
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
The JVM design means that we can easily
imagine running JVM languages on new forms of
processors.
The JVM can take the application model and transform it
to the something suitable for the hardware
The challenge is that you have to change how you think!
.
@spoole167
Java Vendor competition and collaboration delivered
• The fastest runtime environments
• The most scalable runtime environments
• The best garbage collectors
• The greatest dynamically re-optimizing compilers
• And we’re still doing it.
Phew.
• So many ways Java is going
forward…
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Java is going places it’s never been before.
The JVM is rising to the challenge – are you?
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
© 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION

Más contenido relacionado

La actualidad más candente

Class Introduction: Digital Product Management
Class Introduction: Digital Product ManagementClass Introduction: Digital Product Management
Class Introduction: Digital Product ManagementAlex Cowan
 
EMC World 2015 - Why DevOps is Critical for Business
EMC World 2015 -  Why DevOps is Critical for BusinessEMC World 2015 -  Why DevOps is Critical for Business
EMC World 2015 - Why DevOps is Critical for BusinessBrian Gracely
 
The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...
The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...
The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...New Relic
 
EMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure DeploymentEMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure DeploymentKendrick Coleman
 
EMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data PersistenceEMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data PersistenceClinton Kitson
 
EMCW2015 - Containers vs VMs
EMCW2015 - Containers vs VMsEMCW2015 - Containers vs VMs
EMCW2015 - Containers vs VMsClinton Kitson
 
Agile project management anti patterns
Agile project management anti patterns Agile project management anti patterns
Agile project management anti patterns Katarzyna Mrowca
 
Class Intro.: Software Design
Class Intro.: Software DesignClass Intro.: Software Design
Class Intro.: Software DesignAlex Cowan
 
01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreenStephen Thair
 
5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected DevicesVMware Tanzu
 
AppSphere 15 - The Future of Enterprise IT
AppSphere 15 - The Future of Enterprise ITAppSphere 15 - The Future of Enterprise IT
AppSphere 15 - The Future of Enterprise ITAppDynamics
 
EMCW2015 - Frictionless Deployment of SDS
EMCW2015 - Frictionless Deployment of SDSEMCW2015 - Frictionless Deployment of SDS
EMCW2015 - Frictionless Deployment of SDSClinton Kitson
 
The Key to the SAFe: Principles over Practices
The Key to the SAFe: Principles over PracticesThe Key to the SAFe: Principles over Practices
The Key to the SAFe: Principles over PracticesEm Campbell-Pretty
 
Rediscover Software Development Edward Hieatt Web Summit 2014
Rediscover Software Development Edward Hieatt Web Summit 2014Rediscover Software Development Edward Hieatt Web Summit 2014
Rediscover Software Development Edward Hieatt Web Summit 2014VMware Tanzu
 
How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...
How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...
How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...Em Campbell-Pretty
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesJohn Ferguson Smart Limited
 
Dashboards and Culture: How Openness Changes Your Behaviour
Dashboards and Culture: How Openness Changes Your BehaviourDashboards and Culture: How Openness Changes Your Behaviour
Dashboards and Culture: How Openness Changes Your BehaviourSteve Poole
 

La actualidad más candente (20)

Class Introduction: Digital Product Management
Class Introduction: Digital Product ManagementClass Introduction: Digital Product Management
Class Introduction: Digital Product Management
 
DevOps is a ReOrg
DevOps is a ReOrgDevOps is a ReOrg
DevOps is a ReOrg
 
EMC World 2015 - Why DevOps is Critical for Business
EMC World 2015 -  Why DevOps is Critical for BusinessEMC World 2015 -  Why DevOps is Critical for Business
EMC World 2015 - Why DevOps is Critical for Business
 
The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...
The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...
The Wix Way: Mastering Scale & Complexity to Deliver a Bug-less Product, Futu...
 
EMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure DeploymentEMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
EMC World 2015 devops-st06 Containers and Converged Infrastructure Deployment
 
EMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data PersistenceEMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data Persistence
 
EMCW2015 - Containers vs VMs
EMCW2015 - Containers vs VMsEMCW2015 - Containers vs VMs
EMCW2015 - Containers vs VMs
 
Agile project management anti patterns
Agile project management anti patterns Agile project management anti patterns
Agile project management anti patterns
 
Class Intro.: Software Design
Class Intro.: Software DesignClass Intro.: Software Design
Class Intro.: Software Design
 
Openstack summit
Openstack summitOpenstack summit
Openstack summit
 
01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen01 - DevOpsGuys - Atmosphere May 2015 widescreen
01 - DevOpsGuys - Atmosphere May 2015 widescreen
 
5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices
 
AppSphere 15 - The Future of Enterprise IT
AppSphere 15 - The Future of Enterprise ITAppSphere 15 - The Future of Enterprise IT
AppSphere 15 - The Future of Enterprise IT
 
EMCW2015 - Frictionless Deployment of SDS
EMCW2015 - Frictionless Deployment of SDSEMCW2015 - Frictionless Deployment of SDS
EMCW2015 - Frictionless Deployment of SDS
 
The Key to the SAFe: Principles over Practices
The Key to the SAFe: Principles over PracticesThe Key to the SAFe: Principles over Practices
The Key to the SAFe: Principles over Practices
 
Kanban and DevOps
Kanban and DevOpsKanban and DevOps
Kanban and DevOps
 
Rediscover Software Development Edward Hieatt Web Summit 2014
Rediscover Software Development Edward Hieatt Web Summit 2014Rediscover Software Development Edward Hieatt Web Summit 2014
Rediscover Software Development Edward Hieatt Web Summit 2014
 
How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...
How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...
How We Became World Leaders in Agile Data Warehousing - Teradata Partners - O...
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
Dashboards and Culture: How Openness Changes Your Behaviour
Dashboards and Culture: How Openness Changes Your BehaviourDashboards and Culture: How Openness Changes Your Behaviour
Dashboards and Culture: How Openness Changes Your Behaviour
 

Similar a Java 21st Century Thinking

JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?Steve Poole
 
Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise dektlong
 
OSCON 2016 - Lessons learned from 15+ years in open source - Matt Asay
OSCON 2016 - Lessons learned from 15+ years in open source - Matt AsayOSCON 2016 - Lessons learned from 15+ years in open source - Matt Asay
OSCON 2016 - Lessons learned from 15+ years in open source - Matt AsayMatt Asay
 
Cwin16 - Paris - mule soft
Cwin16 - Paris - mule softCwin16 - Paris - mule soft
Cwin16 - Paris - mule softCapgemini
 
Pivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow KeynotePivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow Keynotecornelia davis
 
SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...
SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...
SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...Harry McLaren
 
HP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pillHP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pillBeMyApp
 
Getting Your Boss Excited about Mobile Marketing
Getting Your Boss Excited about Mobile MarketingGetting Your Boss Excited about Mobile Marketing
Getting Your Boss Excited about Mobile MarketingRay Pun
 
Cutting Through the Disruption
Cutting Through the DisruptionCutting Through the Disruption
Cutting Through the DisruptionOSSCube
 
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...Angel Alberici
 
How to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsHow to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsSufyaan Kazi
 
Oracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsOracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsKelly Goetsch
 
The End of Security as We Know It - Shannon Lietz
The End of Security as We Know It - Shannon LietzThe End of Security as We Know It - Shannon Lietz
The End of Security as We Know It - Shannon LietzSeniorStoryteller
 
Axpert™ from Agile Labs, Bangalore, India
Axpert™  from Agile Labs, Bangalore, IndiaAxpert™  from Agile Labs, Bangalore, India
Axpert™ from Agile Labs, Bangalore, IndiaAGILE LABS,INDIA
 
ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)
ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)
ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)Emtec Inc.
 
Linux Foundation Japan 2015
Linux Foundation Japan 2015Linux Foundation Japan 2015
Linux Foundation Japan 2015Jason Jackson
 
CF Summit Shanghai 2015
CF Summit Shanghai 2015CF Summit Shanghai 2015
CF Summit Shanghai 2015Jason Jackson
 
HP: Delivering on the Promise of Hybrid Cloud
HP: Delivering on the Promise of Hybrid CloudHP: Delivering on the Promise of Hybrid Cloud
HP: Delivering on the Promise of Hybrid CloudMelissa Luongo
 

Similar a Java 21st Century Thinking (20)

JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?
 
Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise
 
OSCON 2016 - Lessons learned from 15+ years in open source - Matt Asay
OSCON 2016 - Lessons learned from 15+ years in open source - Matt AsayOSCON 2016 - Lessons learned from 15+ years in open source - Matt Asay
OSCON 2016 - Lessons learned from 15+ years in open source - Matt Asay
 
Cwin16 - Paris - mule soft
Cwin16 - Paris - mule softCwin16 - Paris - mule soft
Cwin16 - Paris - mule soft
 
Pivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow KeynotePivotal Cloud Platform Roadshow Keynote
Pivotal Cloud Platform Roadshow Keynote
 
SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...
SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...
SplDevOps: Making Splunk Development a Breeze With a Deep Dive on DevOps' Con...
 
HP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pillHP Helion Webinar #4 - Open stack the magic pill
HP Helion Webinar #4 - Open stack the magic pill
 
Getting Your Boss Excited about Mobile Marketing
Getting Your Boss Excited about Mobile MarketingGetting Your Boss Excited about Mobile Marketing
Getting Your Boss Excited about Mobile Marketing
 
Cutting Through the Disruption
Cutting Through the DisruptionCutting Through the Disruption
Cutting Through the Disruption
 
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
 
How to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsHow to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native Applications
 
Oracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsOracle: Building Cloud Native Applications
Oracle: Building Cloud Native Applications
 
The End of Security as We Know It - Shannon Lietz
The End of Security as We Know It - Shannon LietzThe End of Security as We Know It - Shannon Lietz
The End of Security as We Know It - Shannon Lietz
 
Axpert™ from Agile Labs, Bangalore, India
Axpert™  from Agile Labs, Bangalore, IndiaAxpert™  from Agile Labs, Bangalore, India
Axpert™ from Agile Labs, Bangalore, India
 
ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)
ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)
ERP 2.0 (Cloud, New Functionality, FAH, Integration and M&A Focus)
 
Linux Foundation Japan 2015
Linux Foundation Japan 2015Linux Foundation Japan 2015
Linux Foundation Japan 2015
 
Java Futurity
Java FuturityJava Futurity
Java Futurity
 
CF Summit Shanghai 2015
CF Summit Shanghai 2015CF Summit Shanghai 2015
CF Summit Shanghai 2015
 
HP: Delivering on the Promise of Hybrid Cloud
HP: Delivering on the Promise of Hybrid CloudHP: Delivering on the Promise of Hybrid Cloud
HP: Delivering on the Promise of Hybrid Cloud
 
The IP Imperative
The IP Imperative The IP Imperative
The IP Imperative
 

Más de Steve Poole

Key Takeaways for Java Developers from the State of the Software Supply Chain...
Key Takeaways for Java Developers from the State of the Software Supply Chain...Key Takeaways for Java Developers from the State of the Software Supply Chain...
Key Takeaways for Java Developers from the State of the Software Supply Chain...Steve Poole
 
THRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECH
THRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECHTHRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECH
THRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECHSteve Poole
 
Maven Central++ What's happening at the core of the Java supply chain
Maven Central++ What's happening at the core of the Java supply chainMaven Central++ What's happening at the core of the Java supply chain
Maven Central++ What's happening at the core of the Java supply chainSteve Poole
 
GIDS-2023 A New Hope for 2023? What Developers Must Learn Next
GIDS-2023 A New Hope for 2023? What Developers Must Learn NextGIDS-2023 A New Hope for 2023? What Developers Must Learn Next
GIDS-2023 A New Hope for 2023? What Developers Must Learn NextSteve Poole
 
A new hope for 2023? What developers must learn next
A new hope for 2023? What developers must learn nextA new hope for 2023? What developers must learn next
A new hope for 2023? What developers must learn nextSteve Poole
 
Stop Security by Sleight Of Hand.pptx
Stop Security by Sleight Of Hand.pptxStop Security by Sleight Of Hand.pptx
Stop Security by Sleight Of Hand.pptxSteve Poole
 
Superman or Ironman - can everyone be a 10x developer?
Superman or Ironman - can everyone be a 10x developer?Superman or Ironman - can everyone be a 10x developer?
Superman or Ironman - can everyone be a 10x developer?Steve Poole
 
The Secret Life of Maven Central
The Secret Life of Maven CentralThe Secret Life of Maven Central
The Secret Life of Maven CentralSteve Poole
 
The Secret Life of Maven Central.pptx
The Secret Life of Maven Central.pptxThe Secret Life of Maven Central.pptx
The Secret Life of Maven Central.pptxSteve Poole
 
Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...
Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...
Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...Steve Poole
 
Log4Shell - Armageddon or Opportunity.pptx
Log4Shell - Armageddon or Opportunity.pptxLog4Shell - Armageddon or Opportunity.pptx
Log4Shell - Armageddon or Opportunity.pptxSteve Poole
 
DevnexusRansomeware.pptx
DevnexusRansomeware.pptxDevnexusRansomeware.pptx
DevnexusRansomeware.pptxSteve Poole
 
Game Over or Game Changing? Why Software Development May Never be the same again
Game Over or Game Changing? Why Software Development May Never be the same againGame Over or Game Changing? Why Software Development May Never be the same again
Game Over or Game Changing? Why Software Development May Never be the same againSteve Poole
 
Cybercrime and the developer 2021 style
Cybercrime and the developer 2021 styleCybercrime and the developer 2021 style
Cybercrime and the developer 2021 styleSteve Poole
 
Agile Islands 2020 - Dashboards and Culture
Agile Islands 2020 - Dashboards and CultureAgile Islands 2020 - Dashboards and Culture
Agile Islands 2020 - Dashboards and CultureSteve Poole
 
LJC Speaker Clnic June 2020
LJC Speaker Clnic June 2020LJC Speaker Clnic June 2020
LJC Speaker Clnic June 2020Steve Poole
 
Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...
Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...
Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...Steve Poole
 
Beyond the Pi: What’s Next for the Hacker in All of Us?
Beyond the Pi: What’s Next for the Hacker in All of Us?Beyond the Pi: What’s Next for the Hacker in All of Us?
Beyond the Pi: What’s Next for the Hacker in All of Us?Steve Poole
 
A Modern Fairy Tale: Java Serialization
A Modern Fairy Tale: Java Serialization A Modern Fairy Tale: Java Serialization
A Modern Fairy Tale: Java Serialization Steve Poole
 
Eclipse OpenJ9 - SpringOne 2018 Lightning talk
Eclipse OpenJ9 - SpringOne 2018 Lightning talkEclipse OpenJ9 - SpringOne 2018 Lightning talk
Eclipse OpenJ9 - SpringOne 2018 Lightning talkSteve Poole
 

Más de Steve Poole (20)

Key Takeaways for Java Developers from the State of the Software Supply Chain...
Key Takeaways for Java Developers from the State of the Software Supply Chain...Key Takeaways for Java Developers from the State of the Software Supply Chain...
Key Takeaways for Java Developers from the State of the Software Supply Chain...
 
THRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECH
THRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECHTHRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECH
THRIVING IN THE GEN AI ERA: NAVIGATING CHANGE IN TECH
 
Maven Central++ What's happening at the core of the Java supply chain
Maven Central++ What's happening at the core of the Java supply chainMaven Central++ What's happening at the core of the Java supply chain
Maven Central++ What's happening at the core of the Java supply chain
 
GIDS-2023 A New Hope for 2023? What Developers Must Learn Next
GIDS-2023 A New Hope for 2023? What Developers Must Learn NextGIDS-2023 A New Hope for 2023? What Developers Must Learn Next
GIDS-2023 A New Hope for 2023? What Developers Must Learn Next
 
A new hope for 2023? What developers must learn next
A new hope for 2023? What developers must learn nextA new hope for 2023? What developers must learn next
A new hope for 2023? What developers must learn next
 
Stop Security by Sleight Of Hand.pptx
Stop Security by Sleight Of Hand.pptxStop Security by Sleight Of Hand.pptx
Stop Security by Sleight Of Hand.pptx
 
Superman or Ironman - can everyone be a 10x developer?
Superman or Ironman - can everyone be a 10x developer?Superman or Ironman - can everyone be a 10x developer?
Superman or Ironman - can everyone be a 10x developer?
 
The Secret Life of Maven Central
The Secret Life of Maven CentralThe Secret Life of Maven Central
The Secret Life of Maven Central
 
The Secret Life of Maven Central.pptx
The Secret Life of Maven Central.pptxThe Secret Life of Maven Central.pptx
The Secret Life of Maven Central.pptx
 
Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...
Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...
Devoxx France 2022: Game Over or Game Changing? Why Software Development May ...
 
Log4Shell - Armageddon or Opportunity.pptx
Log4Shell - Armageddon or Opportunity.pptxLog4Shell - Armageddon or Opportunity.pptx
Log4Shell - Armageddon or Opportunity.pptx
 
DevnexusRansomeware.pptx
DevnexusRansomeware.pptxDevnexusRansomeware.pptx
DevnexusRansomeware.pptx
 
Game Over or Game Changing? Why Software Development May Never be the same again
Game Over or Game Changing? Why Software Development May Never be the same againGame Over or Game Changing? Why Software Development May Never be the same again
Game Over or Game Changing? Why Software Development May Never be the same again
 
Cybercrime and the developer 2021 style
Cybercrime and the developer 2021 styleCybercrime and the developer 2021 style
Cybercrime and the developer 2021 style
 
Agile Islands 2020 - Dashboards and Culture
Agile Islands 2020 - Dashboards and CultureAgile Islands 2020 - Dashboards and Culture
Agile Islands 2020 - Dashboards and Culture
 
LJC Speaker Clnic June 2020
LJC Speaker Clnic June 2020LJC Speaker Clnic June 2020
LJC Speaker Clnic June 2020
 
Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...
Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...
Agile Tour London 2018: DASHBOARDS AND CULTURE – HOW OPENNESS CHANGES YOUR BE...
 
Beyond the Pi: What’s Next for the Hacker in All of Us?
Beyond the Pi: What’s Next for the Hacker in All of Us?Beyond the Pi: What’s Next for the Hacker in All of Us?
Beyond the Pi: What’s Next for the Hacker in All of Us?
 
A Modern Fairy Tale: Java Serialization
A Modern Fairy Tale: Java Serialization A Modern Fairy Tale: Java Serialization
A Modern Fairy Tale: Java Serialization
 
Eclipse OpenJ9 - SpringOne 2018 Lightning talk
Eclipse OpenJ9 - SpringOne 2018 Lightning talkEclipse OpenJ9 - SpringOne 2018 Lightning talk
Eclipse OpenJ9 - SpringOne 2018 Lightning talk
 

Último

Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Último (20)

Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

Java 21st Century Thinking

  • 1. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Java in the 21 Century: Are you thinking far enough ahead? June 2018
  • 2. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 About me Steve Poole IBM Lead Engineer / Developer advocate Making Java Real Since Version 0.9 Open Source Advocate DevOps Practitioner (whatever that means!) Driving Change
  • 3. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 This talk may seem to be about possible futures for Java and the JVM
  • 4. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION This talk is actually about why we have to think differently about solving the problems of the future Cloud Data Machine And Analytics Learning Beyond ?
  • 5. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 So really this talk is about your future.
  • 6. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Whatchya thinking about now?
  • 7. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Thinking Positively about Java? Still learning about features in Java 8? Looking at Java 10 or going to Java 11? Trying to understand the new feature release process? What does “LTS” mean for Java? Exploring “Java Platform Module System”? Trying out Jshell? Figuring out jlink?
  • 8. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167It’s easy to focus on now – it’s real and concrete
  • 9. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 What about a wider view? What does it mean for EE now Oracle have donated it to Eclipse? Why have IBM open sourced their JVM and Application Servers? What should you be doing with MicroProfile? Is Spring the right answer? Should I be learning other programming languages? Where does Java fit? Should I use Java at all?
  • 10. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167Let’s think about what drives us
  • 11. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Economics Faster, cheaper, easier, better …
  • 12. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 For many years Java innovation focused on performance
  • 13. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Maximize the opportunities offered by Moore’s Law Forever… https://commons.wikimedia.org/wiki/File:Moores_law_(1970-2011).PNG
  • 14. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 We built a walled garden and made it the best place to run enterprise applications of a certain kind https://www.flickr.com/photos/40139809@N00/
  • 15. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Vendor competition and collaboration delivered • The fastest runtime environments • The most scalable runtime environments • The best garbage collectors • The greatest dynamically re-optimizing compilers The best environment for long running Java only applications
  • 16. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 But the fact is that Java’s innovation is mostly driven by factors outside our control
  • 17. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Moore’s Law stalled. https://commons.wikimedia.org/wiki/File:Moores_law_(1970-2011).PNG Now it’s about multi-core processors And multi-processor machines
  • 18. And don’t forget VMs can scale from the very smallest to the very largest devices Tiny winy Ginormous humongous
  • 19. From the smallest On the smart card Next to the processor (separate IC) In the processor
  • 20. @spoole167 Java Card JVM • Becoming a major IOT edge device type • Has security physically built in • Low Power • Small cost Writing code in Java means less chance of code problems. no hand crafting assembler for small devices Want to debug a Java Card in the field? Want to patch 6 million cards? Java offers a superior developer experience
  • 21. To the very biggest Slido.io #K100
  • 22. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 And then we finally achieved
  • 23. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 And then we finally achieved Compute on Tap
  • 24. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Aka “Cloud” Faster, cheaper, easier, better …
  • 25. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Economics rules
  • 26. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 New rules of the game. Compute == money
  • 27. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 New rules of the game. Compute == money $ == GB/hr
  • 28. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 New rules of the game. Compute == money $ == GB/hr -Xmx: $100
  • 29. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Cloud isn’t going away: in fact its coming to you
  • 30. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Cloud is coming to a data center near you https://github.com/IBM/deploy-ibm-cloud-private git clone vagrant up
  • 31. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167
  • 32. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 New economics requires Java to break out of the walled garden. And since we don’t know all the answers – we need to be able to experiment and innovate faster https://www.flickr.com/photos/40139809@N00/
  • 33. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 We need to go from Very long running, efficient, monolithic applications Willing to trade startup time for throughput in it for the long haul
  • 34. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Short lived, container based, micro service oriented, instant-on, always available, cross server, polyglot services Now we also need
  • 35. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 0 0.2 0.4 0.6 0.8 1 1.2 1.4 0 1 2 3 4 5 6 7 8 9 101112131415161718 Throughput Throughput 0 0.5 1 1.5 0 1 2 3 4 5 6 Throughput Throughput 0 0.5 1 1.5 0 1 2 3 4 5 6 Throughput Throughput 0 0.5 1 1.5 0 1 2 3 4 5 6 Throughput Throughput 0 0.5 1 1.5 0 1 2 3 4 5 6 Throughput Throughput We need all of these models
  • 38. Demand time How does your application respond to demand? @spoole167
  • 39. Demand time One big server running all the time? @spoole167
  • 40. Demand time One big server running all the time?Look at all that wasted money! @spoole167
  • 41. Demand Smaller compute units are better @spoole167
  • 42. Demand time Smaller compute units are better @spoole167
  • 44. Time Throughput Lag Over-Peek usage Doesn’t fit new model Costs $ Costs more $ @spoole167
  • 45. Time Throughput More like this please @spoole167
  • 46. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 And we need it ..
  • 47. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Is to innovate faster – or loose to the competition The immediate challenge for Java and the JVM
  • 48. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION predictable consistent cadence easier migration increased innovation Now you can see why our ecosystem is repositioning for a faster pace
  • 49. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Every development team has both common and unique problems to solve. Open source is key to fast innovation and adoption OpenJDK Eclipse OpenJ9 Open Liberty Eclipse MicroProfile Java EE IBM Cloud Docker Kubernetes Allowing everyone to participate (and offering multiple starting points)
  • 50. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION lambda streams modules reactive streams panama valhalla penrose amber Giving Java innovation a faster cadence
  • 51. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Tomcat Glassfish Open Liberty … OpenJDK + Hotspot OpenJDK + OpenJ9 J2EE Micro-profile And a variety of implementations to choose from
  • 52. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Container awareness Fast native code interop Re-optimised JITs Re-tuned GC’s AOT Value Objects Generating New JVM technologies Jit As A Service <your idea here>
  • 53. Time Throughput More like this please @spoole167
  • 54. Time Real data OpenJDK 9 with Hotspot @spoole167
  • 55. Time Real data OpenJDK 9 with Hotspot OpenJDK 9 with OpenJ9 @spoole167
  • 56. Time Real data OpenJDK 9 with Hotspot OpenJDK 9 with OpenJ9 OpenJDK 9 with OpenJ9 + AOT @spoole167
  • 58. Don’t just take my word for it @spoole167 adoptopenjdk.net
  • 59. IBM donated J9 to Eclipse because we believe it’s the best way to move Java forward • It offers a new place to start • As the future emerges we can see that Java needs to handle new technologies, new hardware. • Java must adapt or die • We can’t do it on our own. We have to do it together @spoole167
  • 60. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Cloud. So we know what to do. We know why we need to do it Cloud makes you think differently but mostly about footprint, resilience and scaling Modularity, Lambdas J2EE going to Eclipse That’s not really a big change. …
  • 61. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 The future starts here… ? Data Analytics Machine Learning
  • 62. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 But it’s still driven by economics $
  • 63. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION The new problems we face are not ones humans can easily internalize, visualize or even compute These drivers are changing the face of computing as we know it. And it’s barely started • The reality of data analytics • The promise of AI
  • 64. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 The common challenges Effective optimization Visualisation of complex patterns Extracting meaning from enormous amounts of data. All things human beings are poor at doing And so are current computer architectures
  • 65. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Machine Learning etc • Helps us find reasonable answers to questions. • No guarantees on it being the best answer. Organize a group of people at a table. So that you get the ‘best’ conversation You decide what ‘best’ means
  • 66. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Two or three people - easy What about 10? - how many combinations to consider?
  • 67. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Two or three people - easy What about 10? - how many combinations to consider? Going to need some help here3628800
  • 68. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Two or three people - easy What about 150?
  • 69. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 571338395644585459047893286526105400318 955357860112641825483758331798291248453 983931265744886753111453771078787468542 041626662501986845044663559491959220665 749425920957357789293253572904449624724 054167907221184454371222696755200000000 00000000000000000000000000000 Going to need a lot of help here
  • 70. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 It’s this level of scale , complexity and uncertainly we now have to deal with…
  • 71. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Imagine creating systems that can Tailor responses to the personalities of your customers without meeting a single one of them. improve themselves over time, learning from and adapting to the world around them. identify their own inefficiencies-and address them automatically-in real time. Uncover patterns, resources, trends and other competitive advantages invisible to competitors and their information systems.
  • 72. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Machine Learning works because (mostly) humans design and teach it A ML solution can be a significant investment. It it also a significant business opportunity That has implications…
  • 73. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 1 Lots of “BlackBox” services and APIs that allow the owner to keep their “secret source” secret 2 Investment in the solution is sticky - it’s hard to create so moving to a new runtime is less likely 3 Developers will spend more time consuming services into their own applications and less on bespoke solutions 4 Developers will be creating new forms of applications around data analytics and machine learning
  • 74. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Which means 1 JVMs need to be able to offer good machine learning and data analysis capabilities 2 Java Developers will spend more time in transforming data and thinking about problems in data terms 3 All Developers will be learning new technologies and tools
  • 75. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Lets try to make this more real (time for some code)
  • 76. c c e n t u r y b j m k h l y t n e w t t c i g a f n n o y f d h t u s i a o v i a w a h o h r v e d i r n v e n y s i g a p t u a o e x t q f e a m o j k b o y i c h r b y p n a t t n v a e i z h i Java In The Twenty First Century Are you thinking far enough ahead IBM Find which one of these words is missing
  • 77. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 How do you solve this problem? For each String in the list. Visit each element in the grid Check if the string matches in any of the eight directions. Record if found Report which of the strings was not found
  • 78. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i Java In The Twenty First Century Are you thinking far enough ahead IBM
  • 79. for(y=0;y<side && dir==null;y++) { for(x=0;x<side && dir==null;x++) { char c=p.charAt(x, y); if(c==w.charAt(0)) { int l=0,dy=y,dx=x; while(l<w.length() && dy>0 && p.charAt(x,dy)==w.charAt(l)) { l++;dy--; } if(l==w.length()) { dir="N";break;} l=0;dx=x; while(l<w.length() && dx<side && p.charAt(dx,y)==w.charAt(l)) { l++;dx++; } if(l==w.length()) { dir="E";break;} l=0;dx=x;dy=y; while(l<w.length() && dy<side && p.charAt(x,dy)==w.charAt(l)) { l++;dy++; } if(l==w.length()) { dir="S";break;} l=0;dx=x; while(l<w.length() && dx>0 && p.charAt(dx,y)==w.charAt(l)) { l++;dx--; } if(l==w.length()) { dir="W";break;} l=0;dx=x;dy=y; while(l<w.length() && dy<side && dx<side && p.charAt(dx,dy)==w.charAt(l)) { l++; dy++;dx++; } if(l==w.length()) { dir="SE";break;} l=0;dx=x;dy=y; while(l<w.length() && dy<side && dx>0 && p.charAt(dx,dy)==w.charAt(l)) { l++;dy++;dx--; } if(l==w.length()) { dir="SW";break;}
  • 80. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Certainly inefficient use of a CPU 0 10 20 30 40 50 60 70 80 90 100 Java CPU % CPU1 CPU2 CPU3 CPU4 BRUTE FORCE?
  • 81. IntStream is=IntStream.range(0, side*side); is.parallel().forEach( i -> { int x=i % side; int y=i / side; <do horrible code checking here.. }); }
  • 82. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Good use of a CPU What about that code? 0 10 20 30 40 50 60 70 80 90 100 Java CPU % CPU1 CPU2 CPU3 CPU4 while( l<w.length() && dy>0 && p.charAt(x,dy)==w.charAt(l)) { l++;dy--; } BETTER?
  • 83. c c e n t u r y b j m k h l y t n e w t t c i g a f n n o y f d h t u s i a o v i a w a h o h r v e d i r n v e n y s i g a p t u a o e x t q f e a m o j k b o y i c h r b y p n a t t n v a e i z h i When searching for “java” we have to make sure we don’t run off the edge while( l<w.length() && dy>0 && p.charAt(x,dy)==w. charAt(l)) { l++;dy-- ; }
  • 84. c c e n t u r y b j m k h l y t n e w t t c i g a f n n o y f d h t u s i a o v i a w a h o h r v e d i r n v e n y s i g a p t u a o e x t q f e a m o j k b o y i c h r b y p n a t t n v a e i z h i Changing the data reduces our code Adding a empty boarder the width of the largest word Means we’ll never run off the end of the array
  • 85. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION We can do better. private static int[][] offsets= { { 0 , -1 } , // N { 1 , -1 } , // NE { 1 , 0 } , // E { 1 , 1 } , // SE { 0 , 1 } , // S { -1 , 1 } , // SW { -1 , 0 } , // W { -1 , -1 } // NW }; Turning the direction problem into a data driven one +1-1 -1 +1
  • 86. IntStream is=IntStream.range(0, (side+buffer)*(side+buffer)*8); is.parallel().forEach( i -> { int offsets[]=directions[i % 8]; int r = i / 8; int x = i % r; int y = i / r; // loop through word matching each character for(int i=0;i<word.length;i++) { . . . // move to next char in required direction by simply: x+= offsets[0]; y+= offsets[1]; } ...
  • 87. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION o n c i o s u c d q d v p l a a n u s t c z p a a s h x o o g t r g g f l w v d n s j z o e p e e x i e h f q u o q p r d m r u r w e p a x a a g k m e z t u u k u h r f w f w b z j n w y r s v t m o w g j k r g u q h x l i j f f n l y f z r z t r p x a h c n h a s c v r y m w m a d o g g z u y g k c c v s k l m m v t p v e b z c g b i m c r z o b i r s z o s g y e l f l k q v t v r v w d v i i v w s g x b w u l y p q e r a t e l t e j u o f a k m i q x z p h b h h l h a j k d u n j y b z z e g o u n a l o s r m b k f j h z f m e l a u j k w o m o g i v s v c l c i u r o s j b e r o z m z l q r x y t a k q h u t a y v m b a v z s c a k e v m t c v e b s h c b t i j k t m n c o x o c w z n y s d a y f h n q g b i o z w s j n o j a o o n y q d b l s q f r x n h g z j u v s w q e f q t e d g f y u i q v k o q c t o h e t o d w q n f f m o s c t v h r e n o y o g f h j w u v w u n u b a s k z u y u f r h z h g p j g r i q m l k p e j z g h k w r g k v k k w n w x g v p l g e v c o c e j z v n f m l b k o m q g t y z d n t s e r i i e b n w w b l q x v s i l q a e p e h r j l r e n z m l m o n w q j s f r g k s e s k o i j d z k y p t s u d p c f e t p f g t t l s h d x f r z p c c n v o e u a m w u b i z t b k i b o p l s u e p j z w t j x f s s v r b h j c v h m k d k j t l o z b m x y i m m j l d c k z f k v b q r c l t q e y n e o x f z m w b d w r b g h r j b u f u g z a m c n l j l b q q o n h n a f k h s r w p l h i m d l u s i s u l t i o g h v q u k n m h z u z u v l d u q x y m n u m o o j o u i k i d k l w h z v t o g p u d h s n f u i m j q x m x s y g l k k p p l x j s s e p a r y t o e x t i d b u s l n l y y t i p g d q p z e d z s j k i p a y i n x i l s y y v y f d o h n j m n l p g m p a n q p b s u l y d a e j m x q b a f a t f q p r z t t w q n s o f e q g k d s b j a j g v m r n j w k n c v i r i j t z a r a q r e c l t i q r v r t o a t e u t w s h w d c x r g m r h k c n y r t t s a i t i y c n s b l f s v n v q z u f c b c g o t b w m k f e p x q q m y x e x p p c r b v z n y b e p l h n k w i z m u h g a f m s u q m b f n j p s y r n g r r u r v m s a a f e e p c e m k i k t n c c a i x q e z p i k c c i c h b c k l o m z y e j y x u a y u s j q k z t o a j g z s q h p w i g f k k o n z m a g k y q u k w h e t a t y v h d q h p q u t m p s r w x t l f g l k t h b k t j d d u x u w c k u o w j l y d l f i j h k v x x n t g g w r y n g n k k e m g h v w v j p i p j e h g u u t p a x g i a e l m o h r h a u b d x s a t m y v l e v l n m f j y c n d w g y i z e t o b e e b x c b z e i g n p q u i u f j r h p z o b b d k f c a r t k y q k o k g k l l f b g b i z x j n n q h k k l w c q s g m o x y q f r m e f n w j f q h p p c z l y b k f w p e e i d c m w m r k f a q o f k a i b y a l s j u z m s j z v c q x g m p k m j a o k k n l g q o y r o p s w z z o v d x u k b u m y l e n x q k k l j r s f f n i k v i c s r e x j q c j a t c c v l k l h r h k c d p l l j e b w g k t y m z d z k x n j p a q e i k f x x y l z m q h a h h y t w l t r v c e i y w f f h j j l d w r h h e r f g j h z n b x m c l c i d l j o r b m g n j p c v b y m d p i p i b z r c z p k p b l o q p f w p n e o d n l g v i h a p t h t f i i z f r u h v q d x q u l e n a s k q a u a h f e n i v o i i s e k h r y n i u q g y z l o x i h j u p h a r o l s o l Best? This is ok when you have a “small” amount of data. What happens when the word grid is big: Billions of characters? Millions of words to find? Multidimensional? Or the word is very long (making the buffer too expensive)?
  • 88. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION a e k j c b a o a j e j a x l o n d o d n v n a v a a j v i o i c m e i e t u p a a t d a t a j a j k l i t w i q a y a m h n u e n x v d v g a g o d g t f f a u i o a s o g a g t v c c i a c h j a i b m PARTITIONING: Executor node Executor node Executor node Executor nodeHow do you deal with words split across the boundaries?
  • 89. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION a e k j c b a o a j e j a x l o n d o d n v n a v a a j v i o i c m e i e t u p a a t d a t a j a j k l i t w i q a y a m h n u e n x v d v g a g o d g t f f a u i o a s o g a g t v c c i a c h j a i b m PARTITIONING: Executor node Executor node Executor node Executor node Hint: split words into small 3x3 tiles. Find tiles (map) join together (reduce)
  • 90. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION a e k j c b a o a j e j a x l o n d o d n v n a v a a j v i o i c m e i e t u p a a t d a t a j a j k l i t w i q a y a m h n u e n x v d v g a g o d g t f f a u i o a s o g a g t v c c i a c h j a i b m PARTITIONING: Executor node Executor node Executor node Executor node CPU
  • 91. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION a e k j c b a o a j e j a x l o n d o d n v n a v a a j v i o i c m e i e t u p a a t d a t a j a j k l i t w i q a y a m h n u e n x v d v g a g o d g t f f a u i o a s o g a g t v c c i a c h j a i b m PARTITIONING: Executor node Executor node Executor node Executor node CPU GPU
  • 92. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION a e k j c b a o a j e j a x l o n d o d n v n a v a a j v i o i c m e i e t u p a a t d a t a j a j k l i t w i q a y a m h n u e n x v d v g a g o d g t f f a u i o a s o g a g t v c c i a c h j a i b m PARTITIONING: Executor node Executor node Executor node Executor node CPU GPU FPGA ASIC
  • 93. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION GPU’s don’t work like CPU’s They want their data in different forms They behave differently You’ll have to think differently too
  • 94. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 publicclassCardTrick{ enumSuit{ hearts,clubs,diamonds,spades} enumValue{ ace,two,three,four,five,six,seven,eight,nine,ten,jack,queen,king} publicint score(Suits , Value v) { int points=100; if(s==Suit.hearts|| s==Suit.diamonds){ switch(v){ casefive : points=100;break; casesix: points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s){ casehearts: points*=10;break; caseclubs: points*=20;break; casediamonds: points*=50;break; casespades:points*=5;break; } returnpoints; } }
  • 95. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 publicclassCardTrick{ enumSuit{ hearts,clubs,diamonds,spades} enumValue{ ace,two,three,four,five,six,seven,eight,nine,ten,jack,queen,king} publicint score(Suits , Value v) { int points=100; if(s==Suit.hearts|| s==Suit.diamonds){ switch(v){ casefive : points=50;break; casesix: points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s){ casehearts: points*=10;break; caseclubs: points*=20;break; casediamonds: points*=10;break; casespades:points*=5;break; } returnpoints; } } 1H 5D QS 1000 500 5000
  • 96. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 intpoints=100; if(s==Suit.hearts||s==Suit.diamonds){ switch(v) { casefive: points=50;break; casesix: points=250;break; casejack: points=400;break; casequeen : points=1000;break; } } switch(s) { casehearts: points*=10;break; caseclubs:points*=20;break; casediamonds:points*=10;break; casespades:points*=5;break; }
  • 97. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 intpoints=100; if(s==Suit.hearts || s==Suit.diamonds) { switch(v) { casefive: points=50;break; casesix : points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s) { casehearts :points*=10;break; caseclubs :points*=20;break; casediamonds :points*=10;break; casespades :points*=5;break; } intpoints=100; if(s==Suit.hearts || s==Suit.diamonds) { switch(v) { casefive: points=50;break; casesix : points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s) { casehearts :points*=10;break; caseclubs :points*=20;break; casediamonds :points*=10;break; casespades :points*=5;break; } intpoints=100; if(s==Suit.hearts || s==Suit.diamonds) { switch(v) { casefive: points=50;break; casesix : points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s) { casehearts :points*=10;break; caseclubs :points*=20;break; casediamonds :points*=10;break; casespades :points*=5;break; } In standard CPU architectures – every thread has its own program counter. You have to synchronize threads to get them to work together
  • 98. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 intpoints=100; if(s==Suit.hearts || s==Suit.diamonds) { switch(v) { casefive: points=50;break; casesix : points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s) { casehearts :points*=10;break; caseclubs :points*=20;break; casediamonds :points*=10;break; casespades :points*=5;break; } intpoints=100; if(s==Suit.hearts || s==Suit.diamonds) { switch(v) { casefive: points=50;break; casesix : points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s) { casehearts :points*=10;break; caseclubs :points*=20;break; casediamonds :points*=10;break; casespades :points*=5;break; } intpoints=100; if(s==Suit.hearts || s==Suit.diamonds) { switch(v) { casefive: points=50;break; casesix : points=250;break; casejack: points=400;break; casequeen: points=1000;break; } } switch(s) { casehearts :points*=10;break; caseclubs :points*=20;break; casediamonds :points*=10;break; casespades :points*=5;break; } With GPU’s there is only one program counter. Threads are implicitly synchronized – they are all in lock step…
  • 99. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 publicclassGPUCardTrick{ intpoint_table[][]=newint[][]{… } enum Suit{hearts,clubs,diamonds,spades} enum Value{ace,two,three,four,five,six,seven,eight,nine,ten,jack,queen,king} publicintscore(Suit s, Valuev) { returnpoint_table[s.ordinal()][v.ordinal()]; }
  • 100. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Using a GPU without understanding how they work is like driving your car in reverse all the time
  • 101. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION IBM + NVIDIA Improving Java application performance with GPU exploitation is available in IBM SDK for Java 8 and OpenJDK 9 with Eclipse Open9 Standard SE API optimisation as well as CUDA4J API for explicit low level control +
  • 102. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Here’s where everything changes. • Up to now the JVM has done all the heavy lifting in transforming your model of an application into the real thing. Your model Multiple real applications JVM
  • 103. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 From now on – you and your application will have to change as well GPUs require you to think differently. So will AI and Machine Learning..
  • 104. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 BTW – what does a server GPU look like? NVIDIA’s largest graphics card is the DGX-2. It’s 2 petaflops, 512 gigabyte, 10 kilowatts. It weighs 160 kg That’s as much as a fully grown panda
  • 105. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Numbers of GPU’s in data centers are growing Hence why the JVM is working on improved native code interop http://openjdk.java.net/projects/panama/ And things like value types http://openjdk.java.net/jeps/169 Breaking down that wall even more Making Java more attractive for new workloads
  • 106. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Effective native interop requires the JVM to be able to pass in data in the form that the native code needs. And do it very fast (bye bye JNI). old layout on heap New layout on heap
  • 107. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION o n c i o s u c d q d v p l a a n u s t c z p a a s h x o o g t r g g f l w v d n s j z o e p e e x i e h f q u o q p r d m r u r w e p a x a a g k m e z t u u k u h r f w f w b z j n w y r s v t m o w g j k r g u q h x l i j f f n l y f z r z t r p x a h c n h a s c v r y m w m a d o g g z u y g k c c v s k l m m v t p v e b z c g b i m c r z o b i r s z o s g y e l f l k q v t v r v w d v i i v w s g x b w u l y p q e r a t e l t e j u o f a k m i q x z p h b h h l h a j k d u n j y b z z e g o u n a l o s r m b k f j h z f m e l a u j k w o m o g i v s v c l c i u r o s j b e r o z m z l q r x y t a k q h u t a y v m b a v z s c a k e v m t c v e b s h c b t i j k t m n c o x o c w z n y s d a y f h n q g b i o z w s j n o j a o o n y q d b l s q f r x n h g z j u v s w q e f q t e d g f y u i q v k o q c t o h e t o d w q n f f m o s c t v h r e n o y o g f h j w u v w u n u b a s k z u y u f r h z h g p j g r i q m l k p e j z g h k w r g k v k k w n w x g v p l g e v c o c e j z v n f m l b k o m q g t y z d n t s e r i i e b n w w b l q x v s i l q a e p e h r j l r e n z m l m o n w q j s f r g k s e s k o i j d z k y p t s u d p c f e t p f g t t l s h d x f r z p c c n v o e u a m w u b i z t b k i b o p l s u e p j z w t j x f s s v r b h j c v h m k d k j t l o z b m x y i m m j l d c k z f k v b q r c l t q e y n e o x f z m w b d w r b g h r j b u f u g z a m c n l j l b q q o n h n a f k h s r w p l h i m d l u s i s u l t i o g h v q u k n m h z u z u v l d u q x y m n u m o o j o u i k i d k l w h z v t o g p u d h s n f u i m j q x m x s y g l k k p p l x j s s e p a r y t o e x t i d b u s l n l y y t i p g d q p z e d z s j k i p a y i n x i l s y y v y f d o h n j m n l p g m p a n q p b s u l y d a e j m x q b a f a t f q p r z t t w q n s o f e q g k d s b j a j g v m r n j w k n c v i r i j t z a r a q r e c l t i q r v r t o a t e u t w s h w d c x r g m r h k c n y r t t s a i t i y c n s b l f s v n v q z u f c b c g o t b w m k f e p x q q m y x e x p p c r b v z n y b e p l h n k w i z m u h g a f m s u q m b f n j p s y r n g r r u r v m s a a f e e p c e m k i k t n c c a i x q e z p i k c c i c h b c k l o m z y e j y x u a y u s j q k z t o a j g z s q h p w i g f k k o n z m a g k y q u k w h e t a t y v h d q h p q u t m p s r w x t l f g l k t h b k t j d d u x u w c k u o w j l y d l f i j h k v x x n t g g w r y n g n k k e m g h v w v j p i p j e h g u u t p a x g i a e l m o h r h a u b d x s a t m y v l e v l n m f j y c n d w g y i z e t o b e e b x c b z e i g n p q u i u f j r h p z o b b d k f c a r t k y q k o k g k l l f b g b i z x j n n q h k k l w c q s g m o x y q f r m e f n w j f q h p p c z l y b k f w p e e i d c m w m r k f a q o f k a i b y a l s j u z m s j z v c q x g m p k m j a o k k n l g q o y r o p s w z z o v d x u k b u m y l e n x q k k l j r s f f n i k v i c s r e x j q c j a t c c v l k l h r h k c d p l l j e b w g k t y m z d z k x n j p a q e i k f x x y l z m q h a h h y t w l t r v c e i y w f f h j j l d w r h h e r f g j h z n b x m c l c i d l j o r b m g n j p c v b y m d p i p i b z r c z p k p b l o q p f w p n e o d n l g v i h a p t h t f i i z f r u h v q d x q u l e n a s k q a u a h f e n i v o i i s e k h r y n i u q g y z l o x i h j u p h a r o l s o l What about when you don’t know the words you’re searching for? Do you create a list of every possible word?
  • 108. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION NEURAL: a e k j c b a o a j e j a x l o n d o d n v n a v a a j v i o i c m e i e t u p a a t d a t a j a j k l i t w i q a y a m h n u e n x v d v g a g o d g t f f a u i o a s o g a g t v c c i a c h j a i b m Teach a Neural Net about how words are constructed. Then let it search the grid Then work out which words are ‘real’ Don’t think that’s possible?
  • 109. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
  • 110. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION http://karpathy.github.io/2015/05/21/rnn-effectiveness/
  • 111. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Neural nets are number crunchers – something GPU’s are also fantastically good at. More reasons for Value Types and native interop Breaking down that wall even more Making Java more attractive for new workloads
  • 112. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 What comes after GPUs? neuromorphic processors of course
  • 113. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION SYNAPSE: A program to develop a neuromorphic processor that is a new kind of cognitive computer Designed to simulate the neurones and dendrites of the brain for low power efficient operation
  • 114. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Event driven, Non Von Neumann Neural Network. Neural Nets want their data in different forms They behave differently You’ll have to think differently too
  • 115. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION And beyond?
  • 116. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION SEARCH In 1996 a search algorithm was defined by Lov Grover. This algorithm can transform the problem into an O(√N) search. On a traditional computer any search problem is solved in no fewer than O(N) evaluations
  • 117. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION 0 - ish Z Rotation or ‘phase’ 1 - ish Y Rotation or ‘pha X Rotation or ‘phase’
  • 118. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
  • 119. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
  • 120. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION QBIT Microwave resonators
  • 121. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION qubitbit 1 0 SEARCH
  • 122. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i “Java” Try 1 3,5 -> NE
  • 123. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i “Java” Try 1 3,5 -> NE No – try again
  • 124. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i “Java” Try 2 4,4 -> N
  • 125. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i “Java” Try 2 4,4 -> N No – try again
  • 126. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i “Java” Try 3 6,3 -> NW
  • 127. r c e n t u r y l m y q h m y t n e w t j x v g f a s r h h f u r t u k h o u q y a m a h o c e k n s b r p v e n c a t a y g e u a j e a d h z g a m o j i p b h z a e r b y a n n d m t f g e i v e i “Java” Try 3 6,3 -> NW No – try again
  • 128. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION QUANTUM: a e k j c b a o a j l g m e e t u p a p l n a v a a j v i o p c m e i e t u p a a r d a t a j a j k l u t w i q a y a m h d u e n x v d v g a j o d g t f f a u i a a s o g a g t v c z i a c h j a i b m www.research.ibm.com/ibm-q/
  • 129. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION Quantum Computers can and will solve linear equations break cryptographic systems or model new medicines In times that are a fraction of what existing computers can achieve now. Word searches are easy. But you present the data differently and get a statistical response. No more 0&1’s The question is how to get the JVM talking quantum?
  • 130. 1 3 0 Runtime Language Type Safe Bytecode: JIT Compiled Garbage Collected Concurrent Threaded All Platforms The JVM’s design characteristics allow us to imagine taking it to new places No other runtime environment comes close
  • 131. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION The JVM design means that we can easily imagine running JVM languages on new forms of processors. The JVM can take the application model and transform it to the something suitable for the hardware The challenge is that you have to change how you think! .
  • 132. @spoole167 Java Vendor competition and collaboration delivered • The fastest runtime environments • The most scalable runtime environments • The best garbage collectors • The greatest dynamically re-optimizing compilers • And we’re still doing it.
  • 133. Phew. • So many ways Java is going forward…
  • 134. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION @spoole167 Java is going places it’s never been before. The JVM is rising to the challenge – are you?
  • 135. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
  • 136. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION

Notas del editor

  1. Are you aware of AdoptOpenJDK? London JUG created “No one competes on build farms” – common infrastructure for all JDK builders A place to get certified builds, of known good quality. Test suites JCKs Tracking the OpenJDK patch levels (Security fixes) And most importantly, they provide binaries for Eclipse OpenJ9 And OpenJ9 was the first set of binaries to have passed certification there.
  2. GPU TestSorting 30k elements - in order to see offload to GPU being of benefit CPU trend down towards 4m elements/sec GPU trended up towards 400m elements / sec Between 3m and 300m elements approaching 100X improvement
  3. At roughly the same time that Grover published his algorithm, Bennett, Bernstein, Brassard, and Vazirani proved that no quantum solution to the problem can evaluate the function fewer than thes this  times, so Grover's algorithm is asymptotically optimal.[1]
  4. With a QC ability to execute all search's in parallel wordsearches are easy But theans