SlideShare a Scribd company logo
Sly	
  and	
  the	
  RoarVM	
  
Exploring	
  the	
  Manycore	
  Future	
  of	
  Programming	
  
                                	
  
                       Renaissance	
  Project	
  
             h=p://so@.vub.ac.be/~smarr/renaissance/	
  



                                          	
  
                                 Stefan	
  Marr	
  
              So@ware	
  Languages	
  Lab,	
  Vrije	
  Universiteit	
  Brussel	
  
                          ExaScience	
  Lab,	
  2011-­‐08-­‐24	
  
Agenda	
  
•  Context:	
  Renaissance	
  Project	
  
•  Sly	
  
       –  Demo	
  
       –  Language	
  Overview	
  
•  RoarVM	
  
       –  Intercore	
  Messaging	
  
       –  Read-­‐mostly	
  heap	
  
       –  Pauseless	
  GC	
  
•  Outlook	
  
23/08/11	
                                  2	
  
Renaissance	
  Project	
  
•  CollaboraWon	
  between	
  
       –  IBM	
  Research,	
  Portland	
  State	
  Univ,	
  VUB	
  
•  Problem	
  
       –  Parallel	
  systems	
  are	
  nondeterminisWc	
  
       –  CommunicaWon	
  is	
  expensive	
  
•  The	
  vision	
  
       –  Embrace	
  nondeterminism	
  
       –  Harness	
  emergence	
  
       –  Confidence	
  →	
  Delay	
  	
  
23/08/11	
                                                            3	
  
Demo	
  




24/08/11	
                4	
  
Possible	
  Real	
  Life	
  ApplicaWon	
  




                                             Image:	
  
                                             h=p://blogs.technet.com/b/andrew/
                                             archive/2007/08/22/olap-­‐cubes-­‐and-­‐
                                             mulWdimensional-­‐analysis.aspx	
  


23/08/11	
                                                      5	
  
Possible	
  Real	
  Life	
  ApplicaWon	
  
•  ACK:	
  ongoing	
  work	
  at	
  IBM	
  Research	
  

•  Online	
  analyWcal	
  processing	
  (OLAP)	
  
       –  Business	
  intelligence,	
  reporWng,	
  data	
  mining	
  
•  Query	
  mulWdimensional	
  data	
  sets	
  
       –  Includes	
  dependent/calculated	
  data	
  dimensions	
  
       –  Sync.	
  required	
  to	
  avoid	
  use	
  of	
  stale	
  data	
  
•  Without	
  sync.:	
  how	
  to	
  bound	
  error?	
  
       –  RecalculaWng,	
  refreshing	
  results	
  

23/08/11	
                                                                     6	
  
Sly	
  
•  Ensembles:	
  collecWons	
  represenWng	
  a	
  whole,	
  
   mulW-­‐part	
  enWWes	
  
       –  e.g.	
  a	
  flock	
  of	
  birds	
  

•  Adverbs:	
  modifiers	
  to	
  operands	
  
       –  individualLY,	
  serialLY,	
  randomLY:	
  n	
  

•  Gerunds:	
  reducWon	
  semanWcs	
  
       –  averagING,	
  selectINGpredicate,	
  ensemblING	
  


23/08/11	
                                                   7	
  
Examples	
  of	
  Boids	
  
•  Every	
  boid	
  is	
  its	
  own	
  thread,	
  no	
  synch.	
  
	
  


computeCentroid	
  
	
  	
  	
  	
  ^	
  self	
  flock	
  boids	
  averagINGserialLYposition	
  
	
  

computeNeighbors	
  
	
  	
  	
  	
  ^	
  self	
  flock	
  boids	
  selectINGisNear:	
  self	
  
	
  

matchVelocityWithNeighbors	
  
	
  	
  	
  	
  ^	
  self	
  neighbors	
  averagINGvelocity	
  /	
  8.0	
  
	
  
More	
  details:	
  h=p://so@.vub.ac.be/~smarr/renaissance/sly3-­‐overview/	
  

23/08/11	
                                                                    8	
  
