Hello all,
I'm going to keep this as short as possible...basically this guy came
today in Machester uni to talk to all postgrads about work he's done on
STM implementations for Microsoft research.
In a nutshell, and very general he highlighted the following:
1. general purpose STM systems that simply wrap your transaction in an
atomic block have very poor performance. He showed experiment graphs
contrasting the performance and scalability of careful manual
locking VS general purpose STMs. He specifically emphasized that
especially in hyper-threading context general-purpose STMs don't
scale at all (did not understand why exactly), even though they do
give the programmer a strong tool of thinking on a higher level
about concurrency (he emphiasized that as well).
2. If we want to make STMs competitive (both performance and
scalability) with the risky manual locking we simpy cannot get away
with mere atomic expressions of the form: atomic {...} . He then
went on showing some ridiculously complex imlementations of parallel
queues in C++ and of a system called specTM which compromises some
of the higher level stuff normal STMs do for the sake of
performace...and of course he showed through graphs that it works on
his experiments.
Now i don't want to be judgemental (i'll resist judging him just because
he is from Microsoft!) - all i want is to learn something from this.
Obviously clojure's STM falls under the general-purpose category if
interpret what he said correctly. From a programmer's perspective
(dosync ...) is an "atomic expression" (a transaction)...it doesn't go
any higher level than this does it? so then, with all this immutability
that stresses the garbage collector and a high level general purpose
(and apparently inefficient and not scalable) STM , are we paying too
much of a price being clojure programmers?
Don't get me wrong...i've completely and utterly fallen i love with
clojure and i'm not going back to OO. However it is best to have all
the facts upfront...isn't it?
What are your views people? is STM hurting us that bad?
Jim
ps: btw the guy's name is Tim Harris...
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en