SlideShare a Scribd company logo
Which	
  Problems	
  Does	
  a	
  	
  
Mul$-­‐Language	
  Virtual	
  Machine	
  
       Need	
  to	
  Solve	
  in	
  the	
  	
  
    Mul$core/Manycore	
  Era?	
  


                                Stefan	
  Marr	
  
        Ma8as	
  De	
  Wael,	
  Michael	
  Haupt,	
  Theo	
  D’Hondt	
  
                        VMIL	
  Workshop	
  2011	
  
                                2011-­‐10-­‐24	
  
VMs	
  today	
  



                Performance	
                         Memory	
  Management	
  



                                    F#	
  



        MulJ-­‐Language	
  Eco	
  System	
           PlaLorm	
  Independent	
  

25/10/11	
                                                                        2	
  
What	
  do	
  we	
  need	
  in	
  the	
  
               MulJcore/Manycore	
  Era?	
  




25/10/11	
                                                 3	
  
Two	
  Dimensions	
  

               Processor	
  Design	
        Concurrency	
  Models	
  

                                           Actors	
  

                                           STM	
  
                                          DataFlow	
  
                                          Fork/Join	
  
25/10/11	
                                                              4	
  
Processors	
  and	
  Concurrency	
  Models	
  




                                     VM?	
  

                                                                !&'()*




                                                                          !&'()*
                                                  !"#$%!&'()*


                         6$4&)78()&%9&4,():
                                                                !&'()*




                                                                          !&'()*
           !"#$%!&'()*




25/10/11	
   +&,%-()&.                              !"$*%-()&.                     5	
  
         ./")&0%'&'()*                        1")#(2.%0#33&)&$4%0&.#5$.
WHAT	
  ARE	
  THE	
  RELEVANT	
  CHANGES	
  AT	
  
    THE	
  HARDWARE-­‐LEVEL?	
  

25/10/11	
                                         6	
  
Brawny	
  vs.	
  Wimpy	
  




•  High	
  sequenJal	
             •  Weak	
  sequenJal	
  
   performance	
                      performance	
  
•  Few	
  in	
  numbers	
          •  High	
  in	
  numbers	
  
25/10/11	
                                                   7	
  
And	
  everything	
  in-­‐between!	
  
Brawny	
                                       Hybrid	
                        Wimpy	
  




IBM	
  Power7	
                                                                  Intel	
  MIC	
  




   Intel	
  i7	
  
                           AMD	
  Fusion	
                  Cell	
  B.E.	
  
                                                                               Nvidia	
  Fermi	
  




   25/10/11	
                                                                    8	
  
Cores	
  vs.	
  Threads	
  vs.	
  Shared	
  PUs	
  




                                                            Source:	
  AMD	
  

25/10/11	
                                          9	
  
Memory	
  and	
  CommunicaJon	
  
    Nehalem	
  Cache	
  Hierarchy	
        Four	
  Processor	
  Setup	
  




               CommunicaJon	
  implicit	
  via	
  memory	
                     Source:	
  Intel	
  

25/10/11	
                                                            10	
  
Memory	
  and	
  CommunicaJon	
  




                                                   TILEPro64	
  
                                                    Source:	
  Tilera	
  

25/10/11	
                                11	
  
What	
  do	
  VMs	
  need	
  to	
  account	
  for?	
  

•  Appropriate	
  uJlizaJon	
  
       –  Varying	
  performance	
  of	
  cores/units?	
  
       –  Caches	
  and	
  simultaneous	
  mul,threading?	
  

•  Non-­‐uniform	
  memory	
  and	
  communicaJon	
  
       –  Cache	
  hierarchies?	
  
       –  Explicit	
  inter-­‐core	
  communicaJon?	
  

25/10/11	
                                                      12	
  
Actors	
  

                 STM	
  
                 DataFlow	
  
                 Fork/Join	
  

    WHAT	
  ARE	
  TYPICAL	
  IMPLEMENTATION	
  
    PROBLEMS	
  OF	
  CONCURRENCY	
  
    MODELS?	
  
