首页 > 解决方案 > 什么是数据处理中任务并行的好例子?

问题描述

为了在分布式设置中处理数据,您可以进行任务并行化或数据并行化。到目前为止,我只遇到过数据并行化。

任务并行:将任务分解为更小的任务并并行处理。

数据并行:将数据分解成更小的数据块并并行处理。

例如,对我来说 MapReduce 是数据并行化,因为您会将数据分区到不同的映射器。像桶排序这样的算法也是数据并行化,因为您将要在“桶”中排序的数据分解并提供给不同的节点。

实际上,如果没有数据并行化,似乎就没有“纯”任务并行化。例如,如果我们想要处理一个大的 CSV 文件并通过一个独立的节点以不同的方式处理每一列,对我来说,按列分解数据也是有意义的(数据并行化也是如此)。

有没有数据并行化的任务并行化示例?

标签: databaseparallel-processingdata-processing

解决方案


作为我博士工作的一部分,我有一个大型数据分析项目。它有许多我们必须做的不同步骤。有些步骤相互依赖,有些步骤是独立的。以下是生成的依赖流图。蓝色节点是数据,白色节点是脚本/任务,黄色节点是生成的报告。您会看到某些任务如何依赖某些数据并生成其他数据:

在此处输入图像描述

为了运行这些,我们可以使用任务并行。一旦我们corr_matrix.Rdata可用,我们就可以运行outlier.R脚本。一旦完成,我们就可以生成10_outlier.Rmd报告以及运行outlier_removal.R脚本。这只是我们执行的所有任务的一小部分,通常一个人可以并行运行一些事情。

为了利用任务并行化,你需要有一堆不同的任务。当您只有一个任务时,您所能做的就是并行处理数据。


推荐阅读