Dataflow-inspired Parallel and Distributed Computing: Practical Techniques and Real-World Use Cases (Dataflow-geïnspireerd parallel en gedistribueerd computergebruik: Praktische technieken en realistische gevallenstudies)
Dataflow-inspired Parallel and Distributed Computing: Practical Techniques and Real-World Use Cases
In this thesis, we show how challenges in parallel and distributed systems can be overcome for specific applications, chosen from different application domains and with different characteristics. The first domain is high-performance computing, where we applied a dataflow-based programming model to stencil computations. The second domain is real-time embedded computing where we improved middleware support for dataflow models, focusing on optimizing schedules of applications on MPSoCs. The third domain is ubiquitous computing, where we apply dataflow-based modeling and optimization techniques, in order to deploy applications in ubiquitous environments.Our results show that programming stencil operations with dynamic task graphs reduces their synchronization overhead, resulting in an implementation that scales better than the state-of-the-art. For mapping and scheduling applications on MPSoCs, we observe that modeling the inter-dependencies that enable tighter coupling between different aspects of the system i.e. computation, communication and memory, improves the energy efficiency and/or performance of the system. The execution semantics of dataflow models play a key role in enabling this tightly-coupled scheduling. Use cases in the domain of ubiquitous computing demonstrate the usage of dataflow-based modeling and optimization techniques for the deployment and configuration of dynamic applications in highly heterogeneous and distributed systems.