【问题标题】:What is a good example for task parallelismn in data processing?什么是数据处理中任务并行的好例子?
【发布时间】:2019-01-07 10:07:00
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: database parallel-processing data-processing


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢。来自outlier.R的3个任务可以并行执行吗?他们每个人都需要整个数据吗,还是您也需要拆分数据。
    • outlier.R 出来的不是三个任务,而是三个数据集(蓝色)。然后将这些数据集用于其他任务。他们只需要箭头所示的数据,所以10_outlier.Rmd 需要三个数据集,outlier_removal.R 需要两个不同的数据集。如果您已生成任务所需的数据,则可以运行它。我不确定您所说的“整个数据”是什么意思。每个任务都需要完全具有每个依赖项,但是对于outlier_removal.R,我只需要corr_matrixoutlier_keep 而不是bootstrap_parameters
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多