SlideShare a Scribd company logo
1 of 18
Download to read offline
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	
  
                 Smalltalk	
  Dev	
  Room,	
  FOSDEM,	
  2012-­‐02-­‐05	
  
Agenda	
  
•  Parallel	
  Smalltalk	
  and	
  the	
  RoarVM	
  
       –  [self	
  demo]	
  fork	
  
       –  Project	
  
•  Sly	
  and	
  the	
  Renaissance	
  Project	
  
       –  Demo	
  
       –  Context	
  
       –  Language	
  and	
  Use-­‐Cases	
  

05/02/12	
                                             2	
  
Disclaimer:	
  It	
  wasn’t	
  me!	
  

IBM	
  Research	
                     Vrije	
  Universiteit	
  Brussel:	
  
       –  David	
  Ungar	
            So@ware	
  Languages	
  Lab	
  
       –  Sam	
  S.	
  Adams	
  
                                          –  Pablo	
  Inostroza	
  Valdera	
  
       –  Doug	
  Kimelman	
  
Portland	
  State	
  University	
         –  Stefan	
  Marr	
  
       –  Andrew	
  P.	
  Black	
         –  Theo	
  D'Hondt	
  
       –  Max	
  OrHai	
  


05/02/12	
                                                            3	
  
RoarVM	
  and	
  Parallel	
  Smalltalk?	
  
               Get	
  the	
  RoarVM	
  
               Smalltalk,	
  Concurrency,	
  and	
  Parallelism	
  



05/02/12	
                                               Demo	
       4	
  
RoarVM	
  Smalltalk	
  
•  Process	
  class	
  addions	
  
       –  yieldIfFewerCoresThan:	
  anInt	
  
       –  coreMask,	
  coreMask:	
  anInt	
  
               •  onlyOnCore:	
  anInt	
  
       –  hostCore	
  
       –  thisProcess	
  instead	
  of	
  activeProcess	
  
•  Uses	
  standard	
  Smalltalk	
  facilies	
  
       –  [self	
  do]	
  fork	
  
       –  Semaphore	
  class	
  

05/02/12	
                                                    5	
  
RoarVM	
  Status	
  
•    VM:	
  rewri=en	
  Squeak,	
  20k	
  SLOC	
  C++	
  
•    MVC	
  images	
  run	
  fine	
  
•    Squeak/Pharo:	
  mulcore	
  instabilies	
  
•    Runs	
  on:	
  OSX,	
  Linux,	
  iOS,	
  Tilera,	
  up	
  to	
  59	
  cores	
  




05/02/12	
                                                                  6	
  
Project	
  Infrastructure	
  
•  Buildbot:	
  Automate	
  
   compilaon,	
  tesng	
  
       –  Linux,	
  OS	
  X,	
  Tilera	
  
•  Performance	
  Tracking	
  
       –  Codespeed	
  
       –  ReBench	
  
       –  SMark	
  
•  h=p://github.com/smarr/RoarVM	
  

05/02/12	
                                          7	
  
Avoid	
  the	
  Concurrency	
  Trap	
  by	
  Embracing	
  Non-­‐Determinism	
  

    SLY	
  AND	
  	
  
    THE	
  RENAISSANCE	
  PROJECT	
  
05/02/12	
                                                                            8	
  
Renaissance	
  Project	
  
•  Manycore:	
  >	
  100	
  cores	
  
       + non-­‐uniform	
  memory	
  access	
  
•  Problem	
  
       –  Parallel	
  systems	
  are	
  nondeterminisc	
  
       –  Communicaon	
  is	
  expensive	
  
       –  Synchronizaon	
  ==	
  bo=leneck	
  
•  The	
  vision	
  
       –  Embrace	
  nondeterminism	
  
       –  Harness	
  emergence	
  
       –  Confidence	
  →	
  Delay	
  

05/02/12	
                                                    9	
  
Non-­‐determinisUc	
  Boids	
  and	
  ParUcle	
  SorUng	
  	
  
               Flocking	
  behavior	
  of	
  birds	
  and	
  parUcle	
  bouncing	
  as	
  local-­‐only	
  
               synchronizaUon	
  strategies	
  for	
  scalability	
  



05/02/12	
                                                     Demo	
                                        10	
  
Sly	
  
•  Ensembles:	
  collecons	
  represenng	
  a	
  whole,	
  
   mul-­‐part	
  enes	
  
       –  e.g.	
  a	
  flock	
  of	
  birds	
  

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

•  Gerunds:	
  reducon	
  semancs	
  
       –  averagING,	
  selectINGpredicate,	
  ensemblING	
  


05/02/12	
                                                   11	
  
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/	
  

05/02/12	
                                                                    12	
  
