Proceedings of the 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness 2011
DOI: 10.1145/1988915.1988918
|View full text |Cite
|
Sign up to set email alerts
|

A programming model for deterministic task parallelism

Abstract: The currently dominant programming models to write software for multicore processors use threads that run over shared memory. However, as the core count increases, cache coherency protocols get very complex and ineffective, and maintaining a shared memory abstraction becomes expensive and impractical. Moreover, writing multithreaded programs is notoriously difficult, as the programmer needs to reason about all the possible thread interleavings and interactions, including the myriad of implicit, non-obvious, an… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
26
0

Year Published

2011
2011
2018
2018

Publication Types

Select...
6
1
1

Relationship

3
5

Authors

Journals

citations
Cited by 21 publications
(26 citation statements)
references
References 30 publications
0
26
0
Order By: Relevance
“…In recursive programs, tasks can only spawn child tasks with a subset of the privileges that they hold, i.e., tasks with pushpopdep access on a hyperqueue can pass both privileges on that hyperqueue, while tasks with either pushdep or popdep access mode can pass only the named privilege on the corresponding hyperqueue. This restriction makes it safe to apply the above rules for task scheduling separately to each procedure instance [10].…”
Section: Task Schedulingmentioning
confidence: 99%
“…In recursive programs, tasks can only spawn child tasks with a subset of the privileges that they hold, i.e., tasks with pushpopdep access on a hyperqueue can pass both privileges on that hyperqueue, while tasks with either pushdep or popdep access mode can pass only the named privilege on the corresponding hyperqueue. This restriction makes it safe to apply the above rules for task scheduling separately to each procedure instance [10].…”
Section: Task Schedulingmentioning
confidence: 99%
“…This combination of enhanced work-pushing and deferred allocation is fully automatic, application-independent, portable across NUMA machines and transparently adapts to dynamic changes at run time. These techniques require detailed information about the affinities between tasks and data, but this information is either readily available or can be obtained automatically in the run-times of recent task-parallel programming models, such as StarSs (Planas et al 2009), OpenMP 4 (OpenMP Architecture Review Board 2013), SWAN (Pratikakis et al 2011) andOpenStream (Pop andCohen 2013), which allow the programmer to make inter-task data dependences explicit. While specifying the precise task-level dataflow rather than synchronization constraints alone requires more initial work for programmers, this effort is more than offset by the resulting enhanced performance and performance portability.…”
Section: Numa-aware Optimizationsmentioning
confidence: 99%
“…Shared memory programming models with fine-grained concurrency have successfully harnessed the computational resources of such architectures (Blumofe et al 1995;Pratikakis et al 2011;OpenMP Architecture Review Board 2013;Planas et al Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored.…”
Section: Introductionmentioning
confidence: 99%
“…Each dynamic procedure instance may have a task graph that restricts the execution order of its children. This restriction allows us to prove that all parallel executions compute the same value as the sequential elision of the program [13]. 1 Note that the sequential elision of the program always respects the dependencies in the program: by deducing dependencies from input/output properties, there can never be backward dependencies in the sequential elision.…”
Section: Programming Modelmentioning
confidence: 99%