Virtual	
  Machines	
  for	
  Manycore	
  Architectures	
  

    ROARVM	
  


23/08/11	
                                                        9	
  
The	
  Manycore	
  Problem	
  
                                                                                                               (from	
  [2])	
  
•  Shared	
  memory	
  	
  




                                              10	
  words	
  
   access	
  very	
  expensive	
  




                                              1	
  word	
  
	
  
                                                                0	
        250	
       500	
          750	
          1000	
  
       –  Inter-­‐core	
  messaging	
                              DMA	
                         Load	
  Mem.	
  
       –  Purpose-­‐specific	
  networks	
                          Msg:	
  3	
  hops	
           Msg:	
  1	
  hop	
  

23/08/11	
                                                                                            10	
  
Architecture	
  Overview	
  
•  Core	
  =	
  Interpreter	
  Instance	
  =	
  OS	
  Process/Thread	
  
•  ‘Single	
  System	
  Image’/shared	
  memory	
  VM	
  




23/08/11	
                                                    11	
  
Message-­‐Passing	
  between	
  Interpreters	
  

•  To	
  avoid	
  main-­‐memory	
  latency	
  	
  
•  VM	
  internal	
  use	
  only	
  
       –  GC	
  
               •  preGCAcWon	
  +	
  ACK	
  
               •  doAllRootsHere	
  	
  +	
  Response,	
  …	
  
       –  SafepoinWng	
  
               •  requestSafepointOnOtherCores	
  
               •  grantSafepoint,	
  …	
  


23/08/11	
                                                        12	
  
Memory	
  System	
  
•  Object	
  table,	
  moving	
  stop-­‐the-­‐world	
  GC	
  
       –  Usually	
  allocaWon	
  on	
  heap	
  of	
  local	
  core	
  




                                       Object	
  Heap	
  




24/08/11	
                                                                13	
  
Memory	
  System	
  
•  Object	
  table,	
  moving	
  stop-­‐the-­‐world	
  GC	
  
       –  Usually	
  allocaWon	
  on	
  heap	
  of	
  local	
  core	
  
                                                                                   Global	
  
                                                                                   Safepoint	
  




                                       Object	
  Heap	
  




23/08/11	
                                                                14	
  
Read-­‐Mostly	
  Heap	
  [2]	
  
•  TILE64	
  cache	
  coherency	
  VERY	
  expensive	
  
       –  Read-­‐mostly	
  heap:	
  incoherent,	
  ‘user	
  managed	
  CC’	
  	
  

                            Cache	
  	
  	
  




                                                Cache	
  




                                                                  Cache	
  
Read/Write	
  


Read-­‐mostly	
  



23/08/11	
                                                                    15	
  
Stop-­‐the-­‐World	
  in	
  Manycore	
  Era?	
  


                                Work	
  
Run	
  out	
  of	
  space	
  
                                           Arrival	
  at	
  safe	
  point	
  



                                           Do	
  garbage	
  collect	
  




                                Work	
  



   23/08/11	
                                                           16	
  
Stop-­‐the-­‐World	
  in	
  Manycore	
  Era?	
  

                                                       …	
  
                                                       …	
  
                                                       …	
  




                                                       …	
  

23/08/11	
                                    17	
  
Pauseless	
  GC	
  
•  Based	
  on	
  a	
  paper	
  by	
  Click	
  et	
  al.,	
  2005	
  [3]	
  
•  No	
  global	
  synchronizaWon	
  
       –  Local	
  checkpoints:	
  1	
  mutator	
  and	
  GC	
  thread	
  
•  ConWnuously	
  running	
  GC	
  threads	
  
•  Load-­‐Value-­‐barrier	
  +	
  self-­‐healing	
  of	
  stale	
  refs.	
  
•  Constant	
  performance	
  overhead	
  
       –  Without	
  hardware	
  support	
  
•  Easy	
  to	
  implement	
  (2	
  MA	
  students,	
  1	
  month)	
  

23/08/11	
                                                                     18	
  
OUTLOOK	
  


23/08/11	
        19	
  
Conclusion	
  
