Back to Search Start Over

Blaze-Tasks

Authors :
Damian Dechev
Peter Pirkelbauer
Amalee Wilson
Christina Peterson
Source :
ACM Transactions on Architecture and Code Optimization. 15:1-25
Publication Year :
2018
Publisher :
Association for Computing Machinery (ACM), 2018.

Abstract

Compared to threads, tasks are a more fine-grained alternative. The task parallel programming model offers benefits in terms of better performance portability and better load-balancing for problems that exhibit nonuniform workloads. A common scenario of task parallel programming is that a task is recursively decomposed into smaller sub-tasks. Depending on the problem domain, the number of created sub-tasks may be nonuniform, thereby creating potential for significant load imbalances in the system. Dynamic load-balancing mechanisms will distribute the tasks across available threads. The final result of a computation may be modeled as a reduction over the results of all sub-tasks. This article describes a simple, yet effective prototype framework, Blaze-Tasks, for task scheduling and task reductions on shared memory architectures. The framework has been designed with lock-free techniques and generic programming principles in mind. Blaze-Tasks is implemented entirely in C++17 and is thus portable. To load-balance the computation, Blaze-Tasks uses task stealing. To manage contention on a task pool, the number of lock-free attempts to steal a task depends on the distance between thief and pool owner and the estimated number of tasks in a victim’s pool. This article evaluates the Blaze framework on Intel and IBM dual-socket systems using nine benchmarks and compares its performance with other task parallel frameworks. While Cilk outperforms Blaze on Intel on most benchmarks, the evaluation shows that Blaze is competitive with OpenMP and other library-based implementations. On IBM, the experiments show that Blaze outperforms other approaches on most benchmarks.

Details

ISSN :
15443973 and 15443566
Volume :
15
Database :
OpenAIRE
Journal :
ACM Transactions on Architecture and Code Optimization
Accession number :
edsair.doi...........80fe4bef067a5f8c4c77993d30546b18