Live data from Hacker News

Haxl: Making Concurrency Unreasonably Easy [video]

events.techcast.com

31–34 of 34 posts

Re: Haxl: Making Concurrency Unreasonably Easy [video]

#31
post #12

Earlier quoted context omitted.

For one, they serve different purposes. Haxl is specifically for concurrent data retrieval while BEAM is a general purpose platform for fault-tolerant computation. For another, they operate via different interfaces. BEAM languages communicate concurrently only via a message passing interface. Haxl lets the author write declarative code specifying what to retrieve, then the library executes it concurrently and in para…

Thank you for the breakdown!

Cheers!

Re: Haxl: Making Concurrency Unreasonably Easy [video]

#32
post #18
post #7

Earlier quoted context omitted.

I think the idea is that with the Haxl approach the scheduling can be dealt with independently from your business logic. By the way, I don't see how Church-Rosser would give you any free parallelism---even in theory. You'd still have to heed Guy Steele's advice (see https://vimeo.com/6624203 ).

> By the way, I don't see how Church-Rosser would give you any free parallelism---even in theory. Church-Rosser theorem means that all possible reduction sequences lead to the same normal form, so you can β reduce the subterms in parallel. If you look at Paul Hudak's and SPJ's publications from the late 1980s and early 1990s many of them are actually about trying to exploit this implicit parallelism: http://sunsite.i…

Yes, but you still need to have those parallel subterms in the first place!

If you eg still use a linked list data structure as an input, you are never gonna be faster than O(n) no matter how clever your implicit parallelism is.

Re: Haxl: Making Concurrency Unreasonably Easy [video]

#33
post #32
post #18

Earlier quoted context omitted.

> By the way, I don't see how Church-Rosser would give you any free parallelism---even in theory. Church-Rosser theorem means that all possible reduction sequences lead to the same normal form, so you can β reduce the subterms in parallel. If you look at Paul Hudak's and SPJ's publications from the late 1980s and early 1990s many of them are actually about trying to exploit this implicit parallelism: http://sunsite.i…

Yes, but you still need to have those parallel subterms in the first place! If you eg still use a linked list data structure as an input, you are never gonna be faster than O(n) no matter how clever your implicit parallelism is.

> If you eg still use a linked list data structure as an input, you are never gonna be faster than O(n) no matter how clever your implicit parallelism is.

I think you took away completely the wrong point from Steele's talk. The bottleneck is not in the data structures, it is in the control flow, which is just a trivial way of restating Amdahl's law. In fact Steele co-wrote an excellent expository paper with Daniel Hillis, while they were at Thinking Machines, showing how to do parallel processing on linked lists:

http://cva.stanford.edu/classes/cs99s/papers/hillis-steele-d...

Re: Haxl: Making Concurrency Unreasonably Easy [video]

#34
post #33
post #32

Earlier quoted context omitted.

Yes, but you still need to have those parallel subterms in the first place! If you eg still use a linked list data structure as an input, you are never gonna be faster than O(n) no matter how clever your implicit parallelism is.

> If you eg still use a linked list data structure as an input, you are never gonna be faster than O(n) no matter how clever your implicit parallelism is. I think you took away completely the wrong point from Steele's talk. The bottleneck is not in the data structures, it is in the control flow, which is just a trivial way of restating Amdahl's law. In fact Steele co-wrote an excellent expository paper with Daniel Hi…

I was in the audience and asked questions, and chatted with him afterwards..

Data flow dictates control flow (to a certain extent).

The paper you linked to is very interesting: but even there they have to augment their 'linked list' with more links. And they assume one processor per list element and don't count the set-up time of having each processor find its list element.

(There's some more complication to it. But I am glad between 1986 when the paper was written and 2009 when he gave the talk, he figured out how to explain some of these issues more simply.)

Post reply on HN