•  Sly:	
  map/reduce-­‐like	
  programming	
  model	
  
       –  Based	
  on	
  ensembles,	
  adverbs	
  and	
  gerunds	
  


•  RoarVM	
  
       –  Research	
  arWfact,	
  stable,	
  used	
  daily	
  
       –  No	
  opWmizaWon	
  of	
  sequenWal	
  performance	
  
       –  Tested	
  up	
  to	
  59cores	
  
       –  Shows	
  weak	
  scalability	
  

23/08/11	
                                                             20	
  
Outlook	
  
•  Sly	
  
       –  Ideas	
  for	
  non-­‐linear	
  syntax	
  
       –  Algorithms	
  for	
  nondeterminisWc	
  programming	
  
•  RoarVM:	
  focus	
  on	
  research	
  
       –  VMs	
  are	
  mulW-­‐language	
  plarorms	
  
       –  Support	
  for	
  concurrency	
  models	
  
       –  DSLs	
  for	
  specific	
  concurrent/parallel	
  problems	
  
       –  Language	
  guarantees	
  in	
  inter-­‐model	
  interacWon	
  

23/08/11	
                                                          21	
  
References	
  and	
  Material	
  
[1]	
  J.	
  Pallas	
  and	
  D.	
  Ungar.	
  MulWprocessor	
  Smalltalk:	
  A	
  Case	
  Study	
  of	
  a	
  
     MulWprocessor-­‐based	
  Programming	
  Environment.	
  In	
  PLDI	
  ’88,	
  p.	
  
     268–277.	
  ACM,	
  1988.	
  
[2]	
  D.	
  Ungar	
  and	
  S.	
  Adams.	
  HosWng	
  an	
  Object	
  Heap	
  on	
  Manycore	
  
     Hardware:	
  An	
  ExploraWon.	
  In	
  DLS’09,	
  p.	
  99-­‐110.	
  ACM,	
  2009.	
  
[3]	
  C.	
  Click,	
  G.	
  Tene,	
  and	
  M.	
  Wolf.	
  The	
  Pauseless	
  GC	
  Algorithm.	
  In	
  VEE	
  
     ’05,	
  p.	
  46-­‐56.	
  ACM,	
  2005.	
  
[4]	
  D.	
  Ungar,	
  D.	
  Kimelman,	
  and	
  S.	
  Adams.	
  Inconsistency	
  Robustness	
  for	
  
     Scalability	
  in	
  InteracWve	
  Concurrent‑Update	
  In-­‐Memory	
  MOLAP	
  
     Cubes.	
  In	
  Inconsistency	
  Robustness	
  Symposium	
  2011.	
  
[5]	
  P.	
  Inostroza	
  Valdera.	
  The	
  Sly3	
  Programming	
  Language:	
  An	
  
     IntroducWon	
  and	
  Analysis.	
  
     h=p://so@.vub.ac.be/~smarr/renaissance/sly3-­‐overview/	
  
[6]	
  Renaissance	
  Project:	
  h=p://so@.vub.ac.be/~smarr/renaissance/	
  
	
  
23/08/11	
                                Roundup	
  and	
  Conclusion	
                             22	
  

More Related Content

What's hot

Introduction to Kotlin coroutines
Introduction to Kotlin coroutinesIntroduction to Kotlin coroutines
Introduction to Kotlin coroutines
Roman Elizarov
 
Functional Programming and Concurrency Patterns in Scala
Functional Programming and Concurrency Patterns in ScalaFunctional Programming and Concurrency Patterns in Scala
Functional Programming and Concurrency Patterns in Scala
kellogh
 
Blocks & Grand Central Dispatch
Blocks & Grand Central DispatchBlocks & Grand Central Dispatch
Blocks & Grand Central Dispatch
Robin Lu
 
Go: What's Different ?
Go: What's Different ?Go: What's Different ?
Go: What's Different ?
Tarun Vashisth
 
RISC-V on Edge: Porting EVE and Alpine Linux to RISC-V
RISC-V on Edge: Porting EVE and Alpine Linux to RISC-VRISC-V on Edge: Porting EVE and Alpine Linux to RISC-V
RISC-V on Edge: Porting EVE and Alpine Linux to RISC-V
ScyllaDB
 