25/10/11	
                                   13	
  
EncapsulaJon	
  
                                                                   IMPORTANT:	
  Messages	
  can	
  
actor	
  BreakEncapsulation:	
                                     be	
  any	
  kind	
  of	
  object	
  but	
  
                                                                   have	
  to	
  be	
  immutable.	
  Scala	
  
	
  	
  def	
  main_loop(self):	
                                  can’t	
  enforce	
  immutability	
  
	
  	
  	
  	
  receive:	
                                         (yet)	
  so	
  this	
  has	
  to	
  be	
  by	
  
                                                                   convenJon.	
  
	
  	
  	
  	
  	
  	
  (Message)	
  =>	
                          	
  
                                                                   	
  
	
  	
  	
  	
  	
  	
  	
  	
  Message.msg	
  =	
  "broken"	
     JCSP:	
  obj-­‐by-­‐ref,	
  no	
  warning	
  
                                                                   	
  
#	
  main	
                                                        Kilim:	
  zero-­‐copy	
  type	
  system	
  
msg	
  =	
  Message("Hello	
  World!")	
                           	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  not	
  “reflecJon-­‐proof”	
  
                                                                   	
  
broken	
  !	
  (msg)	
                                             Clojure:	
  STM	
  +	
  pure	
  Java	
  
                                                                   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Agents	
  +	
  pure	
  Java	
  
#	
  wait	
                                                        	
  
print	
  msg.msg	
                                                 Swing	
  UI:	
  “The	
  single-­‐	
  
                                                                   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  thread	
  rule”	
  
  25/10/11	
                                                                                                                  14	
  
Scheduling	
  Guarantees	
  
          Fork/Join	
              Actors	
              PrioriJzed	
  Tasks	
  




         work-­‐stealing	
     fair	
  scheduling	
     priority-­‐based	
  scheduling	
  


25/10/11	
                                                                  15	
  
Immutability	
  




                            Source:	
  Star	
  Wars	
  Episode	
  V:	
  The	
  Empire	
  Strikes	
  Back.	
  

25/10/11	
                                                                   16	
  
Crossing	
  Borders	
  and	
  Language-­‐Levels	
  
                                                      jThread.sortedSet	
  =	
  
                                                      	
  	
  	
  	
  	
  	
  	
  	
  FarRefWrapper(sortSet)	
  
                    e	
                               	
  
                                 a	
                  jThread.sortedSet	
  
                                                      	
  	
  	
  	
  	
  	
  	
  	
  .add(FarRefWrapper(e))	
  
                                                      	
  
                                                      	
  
e.compareTo(*)	
  
                                                      	
  
                                                      	
  
                                         add(e)	
     //	
  add(fr_e)	
  (wrapper	
  semantics)	
  
                                                      fr_e.compareTo(obj)	
  {	
  
                                                      	
  	
  return	
  send_wait(e,	
  
                                                      	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  compareTo,	
  
                                                      	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  obj)	
  
                 sortedSet	
                          }	
  


          Language/ApplicaJon-­‐Level	
                               ImplementaJon/Meta-­‐Level	
  

  25/10/11	
                                                                                                            17	
  
What	
  do	
  VMs	
  need	
  to	
  account	
  for?	
  

•  Enforcing	
  language	
  semanJcs?	
  

•  Flexible	
  concurrent	
  encapsulaJon?	
  
       –  What	
  is	
  the	
  relaJon	
  to	
  immutability?	
  

•  Enforceable	
  scheduling	
  guarantees?	
  

•  Normal	
  vs.	
  reflecJve	
  operaJons?	
  

25/10/11	
                                                          18	
  
What	
  do	
  VMs	
  need	
  to	
  account	
  for?	
  

               Processor	
  Design	
      Concurrency	
  Models	
  

                                         Actors	
  

                                         STM	
  
                                         DataFlow	
  
                                         Fork/Join	
  
25/10/11	
                                                            19	
  
What	
  do	
  VMs	
  need	
  to	
  account	
  for?	
  
Processor	
  Design	
                    Concurrency	
  Models	
  
•  Appropriate	
  uJlizaJon	
            •  Flexible	
  concurrent	
  
       –  Varying	
  performance?	
         encapsulaJon?	
  
       –  Hyperthreads?	
                    –  Flexible	
  Immutability?	
  
•  Non-­‐uniform	
  memory	
  and	
      •  Enforceable	
  scheduling	
  
   communicaJon	
                           guarantees?	
  
       –  Cache	
  hierarchies?	
        •  Normal	
  vs.	
  reflecJve	
  
       –  Explicit	
  inter-­‐core	
        operaJons?	
  
          communicaJon?	
  


25/10/11	
                                                                  20	
  

More Related Content

What's hot (6)

Hp All In 1
Hp All In 1Hp All In 1
Hp All In 1
RBratton
 
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDTReverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
marckhouzam
 
Cots moves to multicore: AMD
Cots moves to multicore: AMDCots moves to multicore: AMD
Cots moves to multicore: AMD
Konrad Witte
 
Presentation from physical to virtual to cloud emc
Presentation   from physical to virtual to cloud emcPresentation   from physical to virtual to cloud emc
Presentation from physical to virtual to cloud emc
xKinAnx
 
XS Boston 2008 Fault Tolerance
XS Boston 2008 Fault ToleranceXS Boston 2008 Fault Tolerance
XS Boston 2008 Fault Tolerance
The Linux Foundation
 
Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...
Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...
Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...
Keshav Murthy
 
Hp All In 1
Hp All In 1Hp All In 1
Hp All In 1
RBratton
 
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDTReverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
marckhouzam
 
Cots moves to multicore: AMD
Cots moves to multicore: AMDCots moves to multicore: AMD
Cots moves to multicore: AMD
Konrad Witte
 
Presentation from physical to virtual to cloud emc
Presentation   from physical to virtual to cloud emcPresentation   from physical to virtual to cloud emc
Presentation from physical to virtual to cloud emc
xKinAnx
 
Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...
Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...
Performance and scalability of Informix ultimate warehouse edtion on Intel Xe...
Keshav Murthy
 

Similar to Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Multicore/Manycore Era? (20)

STM
STMSTM
STM
Diego Pacheco
 
CrySys guest-lecture: Virtual machine introspection on modern hardware
CrySys guest-lecture: Virtual machine introspection on modern hardwareCrySys guest-lecture: Virtual machine introspection on modern hardware
CrySys guest-lecture: Virtual machine introspection on modern hardware
Tamas K Lengyel
 
On The Shoulders Of Giants
On The Shoulders Of GiantsOn The Shoulders Of Giants
On The Shoulders Of Giants
Kirill Grouchnikov
 
Pitfalls of virtual machine introspection on modern hardware
Pitfalls of virtual machine introspection on modern hardwarePitfalls of virtual machine introspection on modern hardware
Pitfalls of virtual machine introspection on modern hardware
Tamas K Lengyel
 
AWS Case Study
AWS Case StudyAWS Case Study
AWS Case Study
Tikal Knowledge
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
DVClub
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
Skills Matter
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
Takayuki Muranushi
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
bobmcwhirter
 
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
Emulex Corporation
 
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualizationz/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
IBM India Smarter Computing
 
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Normandy JUG
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-land
Kresten Krab Thorup
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF Models
Filip Krikava
 
Five cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterFive cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark faster
Tim Ellison
 
Integration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud FoundryIntegration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud Foundry
Joshua Long
 
The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving Java
Steve Elliott
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Hugo Bruneliere
 
Introducing OneCommand Vision 3.0, I/O management that gives your application...
Introducing OneCommand Vision 3.0, I/O management that gives your application...Introducing OneCommand Vision 3.0, I/O management that gives your application...
Introducing OneCommand Vision 3.0, I/O management that gives your application...
Emulex Corporation
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
National Cheng Kung University
 
CrySys guest-lecture: Virtual machine introspection on modern hardware
CrySys guest-lecture: Virtual machine introspection on modern hardwareCrySys guest-lecture: Virtual machine introspection on modern hardware
CrySys guest-lecture: Virtual machine introspection on modern hardware
Tamas K Lengyel
 
Pitfalls of virtual machine introspection on modern hardware
Pitfalls of virtual machine introspection on modern hardwarePitfalls of virtual machine introspection on modern hardware
Pitfalls of virtual machine introspection on modern hardware
Tamas K Lengyel
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
DVClub
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
Skills Matter
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
Takayuki Muranushi
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
bobmcwhirter
 
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
OneCommand Vision 2.1 webcast: Cutting edge LUN SLAs, AIX on PowerPC and flex...
Emulex Corporation
 
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualizationz/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
IBM India Smarter Computing
 
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Normandy JUG
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-land
Kresten Krab Thorup
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF Models
Filip Krikava
 
Five cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterFive cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark faster
Tim Ellison
 
Integration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud FoundryIntegration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud Foundry
Joshua Long
 
The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving Java
Steve Elliott
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Hugo Bruneliere
 
Introducing OneCommand Vision 3.0, I/O management that gives your application...
Introducing OneCommand Vision 3.0, I/O management that gives your application...Introducing OneCommand Vision 3.0, I/O management that gives your application...
Introducing OneCommand Vision 3.0, I/O management that gives your application...
Emulex Corporation
 

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...
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
 
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 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
 
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
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
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
 
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
 
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 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
 
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
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
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
 

Recently uploaded (20)

Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Mike Mingos
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Cyntexa
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient CareAn Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
Cyntexa
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Developing System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptxDeveloping System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptx
wondimagegndesta
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Optima Cyber - Maritime Cyber Security - MSSP Services - Manolis Sfakianakis ...
Mike Mingos
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Cyntexa
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient CareAn Overview of Salesforce Health Cloud & How is it Transforming Patient Care
An Overview of Salesforce Health Cloud & How is it Transforming Patient Care
Cyntexa
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Developing System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptxDeveloping System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptx
wondimagegndesta
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 

Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Multicore/Manycore Era?

  • 1. Which  Problems  Does  a     Mul$-­‐Language  Virtual  Machine   Need  to  Solve  in  the     Mul$core/Manycore  Era?   Stefan  Marr   Ma8as  De  Wael,  Michael  Haupt,  Theo  D’Hondt   VMIL  Workshop  2011   2011-­‐10-­‐24  
  • 2. VMs  today   Performance   Memory  Management   F#   MulJ-­‐Language  Eco  System   PlaLorm  Independent   25/10/11   2  
  • 3. What  do  we  need  in  the   MulJcore/Manycore  Era?   25/10/11   3  
  • 4. Two  Dimensions   Processor  Design   Concurrency  Models   Actors   STM   DataFlow   Fork/Join   25/10/11   4  
  • 5. Processors  and  Concurrency  Models   VM?   !&'()* !&'()* !"#$%!&'()* 6$4&)78()&%9&4,(): !&'()* !&'()* !"#$%!&'()* 25/10/11   +&,%-()&. !"$*%-()&. 5   ./")&0%'&'()* 1")#(2.%0#33&)&$4%0&.#5$.
  • 6. WHAT  ARE  THE  RELEVANT  CHANGES  AT   THE  HARDWARE-­‐LEVEL?   25/10/11   6  
  • 7. Brawny  vs.  Wimpy   •  High  sequenJal   •  Weak  sequenJal   performance   performance   •  Few  in  numbers   •  High  in  numbers   25/10/11   7  
  • 8. And  everything  in-­‐between!   Brawny   Hybrid   Wimpy   IBM  Power7   Intel  MIC   Intel  i7   AMD  Fusion   Cell  B.E.   Nvidia  Fermi   25/10/11   8  
  • 9. Cores  vs.  Threads  vs.  Shared  PUs   Source:  AMD   25/10/11   9  
  • 10. Memory  and  CommunicaJon   Nehalem  Cache  Hierarchy   Four  Processor  Setup   CommunicaJon  implicit  via  memory   Source:  Intel   25/10/11   10  
  • 11. Memory  and  CommunicaJon   TILEPro64   Source:  Tilera   25/10/11   11  
  • 12. What  do  VMs  need  to  account  for?   •  Appropriate  uJlizaJon   –  Varying  performance  of  cores/units?   –  Caches  and  simultaneous  mul,threading?   •  Non-­‐uniform  memory  and  communicaJon   –  Cache  hierarchies?   –  Explicit  inter-­‐core  communicaJon?   25/10/11   12  
  • 13. Actors   STM   DataFlow   Fork/Join   WHAT  ARE  TYPICAL  IMPLEMENTATION   PROBLEMS  OF  CONCURRENCY   MODELS?   25/10/11   13  
  • 14. EncapsulaJon   IMPORTANT:  Messages  can   actor  BreakEncapsulation:   be  any  kind  of  object  but   have  to  be  immutable.  Scala      def  main_loop(self):   can’t  enforce  immutability          receive:   (yet)  so  this  has  to  be  by   convenJon.              (Message)  =>                      Message.msg  =  "broken"   JCSP:  obj-­‐by-­‐ref,  no  warning     #  main   Kilim:  zero-­‐copy  type  system   msg  =  Message("Hello  World!")                            not  “reflecJon-­‐proof”     broken  !  (msg)   Clojure:  STM  +  pure  Java                                    Agents  +  pure  Java   #  wait     print  msg.msg   Swing  UI:  “The  single-­‐                                            thread  rule”   25/10/11   14  
  • 15. Scheduling  Guarantees   Fork/Join   Actors   PrioriJzed  Tasks   work-­‐stealing   fair  scheduling   priority-­‐based  scheduling   25/10/11   15  
  • 16. Immutability   Source:  Star  Wars  Episode  V:  The  Empire  Strikes  Back.   25/10/11   16  
  • 17. Crossing  Borders  and  Language-­‐Levels   jThread.sortedSet  =                  FarRefWrapper(sortSet)   e     a   jThread.sortedSet                  .add(FarRefWrapper(e))       e.compareTo(*)       add(e)   //  add(fr_e)  (wrapper  semantics)   fr_e.compareTo(obj)  {      return  send_wait(e,                                        compareTo,                                        obj)   sortedSet   }   Language/ApplicaJon-­‐Level   ImplementaJon/Meta-­‐Level   25/10/11   17  
  • 18. What  do  VMs  need  to  account  for?   •  Enforcing  language  semanJcs?   •  Flexible  concurrent  encapsulaJon?   –  What  is  the  relaJon  to  immutability?   •  Enforceable  scheduling  guarantees?   •  Normal  vs.  reflecJve  operaJons?   25/10/11   18  
  • 19. What  do  VMs  need  to  account  for?   Processor  Design   Concurrency  Models   Actors   STM   DataFlow   Fork/Join   25/10/11   19  
  • 20. What  do  VMs  need  to  account  for?   Processor  Design   Concurrency  Models   •  Appropriate  uJlizaJon   •  Flexible  concurrent   –  Varying  performance?   encapsulaJon?   –  Hyperthreads?   –  Flexible  Immutability?   •  Non-­‐uniform  memory  and   •  Enforceable  scheduling   communicaJon   guarantees?   –  Cache  hierarchies?   •  Normal  vs.  reflecJve   –  Explicit  inter-­‐core   operaJons?   communicaJon?   25/10/11   20  
  翻译: