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

What is a good example for task parallelismn in data processing?

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

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

数据并行性: 将数据分成更小的数据块并并行处理它们。

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

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

有任务并行不数据并行的例子吗?

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

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

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