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
 
Introduction to .NET Framework and .NET Core
Introduction to .NET Framework and .NET CoreIntroduction to .NET Framework and .NET Core
Introduction to .NET Framework and .NET CoreStudySection
 
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
 

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
 
Introduction to .NET Framework and .NET Core
Introduction to .NET Framework and .NET CoreIntroduction to .NET Framework and .NET Core
Introduction to .NET Framework and .NET Core
 
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
 

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

2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdfMuhammad Subhan
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxjbellis
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 

Último (20)

2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 

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