Skip to content
0:00 / 0:00

#haskell#simonpeytonjones#dataparallelhaskell

Simon Peyton Jones: Data Parallel Haskell

nuACM

701 subscribers • 1 video on Hallway

YouTube
  • Recommended by 7 people: 5 on Hacker News, 1 in engineering communities and 1 curated list.
  • A classic. People kept recommending it from 2010 to 2014.
  • Presented by Simon Peyton Jones, co-creator of Haskell

Advanced. Deep dive for people who know the field.

27K views16 years ago7 recommendations

Programming languagesSystems programmingFunctional programmingConcurrency and parallelismCompilers and interpreters

Simon Peyton Jones explains nested data parallelism and how Data Parallel Haskell compiles parallel programs for multicore processors.

There are many approaches to exploiting multi-cores, but a particularly promising one is the "data-parallel" paradigm, because it combines massive parallelism (on both shared and distributed memory) with a simple, single-control-flow programming model. Indeed, I think that data parallelism is the only way we will be able to exploit tens or hundreds of processors effectively. Alas, data-parallel programming is usually restricted to "flat" data parallelism, which is good for implementers but bad for programmers. Instead, I'll describe the "nested" data parallel programming model, first developed in the 90's by Blelloch and Sabot. It is great for programmers but much harder to implement; as a result, it's virtually unknown in practice. It's really only feasible to support nested data parallelism in a purely functional language, so we are building a high-performance implementation in Haskell.

Why it's here

7 people recommend this, 1 disputes it

What people say. Recommended as a fascinating look at high-performance functional programming and compiler-directed parallelization.

u/graemedeaconin r/haskell • Recommends

Data Parallel Haskell Talk by Simon Peyton Jones

programming-talkscurated list on GitHubRecommends

Under “Haskell”

Data Parallel Haskell 01:19:56 by **Simon Peyton Jones** (2010)

drhodeson Hacker News • Recommends

On “SeaMicro drops an atom bomb on the server industry”

While this isn't undeniable proof, it's interesting none the less, Simon Peyton Jones: Data Parallel Haskell. link to this video He talks about how this scheme can parallelize non-trivial data structures, and how tedious book keeping can be avoided. I haven't used it yet in a project, so I can't speak of its efficacy - but worth a watch, imho.

Peakeron Hacker News • Recommends

On “Joel Spolsky: Can your programming language do this?”

Here's the main Haskell hero, Simon Peyton Jones giving a talk about data parallel Haskell, which I think is a promising language abstraction to do hard things with parallelism relatively easily: link to this video As for techniques that can be used now: Haskell's `par` and `pseq` combinators allow adding parallelization to "hard" code after-the-fact pretty easily.

reitzensteinmon Hacker News • Recommends

On “Speed memory access by arranging data to take advantage of CPU caching”

…I think it's much more likely that it's perpetually ten years away, until one day it's not (like the current, possibly temporary end to Moore's Law). Watching Simon Peyton Jones' talk on data parallel Haskell, I'd not make a bet against high performance Haskell's eventual success, especially as core counts continue to climb, and NUMA gets more NU. link to this video…

sgroveon Hacker News • Recommends

On “Rhine – A Lisp on LLVM”

I believe Haskell compilers are pretty amenable to stuff like this - watching "Data Parallel Haskell", it was interesting to see how they actually map out contiguous memory, etc. link to this video Sadly, it doesn't seem to be as tightly integrated as what you'd see in SBCL from a developers PoV, but I'm certainly intrigued by their ability to achieve some very specific implementation while separating it from the expression of the algorithms.

anaphoron Hacker News • Recommends

On “Guy Steele on Functional Code for Parallel Execution (2009) [video]”

Well nested data parallelism generally applies to hierarchical structures like trees, whereas flat data parallelism applies to things like arrays and whatnot. You might want to watch this (similar in some ways) talk by SPJ on Data Parallel Haskell link to this video

mpweiheron Hacker News • Disputes

On “Programming without objects”

…smal: 6 cores required to match sequential C! Considering that this sort of concurrency there are others is exclusively for better performance, that is a damning result). Despite these, er, issues, it is an absolutely fascinating talk, and the techniques look quite worthwhile. After all, they've been in use in the HPC community for some time :-) link to this video…

mpweiheron Hacker News • Disputes

On “Moore’s law may be running out of steam, but chip costs will continue to fall”

The "FP for multi-core" trope is a red-herring, at least so far. Yes, immutability makes parallelizing easier. It also makes things in general so much more expensive that we're still net-negative by a large margin. For example, Simon Peyton Jones gave a talk1 about Data Parallel Haskell, which after many years of development was still slower on 6 cores than C on a single core. 1 link to this video

mpweiheron Hacker News • Disputes

On “Fooling the masses with performance results on parallel computers (2010)”

One of my favorites of these is only showing the speedup..."scales linearly", without comparing to a non-parallel baseline. First time I saw this was with Clik, which reported linear scaling. I was impressed, until I found out that the parallel version was 6x slower on a single CPU than the sequential version. Similar with a SPJ talk on parallel Haskell (can't find it right now). Big claims about this being the One True Way, and then required four cores to match C sequential case. Hmmm. UPDATE: link to this video around the 1h 10min mark. Four cores to match sequential C (previously had written six, was wrong)

u/bhurt42in r/compsci • Mentions

On “What is the most novel, interesting, and original aspect of a programming language you have seen in the last 10 years?”

Haskel's REPA library. Take a look at: link to this video

shriphanion Hacker News • Mentions

On “The Rise of "Worse is Better"”

Dude, you just DID NOT insult Haskell ! Sort of relevant Apparently SPJ was once asked by a customs official in America if an american citizen could do what he did. Someone with him announced that his work as the creator of ML made him irreplaceable. So you see, ML's got fanboys in high places. Even close to SPJ apparently. Source for SPJ Koan : link to this video (around the 4 min mark).

thirstehon Hacker News • Mentions

On “White Paper: Haskell vs. F# vs. Scala [pdf]”

…chanisms for parallelisation, some as high level as Haskell’s, some lower level with more potential for performance tuning. Thus, these languages provide a more direct route to controlling low level aspects and can use object-oriented and impure language features." It would be cool to see a similar contrast between Data Parallel Haskell ( link / link to this video ) and others.…

mpweiheron Hacker News • Mentions

On “Teenage Haskell”

Your make some good points, but I don't quite buy them. Turbo Pascal for example was written by a single guy, Anders Hejlsberg, in about 2 years for several platforms in assembly language, and included an integrated (though primitive) text editor/IDE. Smalltalk was taken from ST-72 to ST-80 in 8 years, with small teams that also had to invent/implement complete VMs, operating systems, bitmap graphics engines, GUI framework(s) and sophisticated IDEs. You write that it would be nice to have an FP IDE so it could give you better feedback (or were you talking about an existing FP IDE). These guys built the live IDE (even better than types for direct feedback) in a fraction of the time. Does OPAL…