Weitere ähnliche Inhalte Ähnlich wie JVMCON Java in the 21st Century: are you thinking far enough ahead? (20) Mehr von Steve Poole (20) Kürzlich hochgeladen (20) JVMCON Java in the 21st Century: are you thinking far enough ahead?1. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Java in the 21 Century: Are
you thinking far enough
ahead?
JVMCON 2018
2. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
This talk may seem to be about possible futures
for Java and the JVM
3. © 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
?
4. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
So really this talk is about your future.
6. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Thinking Java?
Still learning about features in Java 8?
Looking at Java 9 or going to Java 10?
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?
7. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167It’s easy to focus on now – it’s what we get paid for
8. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
What about a wider view?
What does it mean for EE now Oracle are donating 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?
10. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Economics
Faster, cheaper, easier, better …
11. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Economics
Faster, cheaper, easier, better …
Like ‘Cloud’
12. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
From a JVM developers point of view…
14. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
You wanted Very long running, efficient,
monolithic applications
You were willing to trade startup time
for throughput
You were in it for the long
haul
15. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Short lived, container based, micro
service oriented, instant-on, always
available, cross server, polyglot
services
Now you want
16. © 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
You want all of these models
18. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Is to innovate faster – or loose to the competition
The immediate challenge for Java and the JVM
19. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
And to be fair – the JVM is rising to the challenges of Cloud
20. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
predictable
consistent cadence
easier migration increased innovation
There are good signs that our
ecosystem is positioning for a faster
pace
21. © 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
Enabling everyone to participate
(and offering multiple starting points)
22. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
lambda
streams
modules
reactive streams
panama
valhalla
penrose
amber
Giving Java innovation a faster cadence
23. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Tomcat
Glassfish
Open Liberty
…
OpenJDK + Hotspot
OpenJDK + OpenJ9
J2EE
Micro-profile
And a variety of implementations to choose
from
24. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Container
awareness
Re-optimised JITs
Re-tuned GC’s
AOT
Generating New JVM
technologies
Jit As A Service
<your idea here>
25. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Cloud. We do know what to do.
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.
How do you do things like…
26. © 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.
27. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167Some people ask - Why should we use Java?
28. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
IBM support three open runtimes
because between them they cover all
the bases for Cloud: both developer
communities and technical
capabilities
29. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
We’re going to take Java to places its never been
before.
And you’re coming too.
Here’s why…
32. 3
2
Scripting Language Modern Native LanguageRuntime Language
Type Safe Type Safe, with InferenceDynamically Typed
Type Safe means JIT’s or compilers can optimise code
significantly better than a dynamically type language
Since an int is always an int
In Javascript a int is a thing until the very last minute
33. 3
3
Scripting Language Modern Native LanguageRuntime Language
Type Safe Type Safe, with InferenceDynamically Typed
Bytecode: JIT Compiled JIT Compiled Pre-Compiled
JIT compilers can optimize as the workload changes.
Pre compiled code can’t do that
34. 3
4
Scripting Language Modern Native LanguageRuntime Language
Type Safe Type Safe, with InferenceDynamically Typed
Bytecode: JIT Compiled JIT Compiled Pre-Compiled
Garbage Collected Garbage Collected Reference Counted
GC can run in the background at the cost of a buffer of memory. Can be
parallelized more effectively and more accurately (no circular
references)
35. 3
5
Scripting Language Modern Native LanguageRuntime Language
Type Safe Type Safe, with InferenceDynamically Typed
Bytecode: JIT Compiled JIT Compiled Pre-Compiled
Garbage Collected Garbage Collected Reference Counted
Concurrent Threaded Single Thread Concurrent Work Pool
Single threaded means no locking or syncronisation needed. But CPU
workload is a major Achilles heel
36. 3
6
Scripting Language Modern Native LanguageRuntime Language
Type Safe Type Safe, with InferenceDynamically Typed
Bytecode: JIT Compiled JIT Compiled Pre-Compiled
Garbage Collected Garbage Collected Reference Counted
Concurrent Threaded Single Thread Concurrent Work Pool
All Platforms All Platforms Apple Platforms and Linux
37. 3
7
Runtime Language
Type Safe
Bytecode: JIT Compiled
Garbage Collected
Concurrent Threaded
All Platforms
These characteristics
let us take the JVM
anywhere.
No other runtime
environment comes
close
39. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
The biggest challenge for all of us is
learning to solve problems differently
40. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
The new problems we face are not ones
we can easily internalize, visualize
or even compute
• The reality of data analytics
• The promise of AI
These drivers are changing the face of computing as
we know it. And it’s barely started
41. © 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
42. © 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
43. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Two or three people - easy
What about 10? - how many combinations to consider?
44. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Two or three people - easy
What about 10? - how many combinations to consider?
Going to need
some help here
3628800
45. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Two or three people - easy
What about 150?
46. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
571338395644585459047893286526105400318
955357860112641825483758331798291248453
983931265744886753111453771078787468542
041626662501986845044663559491959220665
749425920957357789293253572904449624724
054167907221184454371222696755200000000
00000000000000000000000000000
Going to need a lot of help
here
47. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
@spoole167
Machine Learning works because you design
and teach it – do you know how to do that?
49. 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
50. © 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
51. 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
52. 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;}
53. © 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?
55. © 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?
56. 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--
; }
57. 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
58. © 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
60. © 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)?
61. © 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?
62. © 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)
63. © 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
64. © 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
65. © 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
66. © 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
+
67. © 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
68. if(a) {
// do this
} else {
// do this instead
}
On a standard CPU
Each thread runs in parallel
With its own ’program counter’
Independently.if(a) {
// do this
} else {
// do this instead
}
Step 1
Step 1
Step 2
Step 2
69. if(a) {
// do this
} else {
// do this instead
}
On a GPU
Each thread runs in sync
sharing a program counter
The length of time for the
program to complete is
a factor of all the
paths traveled
GPU’s are best when
data driven!
if(a) {
// do this
} else {
// do this instead
}
Step 1
Step 1
Step 2
Step 3
70. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
PC Thread 1 PC Thread 2 PC Thread 3 PC Thread 4 PC Thread 5
Thing 1 Thing 1 Thing 1 Thing 1 Thing 1
Thing 2
Thing 3
Thing 4
Thing 5 Thing 5
Thing 6 Thing 6 Thing 6 Thing 6
PC Thread 1 Thread 2 Thread 3 Thread 4 Thread 5
Thing 1 Thing 1 Thing 1 Thing 1 Thing 1
Thing 2
Thing 3
Thing 4
Thing 5 Thing 5
Thing 6 Thing 6 Thing 6 Thing 6
GPU
CPU
71. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
PC Thread 1 PC Thread 2 PC Thread 3 PC Thread 4 PC Thread 5
Thing 1 Thing 1 Thing 1 Thing 1 Thing 1
Thing 2
Thing 3
Thing 4
Thing 5 Thing 5
Thing 6 Thing 6 Thing 6 Thing 6
PC Thread 1 Thread 2 Thread 3 Thread 4 Thread 5
Thing 1 Thing 1 Thing 1 Thing 1 Thing 1
Thing 2
Thing 3
Thing 4
Thing 5 Thing 5
Thing 6 Thing 6 Thing 6 Thing 6
GPU
CPU
72. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
PC Thread 1 PC Thread 2 PC Thread 3 PC Thread 4 PC Thread 5
Thing 1 Thing 1 Thing 1 Thing 1 Thing 1
Thing 2
Thing 3
Thing 4
Thing 5 Thing 5
Thing 6 Thing 6 Thing 6 Thing 6
PC Thread 1 Thread 2 Thread 3 Thread 4 Thread 5
Thing 1 Thing 1 Thing 1 Thing 1 Thing 1
Thing 2
Thing 3
Thing 4
Thing 5 Thing 5
Thing 6 Thing 6 Thing 6 Thing 6
GPU
CPU
73. © 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 your searching for?
Do you create a list of every possible word?
74. © 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?
75. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
77. © 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
78. © 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
80. © 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 this
search problem is solved in no fewer
than O(N) evaluations
81. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
0 - ish
Z Rotation
or ‘phase’
1 - ish
Y Rotation or ‘pha
X Rotation or ‘phase’
86. 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
87. 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
88. 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
89. 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
90. 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
91. 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
92. © 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/
Real life demo?
93. © 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
94. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
The JVM design means that we can easily
imagine running Java on new forms of processors. It may
not end up being todays Java but it will be close
The challenge is that you have to change how you think!
And as for Cloud?
Containers, fast startups, small memory footprints,
Jit as a Sevice?
That’s happening today. Think about tomorrow.
95. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
OPPORTUNITY:
Data flows from every device,
replacing guessing and
approximations with precise
information. Yet 80% of this
data is unstructured; therefore,
invisible to computers and of
limited use to business.
HEALTHCARE DATA GOVERNMENT & EDUCATION DATA
99% 88% 94% 84%
Healthcare data comes from
sources such as:
Government & education data
comes from sources such as:
Patient
Sensors
Electronic
Medical
Records
Test
Results
Vehicle Fleet
Sensors
Traffic
Sensors
Student
Evaluations
UTILITIES DATA MEDIA DATA
93% 84% 97% 82%
Utilities data comes from sources
such as:
Media data comes from sources
such as:
Utility
Sensors
Employee
Sensors
Location
Data
Video
and Film
Images Audio
By 2020,
of new information will
be created every
second for every
human being on
the planet.
growth by 2017 unstructured growth by 2017 unstructured
1.7 MB growth by 2017 unstructured growth by 2017 unstructured
96. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
The world is
being reinvented
in code. Java code.
HOW, AND WHY NOW?
97. © 2015 INTERNATIONAL BUSINESS MACHINES CORPORATION
Computing is
entering a new
cognitive era.
What do you Think
when you solve a
problem?
HOW, AND WHY NOW?
Hinweis der Redaktion 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 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] With a QC ability to execute all search's in parallel wordsearches are easy
But theans