The Future of Node - @rvagg - NodeConf Christchurch 2015
The Future of Node - @rvagg - NodeConf Christchurch 2015The Future of Node - @rvagg - NodeConf Christchurch 2015
The Future of Node - @rvagg - NodeConf Christchurch 2015
rvagg
 
RPC in Smalltalk
 RPC in Smalltalk RPC in Smalltalk
RPC in Smalltalk
ESUG
 
Concurrecy in Ruby
Concurrecy in RubyConcurrecy in Ruby
Concurrecy in Ruby
Vesna Doknic
 
Rust 101 (2017 edition)
Rust 101 (2017 edition)Rust 101 (2017 edition)
Rust 101 (2017 edition)
Robert 'Bob' Reyes
 
Explaining machine learning models with python
Explaining machine learning models with pythonExplaining machine learning models with python
Explaining machine learning models with python
Andrey Vykhodtsev
 
Summit 16: Stop Writing Legacy Code!
Summit 16: Stop Writing Legacy Code!Summit 16: Stop Writing Legacy Code!
Summit 16: Stop Writing Legacy Code!
OPNFV
 
Unikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy WayUnikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy Way
ScyllaDB
 
An End to Order (many cores with java, session two)
An End to Order (many cores with java, session two)An End to Order (many cores with java, session two)
An End to Order (many cores with java, session two)
Robert Burrell Donkin
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
Is It Faster to Go with Redpanda Transactions than Without Them?!
Is It Faster to Go with Redpanda Transactions than Without Them?!Is It Faster to Go with Redpanda Transactions than Without Them?!
Is It Faster to Go with Redpanda Transactions than Without Them?!
ScyllaDB
 
Lcna example-2012
Lcna example-2012Lcna example-2012
Lcna example-2012
Gluster.org
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in Rust
ScyllaDB
 
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006 Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
Real Nobile
 
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016
Brendan Eich
 
Clojure 12 Minute Talk
Clojure 12 Minute TalkClojure 12 Minute Talk
Clojure 12 Minute Talk
Daniel Glauser
 

What's hot (20)

Introduction to Kotlin coroutines
Introduction to Kotlin coroutinesIntroduction to Kotlin coroutines
Introduction to Kotlin coroutines
 
Functional Programming and Concurrency Patterns in Scala
Functional Programming and Concurrency Patterns in ScalaFunctional Programming and Concurrency Patterns in Scala
Functional Programming and Concurrency Patterns in Scala
 
Blocks & Grand Central Dispatch
Blocks & Grand Central DispatchBlocks & Grand Central Dispatch
Blocks & Grand Central Dispatch
 
Go: What's Different ?
Go: What's Different ?Go: What's Different ?
Go: What's Different ?
 
RISC-V on Edge: Porting EVE and Alpine Linux to RISC-V
RISC-V on Edge: Porting EVE and Alpine Linux to RISC-VRISC-V on Edge: Porting EVE and Alpine Linux to RISC-V
RISC-V on Edge: Porting EVE and Alpine Linux to RISC-V
 
The Future of Node - @rvagg - NodeConf Christchurch 2015
The Future of Node - @rvagg - NodeConf Christchurch 2015The Future of Node - @rvagg - NodeConf Christchurch 2015
The Future of Node - @rvagg - NodeConf Christchurch 2015
 
RPC in Smalltalk
 RPC in Smalltalk RPC in Smalltalk
RPC in Smalltalk
 
Concurrecy in Ruby
Concurrecy in RubyConcurrecy in Ruby
Concurrecy in Ruby
 
Rust 101 (2017 edition)
Rust 101 (2017 edition)Rust 101 (2017 edition)
Rust 101 (2017 edition)
 
Explaining machine learning models with python
Explaining machine learning models with pythonExplaining machine learning models with python
Explaining machine learning models with python
 
Summit 16: Stop Writing Legacy Code!
Summit 16: Stop Writing Legacy Code!Summit 16: Stop Writing Legacy Code!
Summit 16: Stop Writing Legacy Code!
 
Unikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy WayUnikraft: Fast, Specialized Unikernels the Easy Way
Unikraft: Fast, Specialized Unikernels the Easy Way
 
An End to Order (many cores with java, session two)
An End to Order (many cores with java, session two)An End to Order (many cores with java, session two)
An End to Order (many cores with java, session two)
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
Is It Faster to Go with Redpanda Transactions than Without Them?!
Is It Faster to Go with Redpanda Transactions than Without Them?!Is It Faster to Go with Redpanda Transactions than Without Them?!
Is It Faster to Go with Redpanda Transactions than Without Them?!
 
Lcna example-2012
Lcna example-2012Lcna example-2012
Lcna example-2012
 
Whoops! I Rewrote It in Rust
Whoops! I Rewrote It in RustWhoops! I Rewrote It in Rust
Whoops! I Rewrote It in Rust
 
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006 Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
Actors, a Unifying Pattern for Scalable Concurrency | C4 2006
 
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016
 
Clojure 12 Minute Talk
Clojure 12 Minute TalkClojure 12 Minute Talk
Clojure 12 Minute Talk
 

Viewers also liked

PharoJS
PharoJSPharoJS
PharoJS
ESUG
 
Sly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with SmalltalkSly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with Smalltalk
Stefan Marr
 
The Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemThe Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the Ecosystem
ESUG
 
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Akihiro Suda
 
Writing Modular Command-line Apps with App::Cmd
Writing Modular Command-line Apps with App::CmdWriting Modular Command-line Apps with App::Cmd
Writing Modular Command-line Apps with App::Cmd
Ricardo Signes
 
Beyond Floating Point – Next Generation Computer Arithmetic
Beyond Floating Point – Next Generation Computer ArithmeticBeyond Floating Point – Next Generation Computer Arithmetic
Beyond Floating Point – Next Generation Computer Arithmetic
inside-BigData.com
 

Viewers also liked (6)

PharoJS
PharoJSPharoJS
PharoJS
 
Sly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with SmalltalkSly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with Smalltalk
 
The Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the EcosystemThe Object Repository - Pulling Objects out of the Ecosystem
The Object Repository - Pulling Objects out of the Ecosystem
 
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...Tackling non-determinism in Hadoop - Testing and debugging distributed system...
Tackling non-determinism in Hadoop - Testing and debugging distributed system...
 
Writing Modular Command-line Apps with App::Cmd
Writing Modular Command-line Apps with App::CmdWriting Modular Command-line Apps with App::Cmd
Writing Modular Command-line Apps with App::Cmd
 
Beyond Floating Point – Next Generation Computer Arithmetic
Beyond Floating Point – Next Generation Computer ArithmeticBeyond Floating Point – Next Generation Computer Arithmetic
Beyond Floating Point – Next Generation Computer Arithmetic
 

Similar to Sly and the RoarVM: Exploring the Manycore Future of Programming

OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
MayaData
 
Community cloud antonioseverien
Community cloud antonioseverienCommunity cloud antonioseverien
Community cloud antonioseverien
Antonio Severien
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQLPeter Eisentraut
 
Geek out 2014-lagergren-final
Geek out 2014-lagergren-finalGeek out 2014-lagergren-final
Geek out 2014-lagergren-final
Marcus Lagergren
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
MayaData
 
Ceph in 2023 and Beyond.pdf
Ceph in 2023 and Beyond.pdfCeph in 2023 and Beyond.pdf
Ceph in 2023 and Beyond.pdf
Clyso GmbH
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
 
«Большие объёмы данных и сборка мусора в Java
«Большие объёмы данных и сборка мусора в Java«Большие объёмы данных и сборка мусора в Java
«Большие объёмы данных и сборка мусора в Java
Olga Lavrentieva
 
Shannon McFarland OpenStack/Cisco Intro
Shannon McFarland OpenStack/Cisco IntroShannon McFarland OpenStack/Cisco Intro
Shannon McFarland OpenStack/Cisco Intro
Shannon McFarland
 
