Dryad
Top Cited Papers
- 21 March 2007
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGOPS Operating Systems Review
- Vol. 41 (3) , 59-72
- https://doi.org/10.1145/1272998.1273005
Abstract
Dryad is a general-purpose distributed execution engine for coarse-grain data-parallel applications. A Dryad applica- tion combines computational "vertices" with communica- tion "channels" to form a dataflow graph. Dryad runs the application by executing the vertices of this graph on a set of available computers, communicating as appropriate through files, TCP pipes, and shared-memory FIFOs. The vertices provided by the application developer are quite simple and are usually written as sequential programs with no thread creation or locking. Concurrency arises from Dryad scheduling vertices to run simultaneously on multi- ple computers, or on multiple CPU cores within a computer. The application can discover the size and placement of data at run time, and modify the graph as the computation pro- gresses to make efficient use of the available resources. Dryad is designed to scale from powerful multi-core sin- gle computers, through small clusters of computers, to data centers with thousands of computers. The Dryad execution engine handles all the difficult problems of creating a large distributed, concurrent application: scheduling the use of computers and their CPUs, recovering from communication or computer failures, and transporting data between ver- tices.Keywords
This publication has 22 references indexed in Scilit:
- CgACM Transactions on Graphics, 2003
- Run-time adaptation in riverACM Transactions on Computer Systems, 2003
- Parallel and Distributed HaskellsJournal of Functional Programming, 2002
- P-RIO: a modular parallel-programming environmentIEEE Concurrency, 1998
- Programming parallel algorithmsCommunications of the ACM, 1996
- A case for NOW (Networks of Workstations)IEEE Micro, 1995
- Loading databases using dataflow parallelismACM SIGMOD Record, 1994
- Parallel database systemsCommunications of the ACM, 1992
- PVM: A framework for parallel distributed computingConcurrency: Practice and Experience, 1990
- The Gamma database machine projectIEEE Transactions on Knowledge and Data Engineering, 1990