Talk presents the idea and goal of my PhD researchPoints to try discussion:Evaluation work, better to use JVM or LuaOther stuff to be evaluated?Targeted research platform: TILE6430min -> 20min slides + 10min discussion
What we see with JVM and CLR:Run on various platforms (especially JVM)Are platform for wide range of different languages (hundreds, maybe even thousands)Let me explain this statementCommon VMs support threading exclusivelyLanguages: no direct support for other models ïƒ extra effortsVM: implementation on many-core systems cannot benefit from higherlevel constructs similarities
Additional VMs which could be suitable?
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
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models - Presentation Transcript
Virtual Machine Support for Many-Core Architectures Decoupling Abstract from Concrete Concurrency Models Stefan Marr VrijeUniversiteitBrussel PLACES Workshop, 22nd March 2009, York, UK
Agenda Motivation Concurrency Support for VM Instruction Sets Methodology Combining Different Models Investigate Tradeoffs Research Platform 3/21/09 2 VM Support forMany-CoreArchitectures
The Free Lunch Is Over Many Core ≠Many Core Homogeneous vs. heterogeneous designs Different memory and cache patterns/partitions Different concrete concurrency models 3/21/09 3 1. Motivation Cell Broadband Engine - 1 PPE, 8 SPE - bus interconnect Intel Larrabee - up to 48 cores (IA32) - bus interconnect, virtual shared memory Tilera TILE64 - 64 cores (MIPS) - up to 866 MHz - virtual shared memory
Abstract Concurrency Models Broad range of programming models Shared memory with locking is error-prone/hard STM and actors still not mainstream Combinations and new approaches expected 3/21/09 4 1. Motivation
Virtual Machines as Abstraction Layer 3/21/09 5 1. Motivation C# Prolog, … JVM/CLR/… Today, concurrency support is very limited!
Concurrency Support for VM Instruction Sets 3/21/09 6
Methodology To develop instruction set with concurrency support Combination of concurrency models Guidelines for design decision, tradeoffs Instruction set design Application area General purpose/multi-langVMs like JVM/CLR Special purpose VMs like DalvikVM 3/21/09 7
Combining Different Models 3/21/09 8 2. Concurrency Support for VM Instruction Sets
Consider abstract models separately
Distil basic concepts/instructions
Analyze design space for ISA
Stepwise integration
Based on existing ideas
Tradeoffs to be Considered Model combinations Different types/approaches of integration Instruction set size Design space with respect to #instructions Instruction set type Opcode vs. higher level representation …? 3/21/09 9 2. Concurrency Support for VM Instruction Sets
Research Platform Requirements for an appropriate VM Portable, support for Linux and MIPS Available STM and Actors languages/libraries Unused instructions in bytecode/opcode set Easy to adapt just-in-time compiler 3/21/09 10
Tilera TILE64â„¢ 3/21/09 11 3. Research Platform
64 cores, up to 866 MHz
MIPS derived 32-bit VLIW ISA
L1 cache/core: 8KB instructions, 8KB data
L2 cache/core: 64KB
4 DDR2 RAM controller
Choosing a VM as Research Platform 3/21/09 12 3. Research Platform
Discussion 3/21/09 13 VM Support forMany-CoreArchitectures Methodology Tradeoffs Concurrency Model Integration Research Platform Instruction Set Design
The upcoming many-core architectures require softwa more
The upcoming many-core architectures require software developers to exploit concurrency to utilize available computational power. We argue that today's virtual machines (VMs), which are a cornerstone of software development, do not provide sufficient abstraction for concurrency concepts. To overcome this shortcoming, we propose to integrate concurrency operations into VM instruction sets.
Since there will always be VMs optimized for special purposes, our goal is to develop a methodology to design instruction sets with concurrency support. Therefore, we also propose a list of tradeoffs that have to be investigated to advise the design of such instruction sets. As a first experiment, we implemented one instruction set extension for shared memory and one for non-shared memory concurrency. From our experimental results, we derived a list of requirements for a full-grown experimental environment for further research. less
0 comments
Post a comment