My sql with enterprise storage
My sql with enterprise storageMy sql with enterprise storage
My sql with enterprise storageCaroline_Rose
 
Container Mythbusters
Container MythbustersContainer Mythbusters
Container Mythbusters
inside-BigData.com
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
pradeepfn
 
Ceph in the GRNET cloud stack
Ceph in the GRNET cloud stackCeph in the GRNET cloud stack
Ceph in the GRNET cloud stack
Nikos Kormpakis
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
kanedafromparis
 
Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)Marcos García
 
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
Mohamed Sayed
 
Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)
Martijn Verburg
 
Memory model
Memory modelMemory model
Memory model
Yi-Hsiu Hsu
 
An In-depth look at application containers
An In-depth look at application containersAn In-depth look at application containers
An In-depth look at application containers
John Kinsella
 
Keeping OpenStack storage trendy with Ceph and containers
Keeping OpenStack storage trendy with Ceph and containersKeeping OpenStack storage trendy with Ceph and containers
Keeping OpenStack storage trendy with Ceph and containers
Sage Weil
 

Similar to Sly and the RoarVM: Exploring the Manycore Future of Programming (20)

OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
OpenEBS; asymmetrical block layer in user-space breaking the million IOPS bar...
 
Community cloud antonioseverien
Community cloud antonioseverienCommunity cloud antonioseverien
Community cloud antonioseverien
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
Geek out 2014-lagergren-final
Geek out 2014-lagergren-finalGeek out 2014-lagergren-final
Geek out 2014-lagergren-final
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
 
Ceph in 2023 and Beyond.pdf
Ceph in 2023 and Beyond.pdfCeph in 2023 and Beyond.pdf
Ceph in 2023 and Beyond.pdf
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris Meetup
 
«Большие объёмы данных и сборка мусора в Java
«Большие объёмы данных и сборка мусора в Java«Большие объёмы данных и сборка мусора в Java
«Большие объёмы данных и сборка мусора в Java
 
Shannon McFarland OpenStack/Cisco Intro
Shannon McFarland OpenStack/Cisco IntroShannon McFarland OpenStack/Cisco Intro
Shannon McFarland OpenStack/Cisco Intro
 
My sql with enterprise storage
My sql with enterprise storageMy sql with enterprise storage
My sql with enterprise storage
 
Container Mythbusters
Container MythbustersContainer Mythbusters
Container Mythbusters
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
Ceph in the GRNET cloud stack
Ceph in the GRNET cloud stackCeph in the GRNET cloud stack
Ceph in the GRNET cloud stack
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)
 
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
 
Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)
 
Memory model
Memory modelMemory model
Memory model
 
An In-depth look at application containers
An In-depth look at application containersAn In-depth look at application containers
An In-depth look at application containers
 
Keeping OpenStack storage trendy with Ceph and containers
Keeping OpenStack storage trendy with Ceph and containersKeeping OpenStack storage trendy with Ceph and containers
Keeping OpenStack storage trendy with Ceph and containers
 

More from Stefan Marr

Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Stefan Marr
 
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingSeminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
Stefan Marr
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
Stefan Marr
 
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Stefan Marr
 
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Stefan Marr
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
Stefan Marr
 
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Cloud PARTE: Elastic Complex Event Processing based on Mobile ActorsCloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Stefan Marr
 
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual MachinesSupporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Stefan Marr
 
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Stefan Marr
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Stefan Marr
 
PHP.next: Traits
PHP.next: TraitsPHP.next: Traits
PHP.next: Traits
Stefan Marr
 
The Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore EraThe Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore Era
Stefan Marr
 
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Stefan Marr
 
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Stefan Marr
 
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Stefan Marr
 
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Stefan Marr
 
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Stefan Marr
 
VMADL: An Architecture Definition Language for Variability and Composition ...
VMADL: An Architecture Definition Language  for Variability and Composition  ...VMADL: An Architecture Definition Language  for Variability and Composition  ...
VMADL: An Architecture Definition Language for Variability and Composition ...
Stefan Marr
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?Stefan Marr
 

