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 (20)

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

Viewers also liked (6)

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

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

PDF
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Stefan Marr
 
PDF
Self-awareness and Adaptive Technologies: the Future of Operating Systems?
FET AWARE project - Self Awareness in Autonomic Systems
 
PDF
Peyton jones-2011-parallel haskell-the_future
Takayuki Muranushi
 
PDF
Simon Peyton Jones: Managing parallelism
Skills Matter
 
PDF
Keynote joearmstrong
Sentifi
 
PDF
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
siouxhotornot
 
PPTX
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Stefan Marr
 
PDF
近未来的並列 LL
Motohiro Takayama
 
PDF
GoLightly: Building VM-based language runtimes in Go
Eleanor McHugh
 
PPTX
Retargeting Embedded Software Stack for Many-Core Systems
Sumant Tambe
 
PDF
Abstractions at Scale – Our Experiences at Twitter
Leonidas Tsementzis
 
PDF
Challenges in Maintaining a High Performance Search Engine Written in Java
lucenerevolution
 
KEY
Erjang - A journey into Erlang-land
Kresten Krab Thorup
 
PDF
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
PDF
A Java Fork_Join Framework
Hiroshi Ono
 
PDF
Functional solid
Matt Stine
 
PDF
Haskell Symposium 2010: An LLVM backend for GHC
dterei
 
PPT
IS-ENES COMP Superscalar tutorial
Roger Rafanell Mas
 
PDF
Dynamo 100107092845-phpapp02
Takefumi MIYOSHI
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Stefan Marr
 
Self-awareness and Adaptive Technologies: the Future of Operating Systems?
FET AWARE project - Self Awareness in Autonomic Systems
 
Peyton jones-2011-parallel haskell-the_future
Takayuki Muranushi
 
Simon Peyton Jones: Managing parallelism
Skills Matter
 
Keynote joearmstrong
Sentifi
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
siouxhotornot
 
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Stefan Marr
 
近未来的並列 LL
Motohiro Takayama
 
GoLightly: Building VM-based language runtimes in Go
Eleanor McHugh
 
Retargeting Embedded Software Stack for Many-Core Systems
Sumant Tambe
 
Abstractions at Scale – Our Experiences at Twitter
Leonidas Tsementzis
 
Challenges in Maintaining a High Performance Search Engine Written in Java
lucenerevolution
 
Erjang - A journey into Erlang-land
Kresten Krab Thorup
 
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
A Java Fork_Join Framework
Hiroshi Ono
 
Functional solid
Matt Stine
 
Haskell Symposium 2010: An LLVM backend for GHC
dterei
 
IS-ENES COMP Superscalar tutorial
Roger Rafanell Mas
 
Dynamo 100107092845-phpapp02
Takefumi MIYOSHI
 
Ad

More from Stefan Marr (18)

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

Recently uploaded (20)

PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 

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://[email protected]/~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://[email protected]/~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://[email protected]/~smarr/renaissance/sly3-­‐overview/   [6]  Renaissance  Project:  h=p://[email protected]/~smarr/renaissance/     23/08/11   Roundup  and  Conclusion   22