Print This Post Print This Post

Распределенная система обработки растровых данных

Information-icon Тема свободна.
 

Курс: без ограничений. Необходимо знание языка Java.

Тема из раздела big data. Практически важна. Код будет использован в реальной системе.

Постановка задачи. На компьютерном кластере на каждом узле (компьютере) размещены данные. Разработать программу, которая позволяет параллельно (одновременно на каждом узле) выполнять обработку данных. Например, вычисление среднего, построение многоуровневой пирамиды, преобразование форматов данных.

Основные сложности:

  • узлы могут выходить из строя во время работы, место на диске может закончиться, сетевое соединение может прерываться –> задача может быть не выполнена либо выполнена частично
  • следовательно, нужны распределенный протокол подтверждения гарантии целостности и завершенности операции (commit), сборка “мусора” и т.п.
  • для выполнения операции могут потребоваться данные с другой машины, которые надо также надежно передать

Основные инновационные идеи — (*) выразить подходы обработки данных с помощью функционального программирования для более удобного распараллеливания; (**) использование специального подхода планирования задач, описания и контроля их выполнения; (***) представление растровых данных в удобном для распараллеливания виде.

Усложнением является разработка новых алгоритмов параллельных вычислений результатов на основе заранее подготовленных данных. Пример статьи на эту тему: Computing aggregate queries in raster image databases using pre-aggregated data.

Очерки алгоритмов реализации этих ограничений разработаны, будут объяснены выбравшему тему студенту.