Microsoft Research recently announced the availability, under
, an infrastructure which allows a programmer to use the resources of a computer cluster or a data center for running data-parallel programs.
A Dryad programmer can use thousands of machines, each of them with multiple processors or cores, without knowing anything about concurrent programming.
That's a pretty heady statement. What does Dryad do, exactly
, to enable this level of abstraction, shielding programmers from the incredibly complex world of distributed parallel computing? Does the level of abstraction impact the degree to which sophisticated
programmers can interact with and control some of the low level mechanisms of the Dryad runtime? What is it about LINQ that made it the no-brainer managed programming abstraction for Dryad?
Simply, how does Dryad work?
This is the core question that Erik and I had after
our conversation with Roger Barga
(part one of this E2E mini-series on Dryad and DryadLINQ - perhaps we should focus just on DryadLINQ next time, but for now, all the information in this conversation is certain to keep you very busy and answer many questions
you may have after learning about Dryad in part one...).
Lots of whiteboarding here. Put on your thinking caps!