Naiad — Дифференциальные потоки данных


Microsoft Reasearch разрабатывает новую платформу для параллельных вычислений с данными, и есть новое видео, которое делает ее более понятной.

Naiad — это среда программирования, которая использует новый подход к запуску программ на больших наборах данных. Цель состоит в том, чтобы найти более быстрые способы проведения анализа больших данных. Naiad описывается как инкрементная, итеративная и интерактивная платформа для параллельных вычислений данных, которая разрабатывается в Microsoft Research Silicon Valley.

Проект возник благодаря опыту исследователей Dryad и DryadLINQ. Dryad и DryadLINQ — два исследовательских проекта Microsoft, которые можно использовать для обработки больших объемов данных на C # на кластерных компьютерах. Dryad запускает последовательные программы параллельно с параллельными вычислениями, организованными в виде ориентированного ациклического графа, при этом программы, которые вы запускаете, формируют вершины графа, а ребра являются каналами связи между программами. DryadLINQ — это компилятор, который переводит программы LINQ в распределенные вычисления, которые затем можно запускать на кластерных компьютерах.

Опыт работы с этой парой проектов показал, что многие алгоритмы обработки больших данных содержат циклы, и эти циклы часто зависят от данных и повторяются до тех пор, пока ответ не перестанет меняться. Однако, как только ответ начинает стабилизироваться, большая часть работы, выполняемой на каждой итерации, становится избыточной по сравнению с работой, выполненной на предыдущих итерациях, поскольку большая часть данных остается неизменной. Если более поздние итерации могут работать с измененными данными, а не со всем набором, должно быть возможно добиться значительного увеличения скорости. Результатом этого является Наяда.

Принцип работы Naiad означает, что он расширяет стандартные модели пакетной параллельной обработки данных, такие как MapReduce, Hadoop и Dryad / DryadLINQ. С помощью Naiad вы можете эффективно обновлять входные данные, поэтому Naiad действует так, как будто это система потоковой обработки. Наряду с этим Naiad позволяет использовать вложенную итерацию с фиксированной точкой.

В техническом отчете Naiad «Составные инкрементные и итерационные параллельные вычисления с данными с Naiad» показано, что Naiad используется для решения ряда задач, таких как алгоритмы графов, но я бы рекомендовал сначала посмотреть видео. Фрэнк МакШерри представляет Naiad и обсуждает, почему это может быть важно, с некоторыми демонстрациями Naiad в действии.

В блоге Big Data в SVC также есть несколько интересных сообщений, показывающих программы, написанные на Naiad.


Добавить комментарий