Opportunistic Computing: A New Paradigm for Scalable Programming on Multicore Processors
Georgia Tech Research Corporation, Atlanta GA
Investigators
Abstract
The introduction of multi-core processors personal computing platforms such as desktops, laptops and game consoles open up interesting end-user application possibilities making parallelism more ubiquitous than ever. Trends show an increasing presence of immersive multimedia and gaming applications on newer personal computing platforms. One of the desirable features of such applications is that the applications exhibit varying degrees of sophistication based on the resource-richness of the platform on which they execute. Current programming paradigms are limited in their ability to express variable semantics of applications that could scale dynamically to the resource availability. This limitation leads to huge barriers causing applications to evolve slowly as the platforms emerge. On the other hand, multi-core processors are rapidly evolving and if one is unable to use the extra cores their value will be severely diminished. In order to bridge this gap, it is important to develop languages and compiler technology that offers a scaling of application semantics with the processor power. This work investigates a new paradigm, called Opportunistic Computing, that allows a specification of scalable semantics in applications that can be enriched and thus adapt to the amount of available resources at runtime. A domain specific programming language involving extensions to C++ allows the programmer to define a specification of how the current semantics of a program can be opportunistically enriched. It can take the form of an additional computation, the choice of the best computation at runtime for a given quality of result or the adaptation of the current computation into a better one. The work develops and investigates new analyses and techniques for managing the runtime and software transactional memory under compiler control coupled with the compiler controlled scheduling of soft real-time tasks.
View original record on NSF Award Search →