database - 什么是数据处理中任务并行的好例子?
问题描述
为了在分布式设置中处理数据,您可以进行任务并行化或数据并行化。到目前为止,我只遇到过数据并行化。
任务并行:将任务分解为更小的任务并并行处理。
数据并行:将数据分解成更小的数据块并并行处理。
例如,对我来说 MapReduce 是数据并行化,因为您会将数据分区到不同的映射器。像桶排序这样的算法也是数据并行化,因为您将要在“桶”中排序的数据分解并提供给不同的节点。
实际上,如果没有数据并行化,似乎就没有“纯”任务并行化。例如,如果我们想要处理一个大的 CSV 文件并通过一个独立的节点以不同的方式处理每一列,对我来说,按列分解数据也是有意义的(数据并行化也是如此)。
有没有数据并行化的任务并行化示例?
解决方案
作为我博士工作的一部分,我有一个大型数据分析项目。它有许多我们必须做的不同步骤。有些步骤相互依赖,有些步骤是独立的。以下是生成的依赖流图。蓝色节点是数据,白色节点是脚本/任务,黄色节点是生成的报告。您会看到某些任务如何依赖某些数据并生成其他数据:
为了运行这些,我们可以使用任务并行。一旦我们corr_matrix.Rdata
可用,我们就可以运行outlier.R
脚本。一旦完成,我们就可以生成10_outlier.Rmd
报告以及运行outlier_removal.R
脚本。这只是我们执行的所有任务的一小部分,通常一个人可以并行运行一些事情。
为了利用任务并行化,你需要有一堆不同的任务。当您只有一个任务时,您所能做的就是并行处理数据。
推荐阅读
- java - 从 Android retrofit2 发布嵌套对象,服务器接收子元素 null
- excel-formula - Excel 间接:公式太长
- python - 在进行第一次配置分配后覆盖应用程序配置是否安全(并且它不会否定 facotry 模式的好处)?
- docker - Docker compose:服务无法相互连接
- docker - ModuleNotFoundError:没有名为“maskrcnn_benchmark”的模块
- android - 通过 Android 运行时以编程方式执行的命令行“top”命令每次返回相同的 CPU 使用数据
- typescript - 如何在 Firebase Cloud Functions 上拆分长执行时间的函数
- android - 防止 Android Activity 自行启动
- typescript - 函数中的泛型不检查 Typescript 中的参数类型
- javascript - 如何在给定的括号字符串中查找节点和级别?