Контракт на распараллеливание
-
Обзор PACT
- PACT — это модель программирования для обработки данных в потоках данных.
- PACT состоит из входных контрактов, пользовательских функций и аннотаций к пользовательскому коду.
- Входные контракты разделяют данные на независимые подмножества, которые обрабатываются параллельно.
-
Контракты на ввод данных
- Существуют различные контракты на ввод данных, включая карту, уменьшить, пересекать, сопоставлять и когруппировать.
- Каждый контракт имеет свои особенности, такие как обработка одного или нескольких наборов данных и группировка записей по ключам.
-
Модель данных записи Pact
- PACT использует более общую модель данных записей, которая позволяет гибко интерпретировать поля.
- Поля могут быть скудно заполнены или содержать значения null, но ключевые поля должны быть определены.
-
Аннотации к пользовательскому коду
- Аннотации к пользовательскому коду позволяют оптимизировать выполнение кода.
- Неправильные аннотации могут привести к неверным результатам.
-
Программы PACT
- Программы PACT представляют собой графы потоков данных, включающие источники данных, пакты и приемники данных.
- Пакты могут быть произвольно сложными и не иметь фиксированной структуры.
-
Преимущества PACT перед MapReduce
- PACT поощряет модульный стиль программирования и более детальное решение задач.
- Модель данных PACT упрощает обработку данных и устраняет необходимость в вспомогательных структурах.
- Компилятор PACT автоматически выбирает оптимальную стратегию выполнения, в отличие от Hadoop, который всегда использует одну и ту же стратегию.
-
Рекомендации
- Статья Д. Баттре и др. из Берлинского университета представляет модель PACT и ее сравнение с MapReduce.
- Для более подробного сравнения моделей можно обратиться к статье А. Александров и др. из того же университета.
-
Дальнейшее чтение
- Ссылки на внешние ресурсы, включая домашнюю страницу проекта Stratosphere и видеолекцию о программировании параллельных потоков данных.