ETD system

Electronic theses and dissertations repository

 

Tesi etd-11202010-164747


Thesis type
Tesi di dottorato di ricerca
Author
DITTAMO, CRISTIAN
email address
dittamo@di.unipi.it
URN
etd-11202010-164747
Title
On expressing different concurrency paradigms on virtual execution environment
Settore scientifico disciplinare
INF/01
Corso di studi
INFORMATICA
Commissione
tutor Dott. Cisternino, Antonio
Parole chiave
  • virtual machine
  • runtime code generation
  • parallel programming
  • parallel model
  • JVM
  • gpgpu
  • CLR
Data inizio appello
17/12/2010;
Consultabilità
completa
Riassunto analitico
Virtual execution environments (VEE) such as the Java Virtual Machine (JVM) and the Microsoft Common Language Runtime (CLR) have been designed when the dominant computer architecture featured a Von-Neumann interface to programs: a single processor hiding all the complexity of parallel computations inside its design. Programs are expressed in an intermediate form that is executed by the VEE that defi nes an abstract computational model in which the concurrency model has been influenced by these design choices and it basically exposes the multi-threading model of the underlying operating system. Recently computer systems have introduced computational units in which concurrency is explicit and under program control. Relevant examples are the Graphical Processing Units (GPU such as Nvidia or AMD) and the Cell BE architecture which allow for explicit control of single processing unit, local memories and communication channels. Unfortunately programs designed for Virtual Machines cannot access to these resources since are not available through the abstractions provided by the VEE. A major redesign of VEEs seems to be necessary in order to bridge this gap. In this thesis we study the problem of exposing non-von Neumann computing resources within the Virtual Machine without need for a redesign of the whole execution infrastructure. In this work we express parallel computations relying on extensible meta-data and reflection to encode information. Meta-programming techniques are then used to rewrite the program into an equivalent one using the special purpose underlying architecture. We provide a case study in which this approach is applied to compiling Common Intermediate Language (CIL) methods to multi-core GPUs; we show that it is possible to access these non-standard computing resources without any change to the virtual machine design.
File