Что является хорошим примером параллелизма задачи в обработке данных? - PullRequest
0 голосов
/ 07 января 2019

Для обработки данных в распределенном режиме вы можете выполнять распараллеливание задач или распараллеливание данных. До сих пор я только сталкивался с распараллеливанием данных.

Параллелизм задач: разбить задачу на меньшие задачи и обрабатывать их параллельно.

Параллелизм данных: разбить данные на более мелкие порции данных и обработать их в parralel.

Например, MapReduce для меня - это распараллеливание данных, потому что вы бы разбили данные на различные средства отображения. Также алгоритмы, такие как сортировка сегментов, являются распараллеливанием данных, потому что вы разбиваете данные, которые будут отсортированы в «сегменты», и передаете их различным узлам.

В практическом плане, кажется, нет «чистого» распараллеливания задач без параллелизации данных. Например, если мы хотим обработать большой CSV-файл и по-разному обрабатывать каждый столбец с помощью независимого узла, для меня также имеет смысл разбивать данные по столбцам (а также распараллеливание данных).

Есть ли пример для распараллеливания задач без распараллеливания данных?

1 Ответ

0 голосов
/ 07 января 2019

В рамках моей докторской работы у меня большой проект по анализу данных. У него много разных шагов, которые мы должны сделать. Некоторые шаги зависят друг от друга, некоторые другие независимы. Ниже приведена сгенерированная диаграмма с потоком зависимостей. Синие узлы - это данные, белые узлы - это скрипты / задачи, а желтые - генерируемые отчеты. Вы видите, как некоторые задачи зависят от некоторых данных и генерируют другие данные:

enter image description here

Чтобы запустить их, мы можем использовать параллелизм задач. Как только у нас будет corr_matrix.Rdata, мы можем запустить скрипт outlier.R. После этого мы можем сгенерировать отчет 10_outlier.Rmd и запустить скрипт outlier_removal.R. Это лишь небольшая часть всех задач, которые мы выполняем, и обычно можно запустить несколько вещей параллельно.

Чтобы использовать распараллеливание задач, вам нужно иметь кучу разных задач. Когда у вас есть только одна задача, все, что вы можете сделать, это распараллелить данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...