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

Hp All In 1
Hp All In 1Hp All In 1
Hp All In 1RBratton
 
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
 

What's hot (6)

Hp All In 1
Hp All In 1Hp All In 1
Hp All In 1
 
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
 
Cots moves to multicore: AMD
Cots moves to multicore: AMDCots moves to multicore: AMD
Cots moves to multicore: AMD
 
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
 
XS Boston 2008 Fault Tolerance
XS Boston 2008 Fault ToleranceXS Boston 2008 Fault Tolerance
XS Boston 2008 Fault Tolerance
 
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...
 

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

STM
STMSTM
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
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 ProcessorDVClub
 
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
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
Skills Matter
 
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 ModelsFilip 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
 

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

STM
STMSTM
STM
 
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
 
On The Shoulders Of Giants
On The Shoulders Of GiantsOn The Shoulders Of Giants
On The Shoulders Of Giants
 
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
 
AWS Case Study
AWS Case StudyAWS Case Study
AWS Case Study
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
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
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
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...
 
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
 
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)
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-land
 
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
 
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
 
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
 
The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving Java
 
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...
 
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...
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 

More from Stefan Marr

Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Stefan Marr
 
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingSeminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
Stefan Marr
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
Stefan Marr
 
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Stefan Marr
 
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
 

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...
 
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
 
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
 
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 ...
 

Recently uploaded

Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

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