{"id":169536,"date":"2004-12-16T14:57:41","date_gmt":"2004-12-16T14:57:41","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/project\/dryad\/"},"modified":"2017-06-08T11:59:55","modified_gmt":"2017-06-08T18:59:55","slug":"dryad","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/dryad\/","title":{"rendered":"Dryad"},"content":{"rendered":"

The Dryad Project is investigating programming models for writing parallel and distributed programs to scale from a small cluster to a large data-center.<\/p>\n

<\/p>\n

\n

Overview<\/h1>\n

New! <\/em><\/b>Dryad and DryadLINQ are now available in source form at the Dryad GitHub repository<\/a>, with pre-built binaries available from NuGet.org<\/a>. For release documentation see our Getting Started with DryadLINQ<\/a> page.<\/p>\n

Most of the information below is historical and will be updated over time and migrated to the DryadLINQ documentation<\/a>\u00a0site.<\/p>\n

Dryad is 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.<\/p>\n

The Structure of Dryad Jobs<\/h1>\n

\"\"<\/span><\/span><\/p>\n

A Dryad programmer writes several sequential programs and connects them using one-way channels. The computation is structured as a directed graph: programs are graph vertices, while the channels are graph edges. A Dryad job is a graph generator which can synthesize any directed acyclic graph. These graphs can even change during execution, in response to important events in the computation.<\/p>\n

Dryad is quite expressive. It completely subsumes other computation frameworks, such as Google’s map-reduce, or the relational algebra. Moreover, Dryad handles job creation and management, resource management, job monitoring and visualization, fault tolerance, re-execution, scheduling, and accounting.<\/p>\n

The Dryad Software Stack<\/h1>\n

As a proof of Dryad’s versatility, a rich software ecosystem has been built on top Dryad:<\/p>\n