Projekt

Zurück zur Übersicht

ParaBoost: Many-core exploitation through virtual-machine-level multi-variant speculation

Titel Englisch ParaBoost: Many-core exploitation through virtual-machine-level multi-variant speculation
Gesuchsteller/in Hauswirth Matthias
Nummer 135245
Förderungsinstrument Projektförderung (Abt. I-III)
Forschungseinrichtung Facoltà di scienze informatiche Università della Svizzera italiana
Hochschule Università della Svizzera italiana - USI
Hauptdisziplin Informatik
Beginn/Ende 01.10.2011 - 30.09.2014
Bewilligter Betrag 323'592.00
Alle Daten anzeigen

Keywords (3)

informatics, virtual machine, parallelization

Lay Summary (Englisch)

Lead
Lay summary

Until recently our information society has been blessed with exponentially increasing computer system performance. With computer architects being forced to provide future performance improvements in the form of additional parallel cores, software developers have to parallelize their applications in order to see any future performance improvement. Unfortunately, parallelizing software is difficult. In this project we will thus investigate an approach to benefit from the increasing core count that does not require the explicit parallelization of applications. We base the project on the existing idea of competitive parallel execution (CPE). CPE lets multiple algorithms compete, each on its own core, on solving the same problem. The algorithm that finds the solution first wins the competition. The competition thus takes only as long as the fastest concurrently executing algorithm.

In the ParaBoost project, we will combine this idea of concurrently competing algorithm variants with the software engineering benefits afforded by modern programming languages. We will create a managed runtime environment called a multi-variant virtual machine (MVVM), to enable existing Java software to benefit from multi-variant execution. By lifting multi-variant execution into the language runtime, we will gain fine-grained control over the execution of the variants. This control will allow us to go beyond existing CPE approaches: The MVVM will be able to competitively execute software that uses more than one thread, it will improve performance by dynamically allocating more time to more promising variants, and it will learn and use models predicting the performance of variants based on features of their input.

To create the MVVM we will address a set of challenging research questions:

  • How can we efficiently isolate competing variants inside a single virtual machine?
  • How can we terminate the variants that lost the competition?
  • How can we synchronize and contain the externally visible effects of variants?
  • What are the classes of algorithms and software applications that most benefit from an MVVM?
  • Can we automatically identify parts of applications that could benefit from competitive execution?
  • How much can we gain by favoring variants that make more progress?
  • How should we dynamically allocate time to variants?
  • How can we build a model that predicts variant performance based on inputs?

We will build the MVVM on top of the Jikes RVM, a Java virtual machine specifically designed for virtual machine research. By building the MVVM we will be able to explore novel ideas that improve the state of the art in multi-variant execution. With our project, we will contribute to enabling the large body of existing sequential software to continue to benefit from future performance improvements.

Direktlink auf Lay Summary Letzte Aktualisierung: 21.02.2013

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Publikationen

Publikation
Jikes RDB: a debugger for the Jikes RVM
Makarov Dmitri, Hauswirth Matthias (2013), Jikes RDB: a debugger for the Jikes RVM, in 2013 International Conference on Principles and Practices of Programming on the Java Platform, Stuttgart, Germany.
Mobile vs. Desktop Programming Projects: The Effect on Students
Azadmanesh Mohammad Reza, Sherwany Amanj, Eynard Davide, Vitasek Matej, Hauswirth Matthias (accepted), Mobile vs. Desktop Programming Projects: The Effect on Students, in PROMOTO '14: Workshop on Programming for Mobile and Touch, Portland, OR, USA.

Zusammenarbeit

Gruppe / Person Land
Felder der Zusammenarbeit
Prof. Steve Blackburn, Australian National University Australien (Ozeanien)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Forschungsinfrastrukturen

Wissenschaftliche Veranstaltungen

Aktiver Beitrag

