08-05-2009, 11:23 PM
Y. Yu, M. Isard, D. Fetterly, M. Budiu, Ú. Erlingsson, P. K. Gunda, and J. Currey. DryadLINQ: A system for general-purpose distributed data-parallel computing using a high-level language. In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI), December 8-10 2008
* * *
The relation of some terms:
LINQ: a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic to support queries and provides class libraries to take advantage of these capabilities.
A link: http://msdn.microsoft.com/en-us/library/bb308959.aspx
Dryad: A distributed execution engine for data-parallel applications. Its role is similar to MapReduce to some extent.
http://baijia.info/showthread.php?tid=203
DryadLINQ: a framework that generates Dryad computations from the LINQ Language-Integrated Query extensions to C#
A DryradLINQ program uses of LINQ expressions to perform side-effect-free transformations on datasets, and can be written and debugged using standard .NET development tools. So using a DryadLINQ program is more convenient, since it can automatically and transparently translates the data parallel portions of the program into a distributed execution plan which is passed to Dryad execution platform.
The basic idea of DryadLINQ is running on .NET environment, first the user uses LINQ to specify the tasks they want to do and then DryadLINQ compile the LINQ expressions into a distributed Dryad execution plan which can be executed directly on Dryad. When Dryad finished running the task, it first writes the results to the output tables. Then DryadLINQ system created the local DryadTable objects encapsulating the results. In this case, the user can read the contents as .NET objects that stored in DryadTables. So, from the users' point of view, they do not need to take care of the complicate process of scheduling, distribution, and fault-tolerance steps. This is more friendly for users.
The experiments done in the evaluation part of this paper is representative. Especially, it compares DryadLINQ to Dryad, and shows the preformance of DryadLINQ is just a little worse than Dryad, while providing a great programming interface to users.
Hence, DryadLINQ is gives Dryad added values. Though Dryad is flexible, its graph vertexes arrangements can not be dealt with by casual users. Comparing to MapReduce, Dryad is more complex. Thus, DrayLINQ actually compensate this disadvantage of Dryad.
(laxab, lingu)
* * *
The relation of some terms:
LINQ: a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic to support queries and provides class libraries to take advantage of these capabilities.
A link: http://msdn.microsoft.com/en-us/library/bb308959.aspx
Dryad: A distributed execution engine for data-parallel applications. Its role is similar to MapReduce to some extent.
http://baijia.info/showthread.php?tid=203
DryadLINQ: a framework that generates Dryad computations from the LINQ Language-Integrated Query extensions to C#
A DryradLINQ program uses of LINQ expressions to perform side-effect-free transformations on datasets, and can be written and debugged using standard .NET development tools. So using a DryadLINQ program is more convenient, since it can automatically and transparently translates the data parallel portions of the program into a distributed execution plan which is passed to Dryad execution platform.
The basic idea of DryadLINQ is running on .NET environment, first the user uses LINQ to specify the tasks they want to do and then DryadLINQ compile the LINQ expressions into a distributed Dryad execution plan which can be executed directly on Dryad. When Dryad finished running the task, it first writes the results to the output tables. Then DryadLINQ system created the local DryadTable objects encapsulating the results. In this case, the user can read the contents as .NET objects that stored in DryadTables. So, from the users' point of view, they do not need to take care of the complicate process of scheduling, distribution, and fault-tolerance steps. This is more friendly for users.
The experiments done in the evaluation part of this paper is representative. Especially, it compares DryadLINQ to Dryad, and shows the preformance of DryadLINQ is just a little worse than Dryad, while providing a great programming interface to users.
Hence, DryadLINQ is gives Dryad added values. Though Dryad is flexible, its graph vertexes arrangements can not be dealt with by casual users. Comparing to MapReduce, Dryad is more complex. Thus, DrayLINQ actually compensate this disadvantage of Dryad.
(laxab, lingu)