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.