Reusable Concurrent Data Types

Summary

The goal of this project is to propose a programming paradigm to make concurrent libraries reusable by other programmers.

Supervisor(s)

Dr Vincent Gramoli

Research Location

Information Technologies

Program Type

PHD

Synopsis

The devices we use on a daily basis do not compute faster than the desktop computers we used 10 years ago. Manufacturers have just started multiplying the CPU cores in handheld phones, adding multi-cores and concurrent capabilities to almost all computing devices. Writing concurrent software is the way to improve performance: making graphics of video games more fluid, internet browsers faster, or smartphone applications more responsive.
Yet, leveraging these so called multi-cores is hard because concurrent programs are not reusable. When a programmer, say Alice, writes a library she synchronises the methods to prevent their concurrent execution from producing inconsistencies. Bob cannot reuse Alice's library without knowing how it was implemented; he must first ensure that Alice's methods synchronize with his own methods by at least understanding and possibly modifying her code.
This lack of reusability affects most concurrent libraries (e.g., C++ Intel thread building block, C# System.Collections.Concurrent, java.util.concurrent).

This research topic investigates the reusability of abstractions in a monitor-based concurrent environment. The goal is to make highly concurrent programs reusable by defining and implementing a new programming paradigm to write reusable methods. A reusable method is a sequential method that Alice synchronizes using the most appropriate synchronization semantics chosen among a set of pre-existing ones. This technique should make the development of highly concurrent multicore applications modular by offering application-level concurrency and by letting Bob write methods that invoke Alice's and whose semantics will prevail over Alice's at runtime.

Want to find out more?

Contact us to find out what’s involved in applying for a PhD. Domestic students and International students

Contact Research Expert to find out more about participating in this opportunity.

Browse for other opportunities within the Information Technologies .

Keywords

Reusability, encapsulation, Type, Inheritance, Object-Oriented, Java, Synchronisation

Opportunity ID

The opportunity ID for this research opportunity is: 1790

Other opportunities with Dr Vincent Gramoli