Quick link: Guy Steele talk on design for parallel processing

Kevin Reid <[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
"Organizing Functional Code for Parallel Execution
or, foldl and foldr Considered Slightly Harmful"

<http://research.sun.com/projects/plrg/Publications/ICFPAugust2009Steele.pdf 
 >

First three slides:

> The Big Messages
>
> • Effective parallelism uses trees.
> • Associative combining operators are good.
> • MapReduce is good. Catamorphisms are good.
> • There are systematic strategies for parallelizing superficially   
> sequential code.
> • We must lose the “accumulator” paradigm and emphasize “divide-and- 
> conquer.”

> This Talk Is about Performance
>
> The bag of programming tricks that has served us so well for the  
> last 50 years is the wrong way to think going forward and must be  
> thrown out.

> Why?
>
> • Good sequential code minimizes total number of operations.
> > Clever tricks to reuse previously computed results.
> > Good parallel code often performs redundant operations to reduce  
> communication.
> • Good sequential algorithms minimize space usage.
> > Clever tricks to reuse storage.
> > Good parallel code often requires extra space to permit temporal  
> decoupling.
> • Sequential idioms stress linear problem decomposition.
> > Process one thing at a time and accumulate results.
> > Good parallel code usually requires multiway problem decomposition  
> and multiway aggregation of results.

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.