By: RichardC (tich.delete@this.pobox.com), May 16, 2013 11:19 am
Room: Moderated Discussions
Brendan (btrotter.delete@this.gmail.com) on May 16, 2013 11:54 am wrote:
> Here's another quote: "An early objective was to permit modification of concurrent programs
> via a graphical user interface while those concurrent programs were executing."
>
> I'd be shocked if anyone thought this would be a "risk free" endeavour from the outset.
> The fact that it actually worked with only one deadlock in 4 years is amazing and shows
> that even academics can get an extremely convoluted example of threading 99% right.
>
> - Brendan
My take on the paper is that a bunch of smart people tried really hard to get it right
using the commonly-accepted best practices (careful design, code review, thorough
testing). And it didn't work. And the lesson is that parallel programming with
shared memory, lightweight threads, and mutexes - the commonest approach to
exploiting multi-cores - is unmanageable for "non-trivial" problems. You can learn
from their experience, or not.
I guess it all shows that for some people a glass is half-full, and for others it's
half empty. I would say that a program that is "99% right" is 100% useless
(and worse than useless if the behavior in the remaining 1% case is to give wrong
results with no warning).
> Here's another quote: "An early objective was to permit modification of concurrent programs
> via a graphical user interface while those concurrent programs were executing."
>
> I'd be shocked if anyone thought this would be a "risk free" endeavour from the outset.
> The fact that it actually worked with only one deadlock in 4 years is amazing and shows
> that even academics can get an extremely convoluted example of threading 99% right.
>
> - Brendan
My take on the paper is that a bunch of smart people tried really hard to get it right
using the commonly-accepted best practices (careful design, code review, thorough
testing). And it didn't work. And the lesson is that parallel programming with
shared memory, lightweight threads, and mutexes - the commonest approach to
exploiting multi-cores - is unmanageable for "non-trivial" problems. You can learn
from their experience, or not.
I guess it all shows that for some people a glass is half-full, and for others it's
half empty. I would say that a program that is "99% right" is 100% useless
(and worse than useless if the behavior in the remaining 1% case is to give wrong
results with no warning).