Project

Back to overview

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

English title ParaBoost: Many-core exploitation through virtual-machine-level multi-variant speculation
Applicant Hauswirth Matthias
Number 135245
Funding scheme Project funding (Div. I-III)
Research institution Software Institute Facoltà di scienze informa Universit`a della Svizzera italiana
Institution of higher education Università della Svizzera italiana - USI
Main discipline Information Technology
Start/End 01.10.2011 - 30.09.2014
Approved amount 323'592.00
Show all

Keywords (3)

informatics; virtual machine; parallelization

Lay Summary (English)

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.

Direct link to Lay Summary Last update: 21.02.2013

Responsible applicant and co-applicants

Employees

Publications

Publication
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, Mobile vs. Desktop Programming Projects: The Effect on Students, in PROMOTO '14: Workshop on Programming for Mobile and Touch, Portland, OR, USA.

Collaboration

Group / person Country
Types of collaboration
Prof. Steve Blackburn, Australian National University Australia (Oceania)
- in-depth/constructive exchanges on approaches, methods or results
- Research Infrastructure

Scientific events

Active participation

Title Type of contribution Title of article or contribution Date Place Persons involved
ECOOP'14 Doctoral Symposium Individual talk CLOP: a DSL for performance optimizations 28.07.2014 Uppsala, Sweden Makarov Dmitri;
OOPSLA - Tutorials Talk given at a conference Using a VM For Effective Research and Teaching: Learn to hack a VM in 90 minutes 30.10.2013 Indianapolis, United States of America Hauswirth Matthias; Makarov Dmitri;
OOPSLA'13 - Artifacts Chair Report Talk given at a conference Short presentation of OOPSLA Artifact Evaluation Committee Chair Report 29.10.2013 Indianapolis, United States of America Hauswirth Matthias;
VMIL'13 - Invited Talk Talk given at a conference Debugging Virtual Machines - Invited Talk 28.10.2013 Indianapolis, United States of America Hauswirth Matthias;
PROMOTO'13 - Panel Talk given at a conference Participation on Panel on "Making a difference 1,000 devices at a time" 27.10.2013 Indianapolis, United States of America Hauswirth Matthias;
PPPJ'13 Talk given at a conference Jikes RDB: A Debugger for the Jikes RVM 13.09.2013 Stuttgart, Germany Makarov Dmitri;


Self-organised

Title Date Place

Communication with the public

Communication Title Media Place Year
Talks/events/exhibitions Inaugural Lecture "Time Travel & Alternate Universes" Italian-speaking Switzerland 2013

Associated projects

Number Title Start Funding scheme
125259 VIA - Vertical Profiling and Optimization of Modern Interactive Applications 01.04.2009 Project funding (Div. I-III)
157159 ParaBoost: Exploiting multi-variant execution 01.10.2014 Project funding (Div. 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.
-