SlideShare uma empresa Scribd logo
1 de 26
Intermediate Language Designof High-level Language VMs Towards Comprehensive Concurrency Support Michael Haupt HassoPlattner Institute University of Potsdam Theo D’Hondt Software Languages Lab VrijeUniversiteitBrussel Stefan Marr Software Languages Lab VrijeUniversiteitBrussel VMIL Workshop, 25th October 2009, Orlando, Florida
Agenda Motivation Survey Design Concurrency Support Conclusion Outlook 10/27/09 2 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Motivation VMs support concurrency insufficiently! Why? Because, we want multi-language VMs Fast JITs, great GCs How to design an intermediate language? To our knowledge No surveys No overview of design space/tradeoffs 10/27/09 3 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Survey Design How to design an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 4
Survey Design 10/27/09 5 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey All trademarks and logos are the property of their respective owners.
Survey Criteria Specification vs. implementation Abstraction level of intermediate language Machine model Representation, instruction encoding Instruction categories Arithmetic & logic, control flow, stack, … Optimizations 10/27/09 6 Survey Design
Survey 10/27/09 7 Survey Design
Survey 10/27/09 8 Survey Design
Survey 10/27/09 9 Survey Design
Survey 10/27/09 10 Survey Design
Survey 10/27/09 11 Survey Design
Survey 10/27/09 12 Survey Design
Concurrency support How to support concurrency in an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 13
Reminder: Motivation VMs support concurrency insufficiently! Why? Because, we want multi-language VMs Fast JITs Great GCs ,[object Object],10/27/09 14 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
10/27/09 15 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Why Concurrency in ILs?
Concurrency Support in the IL? 10/27/09 16 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey
Concurrency Support in the IL? 10/27/09 17 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey only 6 out of 17
Survey Criteria - Concurrency Concurrency support Concurrency model Included instructions Standard library (stdlib) 10/27/09 18 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Common Language Infrastructure volatile.(prefix instruction) marks a subsequent pointer reference Synchronized methods Memory model Atomic read or write of certain aligned data Standard library Memory barriers, atomic updates Parallel loops, futures,… 10/27/09 19 Concurrency Support
Dis VM (spec. 4th ed.) Inspired by CommunicatingSequentialProcesses spawn – new thread new* – new channel recv, send – on given channel alt, nbalt – send or receive                          on ready channel Memory model unspecified 10/27/09 20 Concurrency Support
Erlang Actors model send, wait, wait_timeout remove_message timeout Pure, functional language No memory model specified Only high-level constructs in stdlib. 10/27/09 21 Concurrency Support
Java Virtual Machine monitorenter/-exit For synchronized blocks Synchronized methods Memory model Standard library Low- and high-level constructs DalvikVM promises the same 10/27/09 22 Concurrency Support
Mozart LOCKTHREAD No unlock Implicit support Data-flow variables, distribution Standard library High-level constructs Futures, stream channels,… 10/27/09 23 Concurrency Support
Conclusion Wide range of supported models No notion of multiple models Often limited to implicit semantics or guaranties Often most functionality in standard library 10/27/09 24 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Outlook Multi-language VMs have to Enable language designer to invent new constructs/concepts Provide low- and high-level constructs Low-level: Memory barriers, atomic updates, … High-level: Tuplespaces, STM, Actors, … Open question: tradeoffs IL vs. stdlib. 10/27/09 25 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Discussion 10/27/09 26 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009

Mais conteúdo relacionado

Destaque

Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2Iffat Anjum
 
Top down and botttom up Parsing
Top down     and botttom up ParsingTop down     and botttom up Parsing
Top down and botttom up ParsingGerwin Ocsena
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compilerAbha Damani
 
Different types of Editors in Linux
Different types of Editors in LinuxDifferent types of Editors in Linux
Different types of Editors in LinuxBhavik Trivedi
 
Lex (lexical analyzer)
Lex (lexical analyzer)Lex (lexical analyzer)
Lex (lexical analyzer)Sami Said
 
Intermediate code- generation
Intermediate code- generationIntermediate code- generation
Intermediate code- generationrawan_z
 
Phases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingPhases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingMukesh Tekwani
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools pptHalai Hansika
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler designSudip Singh
 
The dag representation of basic blocks
The dag representation of basic blocksThe dag representation of basic blocks
The dag representation of basic blocksShabeen Taj
 
Lecture 16 17 code-generation
Lecture 16 17 code-generationLecture 16 17 code-generation
Lecture 16 17 code-generationIffat Anjum
 

Destaque (20)

Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2
 
Module 11
Module 11Module 11
Module 11
 
Ch5a
Ch5aCh5a
Ch5a
 
Top down and botttom up Parsing
Top down     and botttom up ParsingTop down     and botttom up Parsing
Top down and botttom up Parsing
 
