Shared Memory Objects as Synchronization Abstractions: Algorithmic Implementations and Concurrent Applications
Multicore and many-core architectures have penetrated the vast majority of computing systems, from high-end servers to low-energy embedded devices. From the hardware's perspective, performance scalability comes in the form of increasing numbers of cores. Nevertheless, fully utilizing this power is still an open research and engineering issue. Meanwhile, many applications have strong needs for this power since they rely on processing large volumes of data, produced with high velocity, possibly from heterogeneous sources. Often, such processing has to be done on-the-fly and under real-time constraints.
This thesis takes a perspective on shared memory objects in concurrent systems as abstractions that, while encapsulating hardware and implementation details, will allow algorithms and applications building upon them to utilize the hardware-parallelism. We pursue algorithmic implementations of such objects with fine-grain synchronization techniques, prove their correctness, consistency and progress properties, and evaluate their performance and the impact on related applications in a variety of hardware architectures.
One of the fundamental challenges in algorithmic implementations of shared memory objects is that of synchronization. We first study the behavior of several synchronization methods and the possible impact of the different system characteristics. Then, we tackle consistency-related problems that arise when shared memory objects have to support extended interfaces, providing more operations than the typical abstract data type (ADT) they implement. Focusing on the iteration operation, we propose concurrency-aware consistency definitions as well as algorithmic designs for iteration operations in queues and double-ended queues. Apart from extended interfaces in shared objects, we explore novel ADTs and their algorithmic implementations, as components for building new scalable and concurrent algorithms. Motivated by the aforementioned ever increasing need for data processing and inspired by data-intensive and high data-rate applications, we focus on algorithms for data stream processing. We demonstrate the usage of the novel ADTs by building concurrent algorithms for different problems from the data streaming domain, specifically multi-way streaming aggregation and stream joins, showing significant performance improvements. We further explore the applicability of the proposed interfaces, by providing an alternative distributed shared memory design for many-core embedded architectures and evaluate it in a streaming application for baseband signal processing.
The need for efficient hardware utilization is essential and this thesis shows how better data abstractions and algorithmic designs and implementations can have a significant impact in utilizing different multicore and many-core systems.
concurrent data structures
data stream processing
ΗΒ4, Hörsalsvägen 12, Campus Johanneberg
Opponent: Assoc. Prof. Vana Kalogeraki, Department of Informatics, Athens University of Economics and Business, Greece