Monday, July 26, 2010

Concurrency's Shysters

Excellent article by Bryan Cantrill, Concurrency’s Shysters:
[C]oncurrency is still being used to instill panic in the uninformed. This time, it is chip-level multiprocessing (CMP) instead of SMP that promises to be the End of Days — and the shysters have taken a new guise in the form of transactional memory. The proponents of this new magic tonic are in some ways darker than their forebears: it is no longer enough to warn of Judgement Day — they must also conjure up notions of Original Sin to motivate their perverted salvation. “The heart of the problem is, perhaps, that no one really knows how to organize and maintain large systems that rely on locking” admonished Nir Shavit recently in CACM. (Which gives rise to the natural follow-up question: is the Solaris kernel not large, does it not rely on locking or do we not know how to organize and maintain it? Or is that we do not exist at all?)
I know much too little about the subject to have an informed opinion, but I think countering hype in all its forms it important.


Anonymous said...

Having been able to watch my students during six years writing concurrent programs in C I can tell you that downplaying concurrency and locking is possibly the bigger hype. Programming with shared state and side effects is *extremely* hard from what I can tell.

Tomáš Pospíšek

Manuel Simoni said...

Sure it's hard, and I'm not saying that anyone but experts should do it, but what I find annoying is that, as the article says, some solutions are presented as silver bullets for such a complex domain.