Proceedings of the 45th Annual Design Automation Conference 2008
DOI: 10.1145/1391469.1391474
|View full text |Cite
|
Sign up to set email alerts
|

Parallel programming

Abstract: The computer industry has a problem. As Moore's law marches on, it will be exploited to double cores, not frequencies. But all those cores, growing to 8, 16 and beyond over the next several years, are of little value without parallel software. Where will this come from? With few exceptions, only graduate students and other strange people write parallel software. Even for numerically intensive applications, where parallel algorithms are well understood, professional software engineers almost never write paralle… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
61
0

Year Published

2012
2012
2017
2017

Publication Types

Select...
3
3

Relationship

0
6

Authors

Journals

citations
Cited by 53 publications
(61 citation statements)
references
References 4 publications
0
61
0
Order By: Relevance
“…Some of these skeleton frameworks explicitly include stream parallelism as a major source of concurrency exploitation [36,2,34,19]: rather than allowing programmers to connect stages into arbitrary graphs, basic forms of stream parallelism are provided to the programmer in high-level constructs such as pipeline (modeling computations in stages), farm (modeling parallel computation of independent data tasks), and loop (supporting generation of cycles in a stream graph and typically used in combination with a farm body to model Divide&Conquer computations). More recently, approaches such as those followed in algorithmic skeletons but based on parallel design patterns have been claimed to be suitable to support multi-and many-core programming [8,23]. Differences between algorithmic skeletons and parallel design patterns lie mainly in the motivations leading to these two apparently distinct concepts and in the research environments where they were developed: the parallel programming community for algorithmic skeletons and the software engineering community for parallel design patterns.…”
Section: Applications and Problem Solving Environmentsmentioning
confidence: 99%
See 1 more Smart Citation
“…Some of these skeleton frameworks explicitly include stream parallelism as a major source of concurrency exploitation [36,2,34,19]: rather than allowing programmers to connect stages into arbitrary graphs, basic forms of stream parallelism are provided to the programmer in high-level constructs such as pipeline (modeling computations in stages), farm (modeling parallel computation of independent data tasks), and loop (supporting generation of cycles in a stream graph and typically used in combination with a farm body to model Divide&Conquer computations). More recently, approaches such as those followed in algorithmic skeletons but based on parallel design patterns have been claimed to be suitable to support multi-and many-core programming [8,23]. Differences between algorithmic skeletons and parallel design patterns lie mainly in the motivations leading to these two apparently distinct concepts and in the research environments where they were developed: the parallel programming community for algorithmic skeletons and the software engineering community for parallel design patterns.…”
Section: Applications and Problem Solving Environmentsmentioning
confidence: 99%
“…FastFlow high-level patterns appear in various algorithmic skeleton frameworks, including Skandium [22], Muesli [10] and Muskel [3]. The parallel design patterns presented in [23] also include equivalents of the FastFlow high-level patterns. These programming frameworks, however, do not specifically address stream programming and so FastFlow outdoes them in terms of efficiency.…”
Section: Related Workmentioning
confidence: 99%
“…Parallel pattern that abstracts and re-uses common parallelism idioms is an increasingly important technology [14]. Algorithmic skeletons [15] provide specific implementations of patterns in the form of functions that have effective parallel implementations and that are instantiated with concrete parameters to specify functionality and behaviour.…”
Section: Parallel Patterns and Skeletonsmentioning
confidence: 99%
“…Therefore, a general trend is to find higher levels of abstractions that can be used to simplify the challenging process of parallelising a complex application. The most successful development in this direction is the use of patterns of parallel computation [38], so called algorithmic skeletons [11], and to instantiate these patterns thereby getting parallelism "for free." The most prominent pattern using this approach is Google's MapReduce pattern [14].…”
Section: Related Workmentioning
confidence: 99%