2010 IEEE International Symposium on Parallel &Amp; Distributed Processing (IPDPS) 2010
DOI: 10.1109/ipdps.2010.5470403
|View full text |Cite
|
Sign up to set email alerts
|

Executing task graphs using work-stealing

Abstract: Abstract-NABBIT is a work-stealing library for execution of task graphs with arbitrary dependencies which is implemented as a library for the multithreaded programming language Cilk++. We prove that NABBIT executes static task graphs in parallel in time which is asymptotically optimal for graphs whose nodes have constant in-degree and out-degree. To evaluate the performance of NABBIT, we implemented a dynamic program representing the Smith-Waterman algorithm, an irregular dynamic program on a two-dimensional g… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
49
0

Year Published

2010
2010
2016
2016

Publication Types

Select...
4
4
1

Relationship

0
9

Authors

Journals

citations
Cited by 55 publications
(50 citation statements)
references
References 17 publications
1
49
0
Order By: Relevance
“…The Nabbit [11] library extension to Cilk++ allows the user to declare arbitrary task dependences so as to create task graphs that cannot be created with nested fork-join operations. Unlike DDTs, where the task graph is specified implicitly via await clauses on async statements, it is created explicitly in Nabbit via calls to an AddDep() method before the start of graph execution.…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…The Nabbit [11] library extension to Cilk++ allows the user to declare arbitrary task dependences so as to create task graphs that cannot be created with nested fork-join operations. Unlike DDTs, where the task graph is specified implicitly via await clauses on async statements, it is created explicitly in Nabbit via calls to an AddDep() method before the start of graph execution.…”
Section: Resultsmentioning
confidence: 99%
“…The sets of task graphs that can be supported by a dynamic scheduler depend on the underlying task primitives in the parallel programming model e.g., the task graphs created by Cilk's spawn and sync primitives are restricted to fully-strict computation graphs [8], whereas the task graphs created by async and finish constructs in X10 and HJ belong to the set of terminally-strict computation graphs [9]. A number of researchers have advocated the benefits of more general task graph structures [10], [11], [12], and shown that the use of these task graph structures can lead to improved performance.…”
Section: Introductionmentioning
confidence: 99%
“…Work-stealing (e.g., [34]) is a concept related to adaptive load balancing, but with important differences. Rather than moving the partitions among the machines, it implies dividing the workload into many more partitions than the number of available machines.…”
Section: Monotonic Joinsmentioning
confidence: 99%
“…To the underlying fork-join pattern, each node meets the single predecessor requirement by having its last-completing task graph predecessor function as its parent in the fork-join pattern. Note that Nabbit [12] uses Cilk++ to execute arbitrary task graphs in much the same way.…”
Section: B Fork-join Parallel Patternmentioning
confidence: 99%