Dryad fue un proyecto de investigación en Microsoft Research para un tiempo de ejecución de propósito general para la ejecución de aplicaciones paralelas de datos . Los prototipos de investigación de los marcos de procesamiento de datos en paralelo Dryad y DryadLINQ están disponibles en formato fuente en GitHub . [1]
Autor (es) original (es) | Investigación de Microsoft |
---|---|
Desarrollador (es) | Microsoft |
Lanzamiento estable | v0.2.1 / 7 de octubre de 2014 |
Repositorio | github |
Escrito en | C # , C ++ , C |
Sistema operativo | Microsoft Windows |
Plataforma | .NET Framework |
Tipo | Marco de software |
Licencia | Licencia Apache 2.0 |
Sitio web | www |
Descripción general
Microsoft puso a disposición varias versiones preliminares de esta tecnología como complementos para Windows HPC Server 2008 R2 .
Una aplicación escrita para Dryad se modela como un gráfico acíclico dirigido (DAG). El DAG define el flujo de datos de la aplicación y los vértices del gráfico definen las operaciones que se realizarán en los datos. Los "vértices computacionales" se escriben utilizando construcciones secuenciales, desprovistas de cualquier semántica de concurrencia o exclusión mutua . El tiempo de ejecución de Dryad paraleliza el gráfico de flujo de datos distribuyendo los vértices computacionales entre varios motores de ejecución (que pueden ser múltiples núcleos de procesador en la misma computadora o diferentes computadoras físicas conectadas por una red, como en un clúster ). La programación de los vértices computacionales en el hardware disponible es manejada por el tiempo de ejecución de Dryad, sin ninguna intervención explícita por parte del desarrollador de la aplicación o administrador de la red. El flujo de datos entre un vértice computacional a otro se implementa mediante el uso de "canales" de comunicación entre los vértices, que en la implementación física se realiza mediante flujos TCP / IP , memoria compartida o archivos temporales . Una secuencia se utiliza en tiempo de ejecución para transportar un número finito de elementos estructurados .
Dryad define un lenguaje específico de dominio , que se implementa a través de una biblioteca C ++ , que se utiliza para crear y modelar un gráfico de ejecución Dryad. Los vértices computacionales se escriben utilizando construcciones estándar de C ++. Para que sean accesibles al tiempo de ejecución de Dryad, deben estar encapsulados en una clase que herede de la GraphNode
clase base. El gráfico se define agregando bordes; los bordes se agregan usando un operador de composición (definido por Dryad) que conecta dos gráficos (o dos nodos de un gráfico) con un borde. También se pueden escribir envoltorios de código administrado para Dryad API .
Existen varios compiladores de lenguaje de alto nivel que utilizan Dryad como tiempo de ejecución; los ejemplos incluyen Scope (cálculos estructurados optimizados para ejecución en paralelo) y DryadLINQ. [2]
En octubre de 2011, Microsoft interrumpió el desarrollo activo de Dryad, cambiando el enfoque al marco Apache Hadoop . [3] [4] [5]
Referencias
- ^ GitHub - MicrosoftResearch / Dryad: este es un prototipo de investigación de los marcos de procesamiento de datos en paralelo Dryad y DryadLINQ que se ejecutan en Hadoop YARN.
- ^ "DryadLINQ: un sistema para la computación paralela de datos distribuidos de uso general utilizando un lenguaje de alto nivel" (PDF) . Investigación de Microsoft . Consultado el 21 de enero de 2009 .
- ^ Patee, Don. "¡Anuncio de las versiones Windows Azure HPC Scheduler y HPC Pack 2008 R2 Service Pack 3!" . Microsoft . Consultado el 31 de mayo de 2013 .
- ^ Foley, Mary Joe. "Microsoft abandona Dryad; apuesta por Big Data en Hadoop" . ZDNet . Consultado el 31 de mayo de 2013 .
- ^ Henschen, Doug. "Microsoft abandona Dryad, se centra en Hadoop" . Semana de la información . Consultado el 31 de mayo de 2013 .
Otras lecturas
- "Dryad: programas paralelos de datos distribuidos de bloques de construcción secuenciales" (PDF) . Investigación de Microsoft . Consultado el 4 de diciembre de 2007 .
- "ALCANCE: Procesamiento paralelo fácil y eficiente de conjuntos de datos masivos" (PDF) . Investigación de Microsoft . Consultado el 21 de enero de 2009 .
enlaces externos
- Dryad: Programación del centro de datos
- Dryad Home
- Video de Michael Isard explicando Dryad en Google