Grants and Contributions:

Title:
Models and Mechanisms for Programming Interactions in Concurrent Systems
Agreement Number:
RGPIN
Agreement Value:
$100,000.00
Agreement Date:
May 10, 2017 -
Organization:
Natural Sciences and Engineering Research Council of Canada
Location:
Saskatchewan, CA
Reference Number:
GC-2017-Q1-03568
Agreement Type:
Grant
Report Type:
Grants and Contributions
Additional Information:

Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023)

Recipient's Legal Name:
Jamali, Nadeem (University of Saskatchewan)
Program:
Discovery Grants Program - Individual
Program Purpose:

Although concurrent programming is more accessible to programmers today than ever, programming of interactions between processes continues to be challenging. These interactions can be competitive or collaborative. The programming of these interaction concerns is often intermixed with the programming of the functions of individual processes. Proposed work will build formal models and mechanisms to support programming of interactions in concurrent systems.

In the recent past, we have addressed the problem of resource-competitive interactions between computations. We have developed fine-grained mechanisms -- based on my CyberOrgs model -- for coordinating computations' access to owned resources. These mechanisms have been used for supporting deadline assurance, for power-efficiency in multi-core processors, and for superior load-balancing for non-uniformly sized tasks. The general approach was also applied to broader contexts, such as for enabling multimedia viewers to negotiate advertisers' access to their attention, or users of email to negotiate access to their mailboxes.

Most recently, we have also addressed collaborative interactions. In one effort, we identified key mechanisms underlying crowd-sourced applications, which offer services based on data collected from a "crowd." After prototyping these mechanisms in a middleware, which significantly reduced the effort involved in developing new applications, we are now formally studying important properties of such applications, and generalizing our results to the wider class of mobile distributed sensing-based applications.

In parallel, we have studied complex inter-process communications. Although there is a growing body of work to separate these concerns, existing solutions create static structures to support protocols which enable desired interactions and/or restrict undesired ones. In contrast, the approach we take is to have first-class, self-driving, dynamically evolving communications, which are reusable and composable.

This research program presents many opportunities for training of highly qualified professionals. Past graduates have found excellent positions in both industry and academia. Students will learn cutting-edge approaches for programming parallel and distributed systems, and particularly using languages and libraries based on the increasingly influential Actor model of concurrent programming.

The work on separating communication concerns promises to ease the programming of complex communications, and make communication code reusable. The solutions for crowd-sourced applications can democratize the creation of new services. Resource coordination work in these domains will enable provision of communication and service mechanisms as services. Developing support for resource coordination in languages like Scala will make them available to a large number of programmers.