Possible	
  Real	
  Life	
  Applicaon	
  




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


05/02/12	
                                                     13	
  
Possible	
  Real	
  Life	
  Applicaon	
  
•  Online	
  analycal	
  processing	
  (OLAP)	
  
       –  Business	
  intelligence,	
  data	
  mining	
  
       –  Query	
  muldimensional	
  data	
  sets	
  
       –  Calculated	
  data	
  dimensions	
  
•  Gesture	
  recognion	
  
       –  Many	
  rules,	
  low-­‐precision	
  input	
  
•  Race-­‐and-­‐repair:	
  how	
  to	
  bound	
  error?	
  
05/02/12	
                                                    14	
  
CONCLUSION	
  


05/02/12	
           15	
  
Conclusion	
  
•  Sly:	
  map/reduce-­‐like	
  programming	
  model	
  
       –  Based	
  on	
  ensembles,	
  adverbs	
  and	
  gerunds	
  


•  RoarVM	
  
       –  Research	
  arfact,	
  stable,	
  used	
  daily	
  
       –  No	
  opmizaon	
  of	
  sequenal	
  performance	
  
       –  Tested	
  up	
  to	
  59cores	
  
       –  Shows	
  weak	
  scalability	
  

05/02/12	
                                                             16	
  
Project,	
  Sly	
  Intro,	
  Community	
  




 h=p://so@.vub.ac.be/          h=p://so@.vub.ac.be/
  ~smarr/renaissance/	
         ~smarr/renaissance/
                                sly3-­‐overview/	
  

h=p://github.com/smarr/RoarVM	
  
@roarvm	
  
	
  
05/02/12	
         Conclusion	
               17	
  
Papers	
  
[1] 	
  J.	
  Pallas	
  and	
  D.	
  Ungar.	
  Mulprocessor	
  Smalltalk:	
  A	
  
        Case	
  Study	
  of	
  a	
  Mulprocessor-­‐based	
  Programming	
  
        Environment.	
  In	
  PLDI	
  ’88,	
  p.	
  268–277.	
  ACM,	
  1988.	
  
[2] 	
  D.	
  Ungar	
  and	
  S.	
  Adams.	
  Hosng	
  an	
  Object	
  Heap	
  on	
  
        Manycore	
  Hardware:	
  An	
  Exploraon.	
  In	
  DLS’09,	
  p.	
  
        99-­‐110.	
  ACM,	
  2009.	
  
[3] 	
  D.	
  Ungar,	
  D.	
  Kimelman,	
  and	
  S.	
  Adams.	
  Inconsistency	
  
        Robustness	
  for	
  Scalability	
  in	
  Interacve	
  
        Concurrent‑Update	
  In-­‐Memory	
  MOLAP	
  Cubes.	
  In	
  
        Inconsistency	
  Robustness	
  Symposium	
  2011.	
  


05/02/12	
                       Roundup	
  and	
  Conclusion	
                18	
  

More Related Content

Similar to Sly and the RoarVM: Parallel Programming with Smalltalk

Cloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynoteCloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynotePatrick Chanezon
 
Principles Of Programing Languages
Principles Of Programing LanguagesPrinciples Of Programing Languages
Principles Of Programing LanguagesMatthew McCullough
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconAdrian Cockcroft
 
Rapid prototyping with solr - By Erik Hatcher
Rapid prototyping with solr -  By Erik Hatcher Rapid prototyping with solr -  By Erik Hatcher
Rapid prototyping with solr - By Erik Hatcher lucenerevolution
 
Introduction to Clojure and why it's hot for Sart-Ups
Introduction to Clojure and why it's hot for Sart-UpsIntroduction to Clojure and why it's hot for Sart-Ups
Introduction to Clojure and why it's hot for Sart-Upsedlich
 
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
 
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsLife Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsTristan Gomez
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spacesluccastera
 
High Availability in YARN
High Availability in YARNHigh Availability in YARN
High Availability in YARNArinto Murdopo
 
Scala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud PlatformScala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud PlatformTomoharu ASAMI
 
Unexpected Challenges in Large Scale Machine Learning by Charles Parker
 Unexpected Challenges in Large Scale Machine Learning by Charles Parker Unexpected Challenges in Large Scale Machine Learning by Charles Parker
Unexpected Challenges in Large Scale Machine Learning by Charles ParkerBigMine
 
OOPs, OOMs, oh my! Containerizing JVM apps
OOPs, OOMs, oh my! Containerizing JVM appsOOPs, OOMs, oh my! Containerizing JVM apps
OOPs, OOMs, oh my! Containerizing JVM appsSematext Group, Inc.
 
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013gwhathistory
 