Software tools
Software toolsSoftware tools
Software tools
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Different types of Editors in Linux
Different types of Editors in LinuxDifferent types of Editors in Linux
Different types of Editors in Linux
 
Lex (lexical analyzer)
Lex (lexical analyzer)Lex (lexical analyzer)
Lex (lexical analyzer)
 
Intermediate code- generation
Intermediate code- generationIntermediate code- generation
Intermediate code- generation
 
Interpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratchInterpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratch
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
 
Phases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingPhases of the Compiler - Systems Programming
Phases of the Compiler - Systems Programming
 
Specification-of-tokens
Specification-of-tokensSpecification-of-tokens
Specification-of-tokens
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools ppt
 
Back patching
Back patchingBack patching
Back patching
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler design
 
The dag representation of basic blocks
The dag representation of basic blocksThe dag representation of basic blocks
The dag representation of basic blocks
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Lecture 16 17 code-generation
Lecture 16 17 code-generationLecture 16 17 code-generation
Lecture 16 17 code-generation
 
Run time administration
Run time administrationRun time administration
Run time administration
 

Semelhante a Intermediate Language Design of High-level Language VMs: Towards Comprehensive Concurrency Support

Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation pptArt Scott
 
BCA IPU VB.NET UNIT-I
BCA IPU VB.NET UNIT-IBCA IPU VB.NET UNIT-I
BCA IPU VB.NET UNIT-IVaibhavj1234
 
Moving Rich Internet Applications into the Cloud: Seven Challenges
Moving Rich Internet Applications into the Cloud: Seven ChallengesMoving Rich Internet Applications into the Cloud: Seven Challenges
Moving Rich Internet Applications into the Cloud: Seven Challengesmatiasbagini
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLsdeimos
 
Folt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesFolt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesKlemens Waldhör
 
AmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_SuiteAmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_SuiteYogesh Kulkarni
 
FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitStefano Sabatini
 
Net framework
Net frameworkNet framework
Net frameworkjhsri
 
Automated mobile application porting
Automated mobile application portingAutomated mobile application porting
Automated mobile application portinge27
 
Webinar - KQStor ZFS port on Linux
Webinar - KQStor ZFS port on LinuxWebinar - KQStor ZFS port on Linux
Webinar - KQStor ZFS port on Linuxkqinfotech
 
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSharon James
 
Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?Flink Forward
 
Introduction to .net
Introduction to .net Introduction to .net
Introduction to .net Jaya Kumari
 
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
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 

Semelhante a Intermediate Language Design of High-level Language VMs: Towards Comprehensive Concurrency Support (20)

Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation ppt
 
BCA IPU VB.NET UNIT-I
BCA IPU VB.NET UNIT-IBCA IPU VB.NET UNIT-I
BCA IPU VB.NET UNIT-I
 
Moving Rich Internet Applications into the Cloud: Seven Challenges
Moving Rich Internet Applications into the Cloud: Seven ChallengesMoving Rich Internet Applications into the Cloud: Seven Challenges
Moving Rich Internet Applications into the Cloud: Seven Challenges
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 
E4 UI Demos
E4 UI DemosE4 UI Demos
E4 UI Demos
 
Folt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesFolt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universities
 
AmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_SuiteAmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_Suite
 
FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkit
 
Net framework
Net frameworkNet framework
Net framework
 
Automated mobile application porting
Automated mobile application portingAutomated mobile application porting
Automated mobile application porting
 
Webinar - KQStor ZFS port on Linux
Webinar - KQStor ZFS port on LinuxWebinar - KQStor ZFS port on Linux
Webinar - KQStor ZFS port on Linux
 
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
 
Bringing You Up to Date with LE for z/VSE
Bringing You Up to Date with LE for z/VSEBringing You Up to Date with LE for z/VSE
Bringing You Up to Date with LE for z/VSE
 
Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?
 
Introduction to .net
Introduction to .net Introduction to .net
Introduction to .net
 
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 Languages
Intermediate LanguagesIntermediate Languages
Intermediate Languages
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 

Mais de Stefan Marr

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

Mais de 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
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
 
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...
 
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
 
VMADL: An Architecture Definition Language for Variability and Composition ...
VMADL: An Architecture Definition Language  for Variability and Composition  ...VMADL: An Architecture Definition Language  for Variability and Composition  ...
VMADL: An Architecture Definition Language for Variability and Composition ...
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 

Último

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 

