Дриада (программирование) - Dryad (programming)
Дриада был исследовательским проектом в Microsoft Research для среды выполнения общего назначения для выполнения параллельные данные Приложения. Исследовательские прототипы фреймворков параллельной обработки данных Dryad и DryadLINQ доступны в исходной форме по адресу GitHub.[1]
Обзор
Microsoft сделала несколько предварительных версий этой технологии доступными в виде надстроек к Windows HPC Server 2008 R2.
Приложение, написанное для Dryad, моделируется как ориентированный ациклический граф (DAG). DAG определяет поток данных приложения, а вершины графа определяют операции, которые должны выполняться с данными. «Вычислительные вершины» записываются с использованием последовательных конструкций, лишенных каких-либо параллелизм или же взаимное исключение семантика. Среда выполнения Dryad распараллеливает граф потока данных, распределяя вычислительные вершины между различными механизмами выполнения (которые могут быть несколькими ядрами процессора на одном компьютере или разными физическими компьютерами, соединенными сетью, как в кластер ). Планирование вычислительных вершин на доступном оборудовании обрабатывается средой выполнения Dryad без какого-либо явного вмешательства разработчика приложения или администратора сети. Поток данных между одной вычислительной вершиной к другой реализуется с помощью «каналов» связи между вершинами, что в физической реализации реализуется посредством TCP / IP потоки Общая память или временный файлы. Поток используется во время выполнения для транспортировки конечного числа структурированный Предметы.
Дриада определяет предметно-ориентированный язык, который реализуется через C ++ библиотека, которая используется для создания и моделирования графа выполнения Dryad. Вычислительные вершины записываются с использованием стандартных конструкций C ++. Чтобы сделать их доступными для среды выполнения Dryad, они должны быть инкапсулированы в учебный класс который наследует от GraphNode
базовый класс. Граф определяется добавлением ребер; ребра добавляются с помощью оператора композиции (определенного Dryad), который соединяет два графа (или два узла графа) с ребром. Управляемый код обертки для дриады API также можно написать.
Существует несколько компиляторов языков высокого уровня, которые используют Dryad в качестве среды выполнения; примеры включают Объем (Структурированные вычисления, оптимизированные для параллельного выполнения) и DryadLINQ.[2]
В октябре 2011 года Microsoft прекратила активную разработку Dryad, переключив внимание на Apache Hadoop рамки.[3][4][5]
Рекомендации
- ^ GitHub - MicrosoftResearch / Dryad: это исследовательский прототип платформ параллельной обработки данных Dryad и DryadLINQ, работающих на Hadoop YARN.
- ^ «DryadLINQ: система для распределенных параллельных вычислений общего назначения с использованием языка высокого уровня» (PDF). Microsoft Research. Получено 2009-01-21.
- ^ Пати, Дон. «Представляем выпуски Windows Azure HPC Scheduler и HPC Pack 2008 R2 Service Pack 3!». Microsoft. Получено 2013-05-31.
- ^ Фоли, Мэри Джо. «Microsoft отказывается от Dryad; делает ставку на Hadoop в области больших данных». ZDNet. Получено 2013-05-31.
- ^ Хеншен, Дуг. «Microsoft Ditches Dryad, фокусируется на Hadoop». Информационная неделя. Получено 2013-05-31.
дальнейшее чтение
- «Дриада: Распределенные параллельные программы с данными из последовательных строительных блоков» (PDF). Microsoft Research. Получено 2007-12-04.
- «СФЕРА ПРИМЕНЕНИЯ: Простая и эффективная параллельная обработка массивных наборов данных» (PDF). Microsoft Research. Получено 2009-01-21.