第5回SCDN - Ruby Summer of Code: NArray on OpenCL
第5回SCDN - Ruby Summer of Code: NArray on OpenCL第5回SCDN - Ruby Summer of Code: NArray on OpenCL
第5回SCDN - Ruby Summer of Code: NArray on OpenCLscdn
 
Exploring the Semantic Web
Exploring the Semantic WebExploring the Semantic Web
Exploring the Semantic WebRoberto García
 
H2O Big Data Environments
H2O Big Data EnvironmentsH2O Big Data Environments
H2O Big Data EnvironmentsSri Ambati
 
Big Data and Hadoop in Cloud - Leveraging Amazon EMR
Big Data and Hadoop in Cloud - Leveraging Amazon EMRBig Data and Hadoop in Cloud - Leveraging Amazon EMR
Big Data and Hadoop in Cloud - Leveraging Amazon EMRVijay Rayapati
 

Similar to Sly and the RoarVM: Parallel Programming with Smalltalk (20)

Cloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynoteCloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin Keynote
 
Persistence
PersistencePersistence
Persistence
 
Principles Of Programing Languages
Principles Of Programing LanguagesPrinciples Of Programing Languages
Principles Of Programing Languages
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at Gluecon
 
Rapid Prototyping with Solr
Rapid Prototyping with SolrRapid Prototyping with Solr
Rapid Prototyping with Solr
 
Rapid prototyping with solr - By Erik Hatcher
Rapid prototyping with solr -  By Erik Hatcher Rapid prototyping with solr -  By Erik Hatcher
Rapid prototyping with solr - By Erik Hatcher
 
Introduction to Clojure and why it's hot for Sart-Ups
Introduction to Clojure and why it's hot for Sart-UpsIntroduction to Clojure and why it's hot for Sart-Ups
Introduction to Clojure and why it's hot for Sart-Ups
 
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...
 
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsLife Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
 
High Availability in YARN
High Availability in YARNHigh Availability in YARN
High Availability in YARN
 
Scala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud PlatformScala in Model-Driven development for Apparel Cloud Platform
Scala in Model-Driven development for Apparel Cloud Platform
 
Unexpected Challenges in Large Scale Machine Learning by Charles Parker
 Unexpected Challenges in Large Scale Machine Learning by Charles Parker Unexpected Challenges in Large Scale Machine Learning by Charles Parker
Unexpected Challenges in Large Scale Machine Learning by Charles Parker
 
OOPs, OOMs, oh my! Containerizing JVM apps
OOPs, OOMs, oh my! Containerizing JVM appsOOPs, OOMs, oh my! Containerizing JVM apps
OOPs, OOMs, oh my! Containerizing JVM apps
 
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
 
第5回SCDN - Ruby Summer of Code: NArray on OpenCL
第5回SCDN - Ruby Summer of Code: NArray on OpenCL第5回SCDN - Ruby Summer of Code: NArray on OpenCL
第5回SCDN - Ruby Summer of Code: NArray on OpenCL
 
Exploring the Semantic Web
Exploring the Semantic WebExploring the Semantic Web
Exploring the Semantic Web
 
H2O Big Data Environments
H2O Big Data EnvironmentsH2O Big Data Environments
H2O Big Data Environments
 
Big Data and Hadoop in Cloud - Leveraging Amazon EMR
Big Data and Hadoop in Cloud - Leveraging Amazon EMRBig Data and Hadoop in Cloud - Leveraging Amazon EMR
Big Data and Hadoop in Cloud - Leveraging Amazon EMR
 
IJTC%202009%20JRuby
IJTC%202009%20JRubyIJTC%202009%20JRuby
IJTC%202009%20JRuby
 

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 ProgrammingStefan 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 TruffleStefan 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
 
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?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 EffortStefan 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 ActorsStefan 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 MachinesStefan 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: TraitsStefan 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 EraStefan 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
 

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 ...
 
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?
 
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
 

Recently uploaded

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 

