Back to Search
Start Over
Blaze-Tasks
- 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.
- Subjects :
- 020203 distributed computing
Generic programming
Computer science
020207 software engineering
02 engineering and technology
Parallel computing
Cilk
Scheduling (computing)
Software portability
Shared memory
Hardware and Architecture
Problem domain
Parallel programming model
0202 electrical engineering, electronic engineering, information engineering
Non-blocking algorithm
computer
Software
Information Systems
computer.programming_language
Subjects
Details
- ISSN :
- 15443973 and 15443566
- Volume :
- 15
- Database :
- OpenAIRE
- Journal :
- ACM Transactions on Architecture and Code Optimization
- Accession number :
- edsair.doi...........80fe4bef067a5f8c4c77993d30546b18