Dryad: distributed data-parallel programs from sequential building blocks. Isard, M., Budiu, M., Yu, Y., Birrell, A., & Fetterly, D. In Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007, of EuroSys '07, pages 59–72, New York, NY, USA, March, 2007. Association for Computing Machinery.
Dryad: distributed data-parallel programs from sequential building blocks [link]Paper  doi  abstract   bibtex   
Dryad is a general-purpose distributed execution engine for coarse-grain data-parallel applications. A Dryad application combines computational "vertices" with communication "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 flies, 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 multiple 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 progresses to make efficient use of the available resources. Dryad is designed to scale from powerful multi-core single 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 vertices.
@inproceedings{isard_dryad_2007,
	address = {New York, NY, USA},
	series = {{EuroSys} '07},
	title = {Dryad: distributed data-parallel programs from sequential building blocks},
	isbn = {978-1-59593-636-3},
	shorttitle = {Dryad},
	url = {https://doi.org/10.1145/1272996.1273005},
	doi = {10.1145/1272996.1273005},
	abstract = {Dryad is a general-purpose distributed execution engine for coarse-grain data-parallel applications. A Dryad application combines computational "vertices" with communication "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 flies, 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 multiple 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 progresses to make efficient use of the available resources. Dryad is designed to scale from powerful multi-core single 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 vertices.},
	urldate = {2022-02-21},
	booktitle = {Proceedings of the 2nd {ACM} {SIGOPS}/{EuroSys} {European} {Conference} on {Computer} {Systems} 2007},
	publisher = {Association for Computing Machinery},
	author = {Isard, Michael and Budiu, Mihai and Yu, Yuan and Birrell, Andrew and Fetterly, Dennis},
	month = mar,
	year = {2007},
	keywords = {cluster computing, concurrency, dataflow, distributed programming},
	pages = {59--72},
}

Downloads: 0