Reference number : GC-2017-Q1-03568, amendment number : , agreement type : G, recipient legal name : Jamali, Nadeem (University of Saskatchewan), recipient country : CA, recipient province : nan, recipient city : Saskatchewan, recipient postal code : nan, program name english : Discovery Grants Program - Individual, program name french : Programme de subventions à la découverte - individuelles, program purpose english : 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., program purpose french : 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., agreement title english : Models and Mechanisms for Programming Interactions in Concurrent Systems, agreement title french : Models and Mechanisms for Programming Interactions in Concurrent Systems, agreement number : RGPIN, agreement value : 100000.0, agreement start date : 2017-05-10, agreement end date : nan, description english : nan, description french : nan, expected results english : nan, expected results french : nan, additional information english : Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023), additional information french : Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier. (2017-2018 à 2022-2023), owner organization : nserc-crsng, owner organization title : Natural Sciences and Engineering Research Council of Canada | Conseil de recherches en sciences naturelles et en génie du Canada