More from Stefan Marr (20)

Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
 
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingSeminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
 
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
 
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
 
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Cloud PARTE: Elastic Complex Event Processing based on Mobile ActorsCloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
 
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual MachinesSupporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual Machines
 
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
 
PHP.next: Traits
PHP.next: TraitsPHP.next: Traits
PHP.next: Traits
 
The Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore EraThe Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore Era
 
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
 
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
 
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
 
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
 
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
 
VMADL: An Architecture Definition Language for Variability and Composition ...
VMADL: An Architecture Definition Language  for Variability and Composition  ...VMADL: An Architecture Definition Language  for Variability and Composition  ...
VMADL: An Architecture Definition Language for Variability and Composition ...
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?Traits: A New Language Feature for PHP?
Traits: A New Language Feature for PHP?
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Sly and the RoarVM: Exploring the Manycore Future of Programming

  • 1. Sly  and  the  RoarVM   Exploring  the  Manycore  Future  of  Programming     Renaissance  Project   h=p://so@.vub.ac.be/~smarr/renaissance/     Stefan  Marr   So@ware  Languages  Lab,  Vrije  Universiteit  Brussel   ExaScience  Lab,  2011-­‐08-­‐24  
  • 2. Agenda   •  Context:  Renaissance  Project   •  Sly   –  Demo   –  Language  Overview   •  RoarVM   –  Intercore  Messaging   –  Read-­‐mostly  heap   –  Pauseless  GC   •  Outlook   23/08/11   2  
  • 3. Renaissance  Project   •  CollaboraWon  between   –  IBM  Research,  Portland  State  Univ,  VUB   •  Problem   –  Parallel  systems  are  nondeterminisWc   –  CommunicaWon  is  expensive   •  The  vision   –  Embrace  nondeterminism   –  Harness  emergence   –  Confidence  →  Delay     23/08/11   3  
  • 5. Possible  Real  Life  ApplicaWon   Image:   h=p://blogs.technet.com/b/andrew/ archive/2007/08/22/olap-­‐cubes-­‐and-­‐ mulWdimensional-­‐analysis.aspx   23/08/11   5  
  • 6. Possible  Real  Life  ApplicaWon   •  ACK:  ongoing  work  at  IBM  Research   •  Online  analyWcal  processing  (OLAP)   –  Business  intelligence,  reporWng,  data  mining   •  Query  mulWdimensional  data  sets   –  Includes  dependent/calculated  data  dimensions   –  Sync.  required  to  avoid  use  of  stale  data   •  Without  sync.:  how  to  bound  error?   –  RecalculaWng,  refreshing  results   23/08/11   6  
  • 7. Sly   •  Ensembles:  collecWons  represenWng  a  whole,   mulW-­‐part  enWWes   –  e.g.  a  flock  of  birds   •  Adverbs:  modifiers  to  operands   –  individualLY,  serialLY,  randomLY:  n   •  Gerunds:  reducWon  semanWcs   –  averagING,  selectINGpredicate,  ensemblING   23/08/11   7  
  • 8. Examples  of  Boids   •  Every  boid  is  its  own  thread,  no  synch.     computeCentroid          ^  self  flock  boids  averagINGserialLYposition     computeNeighbors          ^  self  flock  boids  selectINGisNear:  self     matchVelocityWithNeighbors          ^  self  neighbors  averagINGvelocity  /  8.0     More  details:  h=p://so@.vub.ac.be/~smarr/renaissance/sly3-­‐overview/   23/08/11   8  
  • 9. Virtual  Machines  for  Manycore  Architectures   ROARVM   23/08/11   9  
  • 10. The  Manycore  Problem   (from  [2])   •  Shared  memory     10  words   access  very  expensive   1  word     0   250   500   750   1000   –  Inter-­‐core  messaging   DMA   Load  Mem.   –  Purpose-­‐specific  networks   Msg:  3  hops   Msg:  1  hop   23/08/11   10  
  • 11. Architecture  Overview   •  Core  =  Interpreter  Instance  =  OS  Process/Thread   •  ‘Single  System  Image’/shared  memory  VM   23/08/11   11  
  • 12. Message-­‐Passing  between  Interpreters   •  To  avoid  main-­‐memory  latency     •  VM  internal  use  only   –  GC   •  preGCAcWon  +  ACK   •  doAllRootsHere    +  Response,  …   –  SafepoinWng   •  requestSafepointOnOtherCores   •  grantSafepoint,  …   23/08/11   12  
  • 13. Memory  System   •  Object  table,  moving  stop-­‐the-­‐world  GC   –  Usually  allocaWon  on  heap  of  local  core   Object  Heap   24/08/11   13  
  • 14. Memory  System   •  Object  table,  moving  stop-­‐the-­‐world  GC   –  Usually  allocaWon  on  heap  of  local  core   Global   Safepoint   Object  Heap   23/08/11   14  
  • 15. Read-­‐Mostly  Heap  [2]   •  TILE64  cache  coherency  VERY  expensive   –  Read-­‐mostly  heap:  incoherent,  ‘user  managed  CC’     Cache       Cache   Cache   Read/Write   Read-­‐mostly   23/08/11   15  
  • 16. Stop-­‐the-­‐World  in  Manycore  Era?   Work   Run  out  of  space   Arrival  at  safe  point   Do  garbage  collect   Work   23/08/11   16  
  • 17. Stop-­‐the-­‐World  in  Manycore  Era?   …   …   …   …   23/08/11   17  
  • 18. Pauseless  GC   •  Based  on  a  paper  by  Click  et  al.,  2005  [3]   •  No  global  synchronizaWon   –  Local  checkpoints:  1  mutator  and  GC  thread   •  ConWnuously  running  GC  threads   •  Load-­‐Value-­‐barrier  +  self-­‐healing  of  stale  refs.   •  Constant  performance  overhead   –  Without  hardware  support   •  Easy  to  implement  (2  MA  students,  1  month)   23/08/11   18  
  • 20. Conclusion   •  Sly:  map/reduce-­‐like  programming  model   –  Based  on  ensembles,  adverbs  and  gerunds   •  RoarVM   –  Research  arWfact,  stable,  used  daily   –  No  opWmizaWon  of  sequenWal  performance   –  Tested  up  to  59cores   –  Shows  weak  scalability   23/08/11   20  
  • 21. Outlook   •  Sly   –  Ideas  for  non-­‐linear  syntax   –  Algorithms  for  nondeterminisWc  programming   •  RoarVM:  focus  on  research   –  VMs  are  mulW-­‐language  plarorms   –  Support  for  concurrency  models   –  DSLs  for  specific  concurrent/parallel  problems   –  Language  guarantees  in  inter-­‐model  interacWon   23/08/11   21  
  • 22. References  and  Material   [1]  J.  Pallas  and  D.  Ungar.  MulWprocessor  Smalltalk:  A  Case  Study  of  a   MulWprocessor-­‐based  Programming  Environment.  In  PLDI  ’88,  p.   268–277.  ACM,  1988.   [2]  D.  Ungar  and  S.  Adams.  HosWng  an  Object  Heap  on  Manycore   Hardware:  An  ExploraWon.  In  DLS’09,  p.  99-­‐110.  ACM,  2009.   [3]  C.  Click,  G.  Tene,  and  M.  Wolf.  The  Pauseless  GC  Algorithm.  In  VEE   ’05,  p.  46-­‐56.  ACM,  2005.   [4]  D.  Ungar,  D.  Kimelman,  and  S.  Adams.  Inconsistency  Robustness  for   Scalability  in  InteracWve  Concurrent‑Update  In-­‐Memory  MOLAP   Cubes.  In  Inconsistency  Robustness  Symposium  2011.   [5]  P.  Inostroza  Valdera.  The  Sly3  Programming  Language:  An   IntroducWon  and  Analysis.   h=p://so@.vub.ac.be/~smarr/renaissance/sly3-­‐overview/   [6]  Renaissance  Project:  h=p://so@.vub.ac.be/~smarr/renaissance/     23/08/11   Roundup  and  Conclusion   22