Recently uploaded (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 

Sly and the RoarVM: Parallel Programming with Smalltalk

  • 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   Smalltalk  Dev  Room,  FOSDEM,  2012-­‐02-­‐05  
  • 2. Agenda   •  Parallel  Smalltalk  and  the  RoarVM   –  [self  demo]  fork   –  Project   •  Sly  and  the  Renaissance  Project   –  Demo   –  Context   –  Language  and  Use-­‐Cases   05/02/12   2  
  • 3. Disclaimer:  It  wasn’t  me!   IBM  Research   Vrije  Universiteit  Brussel:   –  David  Ungar   So@ware  Languages  Lab   –  Sam  S.  Adams   –  Pablo  Inostroza  Valdera   –  Doug  Kimelman   Portland  State  University   –  Stefan  Marr   –  Andrew  P.  Black   –  Theo  D'Hondt   –  Max  OrHai   05/02/12   3  
  • 4. RoarVM  and  Parallel  Smalltalk?   Get  the  RoarVM   Smalltalk,  Concurrency,  and  Parallelism   05/02/12   Demo   4  
  • 5. RoarVM  Smalltalk   •  Process  class  addions   –  yieldIfFewerCoresThan:  anInt   –  coreMask,  coreMask:  anInt   •  onlyOnCore:  anInt   –  hostCore   –  thisProcess  instead  of  activeProcess   •  Uses  standard  Smalltalk  facilies   –  [self  do]  fork   –  Semaphore  class   05/02/12   5  
  • 6. RoarVM  Status   •  VM:  rewri=en  Squeak,  20k  SLOC  C++   •  MVC  images  run  fine   •  Squeak/Pharo:  mulcore  instabilies   •  Runs  on:  OSX,  Linux,  iOS,  Tilera,  up  to  59  cores   05/02/12   6  
  • 7. Project  Infrastructure   •  Buildbot:  Automate   compilaon,  tesng   –  Linux,  OS  X,  Tilera   •  Performance  Tracking   –  Codespeed   –  ReBench   –  SMark   •  h=p://github.com/smarr/RoarVM   05/02/12   7  
  • 8. Avoid  the  Concurrency  Trap  by  Embracing  Non-­‐Determinism   SLY  AND     THE  RENAISSANCE  PROJECT   05/02/12   8  
  • 9. Renaissance  Project   •  Manycore:  >  100  cores   + non-­‐uniform  memory  access   •  Problem   –  Parallel  systems  are  nondeterminisc   –  Communicaon  is  expensive   –  Synchronizaon  ==  bo=leneck   •  The  vision   –  Embrace  nondeterminism   –  Harness  emergence   –  Confidence  →  Delay   05/02/12   9  
  • 10. Non-­‐determinisUc  Boids  and  ParUcle  SorUng     Flocking  behavior  of  birds  and  parUcle  bouncing  as  local-­‐only   synchronizaUon  strategies  for  scalability   05/02/12   Demo   10  
  • 11. Sly   •  Ensembles:  collecons  represenng  a  whole,   mul-­‐part  enes   –  e.g.  a  flock  of  birds   •  Adverbs:  modifiers  to  operands   –  individualLY,  serialLY,  randomLY:  n   •  Gerunds:  reducon  semancs   –  averagING,  selectINGpredicate,  ensemblING   05/02/12   11  
  • 12. 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/   05/02/12   12  
  • 13. Possible  Real  Life  Applicaon   Image:   h=p://blogs.technet.com/b/andrew/ archive/2007/08/22/olap-­‐cubes-­‐and-­‐ muldimensional-­‐analysis.aspx   05/02/12   13  
  • 14. Possible  Real  Life  Applicaon   •  Online  analycal  processing  (OLAP)   –  Business  intelligence,  data  mining   –  Query  muldimensional  data  sets   –  Calculated  data  dimensions   •  Gesture  recognion   –  Many  rules,  low-­‐precision  input   •  Race-­‐and-­‐repair:  how  to  bound  error?   05/02/12   14  
  • 16. Conclusion   •  Sly:  map/reduce-­‐like  programming  model   –  Based  on  ensembles,  adverbs  and  gerunds   •  RoarVM   –  Research  arfact,  stable,  used  daily   –  No  opmizaon  of  sequenal  performance   –  Tested  up  to  59cores   –  Shows  weak  scalability   05/02/12   16  
  • 17. Project,  Sly  Intro,  Community   h=p://so@.vub.ac.be/ h=p://so@.vub.ac.be/ ~smarr/renaissance/   ~smarr/renaissance/ sly3-­‐overview/   h=p://github.com/smarr/RoarVM   @roarvm     05/02/12   Conclusion   17  
  • 18. Papers   [1]  J.  Pallas  and  D.  Ungar.  Mulprocessor  Smalltalk:  A   Case  Study  of  a  Mulprocessor-­‐based  Programming   Environment.  In  PLDI  ’88,  p.  268–277.  ACM,  1988.   [2]  D.  Ungar  and  S.  Adams.  Hosng  an  Object  Heap  on   Manycore  Hardware:  An  Exploraon.  In  DLS’09,  p.   99-­‐110.  ACM,  2009.   [3]  D.  Ungar,  D.  Kimelman,  and  S.  Adams.  Inconsistency   Robustness  for  Scalability  in  Interacve   Concurrent‑Update  In-­‐Memory  MOLAP  Cubes.  In   Inconsistency  Robustness  Symposium  2011.   05/02/12   Roundup  and  Conclusion   18