Titel Art des Beitrags Titel des Artikels oder Beitrages Datum Ort Beteiligte Personen
ECOOP'14 Doctoral Symposium Einzelvortrag CLOP: a DSL for performance optimizations 28.07.2014 Uppsala, Schweden Makarov Dmitri
OOPSLA - Tutorials Vortrag im Rahmen einer Tagung Using a VM For Effective Research and Teaching: Learn to hack a VM in 90 minutes 30.10.2013 Indianapolis, Vereinigte Staaten von Amerika Hauswirth Matthias; Makarov Dmitri
OOPSLA'13 - Artifacts Chair Report Vortrag im Rahmen einer Tagung Short presentation of OOPSLA Artifact Evaluation Committee Chair Report 29.10.2013 Indianapolis, Vereinigte Staaten von Amerika Hauswirth Matthias
VMIL'13 - Invited Talk Vortrag im Rahmen einer Tagung Debugging Virtual Machines - Invited Talk 28.10.2013 Indianapolis, Vereinigte Staaten von Amerika Hauswirth Matthias
PROMOTO'13 - Panel Vortrag im Rahmen einer Tagung Participation on Panel on "Making a difference 1,000 devices at a time" 27.10.2013 Indianapolis, Vereinigte Staaten von Amerika Hauswirth Matthias
PPPJ'13 Vortrag im Rahmen einer Tagung Jikes RDB: A Debugger for the Jikes RVM 13.09.2013 Stuttgart, Deutschland Makarov Dmitri


Selber organisiert

Titel Datum Ort

Kommunikation mit der Öffentlichkeit

Kommunikation Titel Medien Ort Jahr
Referate/ Veranstaltungen/ Ausstellungen Inaugural Lecture "Time Travel & Alternate Universes" Italienische Schweiz 2013

Verbundene Projekte

Nummer Titel Start Förderungsinstrument
125259 VIA - Vertical Profiling and Optimization of Modern Interactive Applications 01.04.2009 Projektförderung (Abt. I-III)
157159 ParaBoost: Exploiting multi-variant execution 01.10.2014 Projektförderung (Abt. I-III)

Abstract

Until recently our information society has been blessed with exponentially increasing computer system performance. With computer architects being forced to provide future performance improvements in the form of additional parallel cores, software developers have to parallelize their applications in order to see any future performance improvement. Unfortunately, parallelizing software is difficult. In this project we will thus investigate an approach to benefit from the increasing core count that does not require the explicit parallelization of applications. We base the project on the existing idea of competitive parallel execution (CPE). CPE lets multiple algorithms compete, each on its own core, on solving the same problem. The algorithm that finds the solution first wins the competition. The competition thus takes only as long as the fastest concurrently executing algorithm. In the proposed ParaBoost project, we want to combine this idea of concurrently competing algorithm variants with the software engineering benefits afforded by modern programming languages. We will create a managed runtime environment called a multi-variant virtual machine (MVVM), to enable existing Java software to benefit from multi-variant execution. By lifting multi-variant execution into the language runtime, we will gain fine-grained control over the execution of the variants. This control will allow us to go beyond existing CPE approaches: The MVVM will be able to competitively execute software that uses more than one thread, it will improve performance by dynamically allocating more time to more promising variants, and it will learn and use models predicting the performance of variants based on features of their input. To create the MVVM we will have to address a set of challenging research questions: How can we efficiently isolate competing variants inside a single virtual machine? How can we terminate the variants that lost the competition? How can we synchronize and contain the externally visible effects of variants? What are the classes of algorithms and software applications that most benefit from an MVVM? Can we automatically identify parts of applications that could benefit from competitive execution? How much can we gain by favoring variants that make more progress? How should we dynamically allocate time to variants? How can we build a model that predicts variant performance based on inputs? We request funding for two PhD students for this project. One student will focus on runtime system and performance aspects, while the other student focuses on programmer productivity aspects. We plan to build the MVVM on top of the Jikes RVM, a Java virtual machine specifically designed for virtual machine research. By building the MVVM we will be able to explore novel ideas that improve the state of the art in multi-variant execution. With our project, we will contribute to enabling the large body of existing sequential software to continue to benefit from future performance improvements.