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