Asynchronous runtime for task-based dataflow programming models
Year: 2017
Type: dissertation
Abstract: The importance of parallel programming is increasing year after year since the power wall popularized\nmulti-core processors, and with them, shared memory parallel programming models. In\nparticular, task-based programming models, like the standard OpenMP 4.0, have become more\nand more important. They allow describing a set of data dependences per task that the runtime\nuses to order the execution of tasks. This order is calculated using shared graphs, which are updated\nby all threads but in exclusive access using synchronization mechanisms (locks) to ensure\nthe dependences correctness. Although exclusive accesses are necessary to avoid data race conditions,\nthose may imply contention that limits the application parallelism. This becomes critical\nin many-core systems because several threads may be wasting computation resources waiting to\naccess the runtime structures.\nThis master thesis introduces the concept of an asynchronous runtime management suitable\nfor task-based programming model runtimes. The runtime proposal is based on the asynchronous\nmanagement of the runtime structures like task dependence graphs. Therefore, the application\nthreads request actions to the runtime instead of directly executing the needed modifications.\nThe requests are then handled by a runtime manager which can be implemented in different ways.\nThis master thesis presents an extension to a previously implemented centralized runtime\nmanager and presents a novel implementation of a distributed runtime manager. On one hand,\nthe runtime design based on a centralized manager [1] is extended to dynamically adapt the\nruntime behavior according to the manager load with the objective of being as fast as possible.\nOn the other hand, a novel runtime design based on a distributed manager implementation is\nproposed to overcome the limitations observed in the centralized design. The distributed runtime\nimplementation allows any thread to become a runtime manager thread if it helps to exploit the\napplication parallelism. That is achieved using a new runtime feature, also implemented in this\nmaster thesis, for runtime functionality dispatching through a callback system.\nThe proposals are evaluated in different many-core architectures and their performance is\ncompared against the baseline runtimes used to implement the asynchronous versions. Results\nshow that the centralized manager extension can overcome the hard limitations of the initial\nbasic implementation, that the distributed manager fixes the observed problems in previous implementation,\nand the proposed asynchronous organization significantly outperforms the speedup\nobtained by the original runtime for real benchmarks.
Author: Jaume Bosch
Language: English
Subfield: Hardware and Architecture
Field: Computer Science
Domain: Physical Sciences
Open Access status: green
Awards: G1350388866, G178585038, G2436365243, High Performance and Embedded Architecture and Compilation, Agile, eXtensible, fast I/O Module for the cyber-physical era, G3222096693, Mont-Blanc 3, European scalable and power efficient HPC platform based on low-power embedded technology, G4937468798, G7096924396, G7422144096, G893344584
OpenAlex ID: W2765348146
