数据处理中的任务并行化的一个好例子是什么?

时间:2019-01-07 10:07:00

标签: database parallel-processing data-processing

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

任务并行性:将任务分解为较小的任务,并并行处理它们。

数据并行性:将数据分为较小的数据块,并在并行中处理它们。

例如,对我来说MapReduce是数据并行化,因为您会将数据分区到不同的映射器。像桶排序之类的算法也是数据并行化,因为您将数据分解成“桶”中的分类,然后将它们分配给不同的节点。

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

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

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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

为了利用任务并行化,您需要拥有许多不同的任务。当您只有一个任务时,您所能做的就是对数据进行并行化。