Último (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Intermediate Language Design of High-level Language VMs: Towards Comprehensive Concurrency Support

  • 1. Intermediate Language Designof High-level Language VMs Towards Comprehensive Concurrency Support Michael Haupt HassoPlattner Institute University of Potsdam Theo D’Hondt Software Languages Lab VrijeUniversiteitBrussel Stefan Marr Software Languages Lab VrijeUniversiteitBrussel VMIL Workshop, 25th October 2009, Orlando, Florida
  • 2. Agenda Motivation Survey Design Concurrency Support Conclusion Outlook 10/27/09 2 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 3. Motivation VMs support concurrency insufficiently! Why? Because, we want multi-language VMs Fast JITs, great GCs How to design an intermediate language? To our knowledge No surveys No overview of design space/tradeoffs 10/27/09 3 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 4. Survey Design How to design an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 4
  • 5. Survey Design 10/27/09 5 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey All trademarks and logos are the property of their respective owners.
  • 6. Survey Criteria Specification vs. implementation Abstraction level of intermediate language Machine model Representation, instruction encoding Instruction categories Arithmetic & logic, control flow, stack, … Optimizations 10/27/09 6 Survey Design
  • 7. Survey 10/27/09 7 Survey Design
  • 8. Survey 10/27/09 8 Survey Design
  • 9. Survey 10/27/09 9 Survey Design
  • 10. Survey 10/27/09 10 Survey Design
  • 11. Survey 10/27/09 11 Survey Design
  • 12. Survey 10/27/09 12 Survey Design
  • 13. Concurrency support How to support concurrency in an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 13
  • 14.
  • 15. 10/27/09 15 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Why Concurrency in ILs?
  • 16. Concurrency Support in the IL? 10/27/09 16 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey
  • 17. Concurrency Support in the IL? 10/27/09 17 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey only 6 out of 17
  • 18. Survey Criteria - Concurrency Concurrency support Concurrency model Included instructions Standard library (stdlib) 10/27/09 18 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 19. Common Language Infrastructure volatile.(prefix instruction) marks a subsequent pointer reference Synchronized methods Memory model Atomic read or write of certain aligned data Standard library Memory barriers, atomic updates Parallel loops, futures,… 10/27/09 19 Concurrency Support
  • 20. Dis VM (spec. 4th ed.) Inspired by CommunicatingSequentialProcesses spawn – new thread new* – new channel recv, send – on given channel alt, nbalt – send or receive on ready channel Memory model unspecified 10/27/09 20 Concurrency Support
  • 21. Erlang Actors model send, wait, wait_timeout remove_message timeout Pure, functional language No memory model specified Only high-level constructs in stdlib. 10/27/09 21 Concurrency Support
  • 22. Java Virtual Machine monitorenter/-exit For synchronized blocks Synchronized methods Memory model Standard library Low- and high-level constructs DalvikVM promises the same 10/27/09 22 Concurrency Support
  • 23. Mozart LOCKTHREAD No unlock Implicit support Data-flow variables, distribution Standard library High-level constructs Futures, stream channels,… 10/27/09 23 Concurrency Support
  • 24. Conclusion Wide range of supported models No notion of multiple models Often limited to implicit semantics or guaranties Often most functionality in standard library 10/27/09 24 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 25. Outlook Multi-language VMs have to Enable language designer to invent new constructs/concepts Provide low- and high-level constructs Low-level: Memory barriers, atomic updates, … High-level: Tuplespaces, STM, Actors, … Open question: tradeoffs IL vs. stdlib. 10/27/09 25 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 26. Discussion 10/27/09 26 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009

Notas do Editor

  1. The motivation for this survey is hopefully clear nowToday, I will present here only the survey designAnd the concurrency related features we found in the different VMs
  2. Concurrency support for intermediate language
  3. Let’s try to find an answer for this basic question
  4. 17 VMscommon open source VMsResearch VMsand production VMsOut of the Box: directly usable by the application developer which uses the target language running on top of the VM
  5. CLI and JVM are only VMs here which are used as multi-langueVMs
  6. DisVMOnly SpecificationMem-mem model
  7. Virtual Machine Showdown: Stack Versus Registersby: Yunhe Shi and Kevin Casey and M. Anton Ertl and David GreggIn: ACM Trans. Archit. Code Optim. , Vol. 4 , Nr. 4New York, NY, USA: ACM (2008) , p. 1--36.
  8. Another interesting approach
  9. How to approach VM design when you want a JIT
  10. Lets now focus on the concurrency support
  11. VM support for concurrency as it is today is insufficientOur basic idea: Add support to the IL
  12. But lets come back to our survey.So what is the state of the art to concurrency support in Ils?
  13. 17 VMscommon open source VMsResearch VMsand production VMsOut of the Box: directly usable by the application developer which uses the target language running on top of the VM
  14. Basic Question for the Survey:How do VMs support concurrency models today?
  15. Atomic: native word size 32/64bit, no update
  16. Split up slide
  17. I would like to discussion following thingsSuitability of chosen VMsValid reasons to chose JVM over something else? I.e. reasons to not use Lua?-Other platforms then TILE64 or CellBE, which might be interesting?Tradeoffs which should be investigatedThe final goal for my PhD is to cover the concurrency part of ISA/VM design as a cornerstone for multi-paradigm VMs