FunctionFlow: coordinating parallel tasks

With the growing popularity of task-based parallel programming, nowadays task-parallel programming libraries and languages are still with limited support for coordinating parallel tasks. Such limitation forces programmers to use additional independent components to coordinate the parallel tasks - th...

Full description

Saved in:
Bibliographic Details
Published inFrontiers of Computer Science Vol. 13; no. 1; pp. 73 - 85
Main Authors FAN, Xuepeng, LIAO, Xiaofei, JIN, Hai
Format Journal Article
LanguageEnglish
Published Beijing Higher Education Press 01.02.2019
Springer Nature B.V
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:With the growing popularity of task-based parallel programming, nowadays task-parallel programming libraries and languages are still with limited support for coordinating parallel tasks. Such limitation forces programmers to use additional independent components to coordinate the parallel tasks - the components can be third-party libraries or additional components in the same programming library or language. Moreover, mixing tasks and coordination components increase the difficulty of task-based programming, and blind schedulers for understanding tasks' dependencies. In this paper, we propose a task-based parallel programming library, FunctionFlow, which coordinates tasks in the purpose of avoiding additional independent coordination components. First, we use dependency expression to represent ubiquitous tasks' termination. The key idea behind dependency expression is to use && for both task's termination and || for any task termination, along with the combination of dependency expressions. Second, as runtime support, we use a lightweight representation for dependency expression. Also, we use suspended-task queue to schedule tasks that still have prerequisites to run. Finally, we demonstrate FunctionFlow's effectiveness in two aspects, case study about implementing popular parallel patterns with FunctionFlow, and performance comparision with state-of-the-art practice, TBB. Our demonstration shows that FunctionFlow can generally coordinate parallel tasks without involving additional components, along with comparable performance with TBB.
Bibliography:task parallel programming
FunctionFlow
coordination patterns
Document received on :2016-05-29
tasks dependency
Document accepted on :2016-09-26
ISSN:2095-2228
2095-2236
DOI:10.1007/s11704-016-6286-8