HackerTubewatch
Surprise me
Frame from Simon Peyton Jones: Data Parallel Haskell Plays via YouTube's privacy-enhanced embed

Simon Peyton Jones: Data Parallel Haskell

nuACM
Talks
YouTube
5 HN users recommended this talk5 months2010–2017 score 5
Years with an HN recommendation, 2007–2026

Recommended as a fascinating look at easy parallelism abstractions, though other commenters note the approach never beat sequential C by much.

Simon Peyton Jones explains nested data parallelism and Data Parallel Haskell, an approach to exploiting multicore and distributed hardware while keeping a simple single-control-flow programming model.

“a promising language abstraction to do hard things with parallelism relatively easily” (HN, 2011)

5 recommendations · 2 citations · 3 critical · 1 jokes · Talks · advanced · partly dated

11 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@drhodes Jun 2010 Recommends
on HN thread 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. [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.
Parallelizing non-trivial data structures while avoiding tedious bookkeeping.
@Peaker Apr 2011 Recommends
on HN thread 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: [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.
Data parallel Haskell as an abstraction for easy parallelism.
@reitzensteinm Apr 2014 Recommends
on HN thread Speed memory access by arranging data to take advantage of CPU caching
Read more
This is both a straw man (OP asked for limited help, not omnipotence), and predicting the future by drawing a line from the past. Functional compilers that outperform hand tuned C++ on many core machines may be possible, but very hard. Just because everyone has previously underestimated the difficulty does not mean it's an idea worthy of derision. 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. [this video]
Makes high performance Haskell's eventual success look plausible.
@sgrove Sep 2014 Recommends
on HN thread 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. [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.
Shows how Haskell compilers map out contiguous memory.
@anaphor Nov 2014 Recommends
on HN thread 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 [this video]
Similar talk on nested data parallelism for hierarchical structures.

Citations, criticism and jokes

@thirsteh Sep 2012 Cites it
on HN thread White Paper: Haskell vs. F# vs. Scala [pdf]
Read more
tl;dr: "we remark that all 3 languages provide easy-to-use, high-level and efficient support for parallelism. Haskell has an edge in its rich libraries and aggressive optimisation. Through laziness, top-level parallelism can be specified in a more modular way, minimising the need to modify components and avoiding any notion of explicit threads. Thus, Haskell is the language of choice for minimally intrusive parallelism. F# and Scala provide several mechanisms 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] / [this video] ) and others.
Data Parallel Haskell as a comparison point for language parallelism.
@mpweiher Jun 2014 Cites it
on HN thread Teenage Haskell
Read more
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 still compile to C? Does it still use Tk? Think about Ruby, Python, etc. I could go on (the VPRI stuff is also amazing), but I think you get the idea: it seems that not only can you be a productive member of society without FP, it sure looks like people can be a lot more productive without FP than with it. Java is not really a good example of anything. Certainly not of an OOPL: "Java is the most distressing thing to happen to computing since MS-DOS." "If the pros at Sun had had a chance to fix Java, the world would be a much more pleasant place. This is not secret knowledge. It’s just secret to this pop culture." — Alan Kay (who coined the term "object oriented") I don't quite get why you see LISP as an example for the power of FP, it is a multi-paradigm language with some functional elem
@mpweiher Sep 2014 Pushes back
on HN thread Programming without objects
Read more
LOL! My 1st year university course was 1989. When were you born? Interestingly, that is exactly what I see in the current generation of FP hypsters. Grandiose claims based on very limited experience. Aka: know so little, assume so much. But don't worry, it happens to the best. My favorite is still the Simon Peyton-Jones talk on Data Parallel Haskell, where he can't help himself, but just has to make the snide comment "this is only possible in a language like Haskell". Hand raised in the auditorium: The HPC community has been doing this for years. In FORTRAN. But carry on... (And of course, the results are dismal: 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 :-) [this video]
@mpweiher Oct 2015 Pushes back
on HN thread 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 talk[1] about Data Parallel Haskell, which after many years of development was still slower on 6 cores than C on a single core. [1] [this video]
@mpweiher Feb 2017 Pushes back
on HN thread Fooling the masses with performance results on parallel computers (2010)
Read more
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: [this video] around the 1h 10min mark. Four cores to match sequential C (previously had written six, was wrong)
@shriphani Jul 2011 Makes a joke
on HN thread 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 : [this video] (around the 4 min mark).

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close