Top blue bar image Department of Computer Science

Distributed Communication Middleware for an Selector Model

Thesis Defense

Graduate and Postdoctoral Studies

By: Bing Xue
Masters Candidate
When: Friday, July 28, 2017
10:00 AM - 12:00 PM
Where: Duncan Hall
Abstract: The problem sizes that the community is dealing with today in both scientific research and day-to-day use computing exceed the capacity of modern shared-memory systems. With the increasing prevalence of manycore/heterogeneous processors on portable devices and cloud computing clusters, the demand for portable mainstream programming models supporting scalable, reactive and versatile distributed computing is also rapidly growing. With such changes, distributed software systems and applications are shifting towards service oriented architectures (SOA) that consist of largely decoupled, dynamically replaceable components and connected via loosely coupled, interactive networks that may exhibit more complex coordination and synchronization patterns. These trends have encouraged the adoption of distributed computing systems composed of computational nodes with internal parallelism that cooperate by communicating over a network. An easy-to-use unified programming paradigm with an efficient runtime system that supports both single-node and distributed multi-node systems is a highly desirable goal, since such a paradigm can ease the transition from single-node to multi-node parallelism. In this paper, we focus on the Selector model as a foundation for developing a unified programming model. We introduce a library-based runtime system that can execute the same Selector-based program as either a single-node or multi-node parallel program, based on externally specified configurations. To the best of our knowledge, this is the first design and implementation of Selectors for multi-node distributed-memory systems. While mobile computing has seen a trend towards miniaturization and energy savings for a number of years, the available hardware parallelism in mobile devices has at the same time continued to increase. Overall, mobile devices still remain resource constrained on power consumption and thermal dissipation. Aggregating the computing capabilities of multiple mobile devices in a distributed and dynamic setting opens the possibilities for performance improvements, longer aggregate battery life and novel dynamic and distributed applications. In this dissertation we address the communication and location transparency challenges in \HJDS in both cluster-based and mobile-based designs by providing a fully decoupled, readily replaceable communication middleware and introduce a lightweight Selector reference with global unique identifier that encodes its location. We have developed the cluster-based \HJDS runtime library that allows programmers to focus on implementing the algorithm for solving the problem their application is trying to solve, without worrying whether their application will run on a shared-memory or distributed-memory system. Our runtime implementation supports Selectors (a strictly more powerful version of Actors) on both shared-memory and distributed-memory systems. This framework provides automated system bootstrap and global termination, unlike any other distributed approaches. Our experimental evaluation using the Savina benchmark suite shows promising strong scaling results, making a strong case for the DS model as a viable alternative to the existing, much harder to program and port, parallel programming models.