《分布式技术原理与算法解析》学习笔记Day16
  di1WbJVQtA4O 2023年11月02日 57 0

分布式计算模式:流水线

计算机中的流水线技术是一种将每条指令拆分为多个步骤,多条指令的不同步骤重叠操作,从而实现几条指令并行处理的技术。

分布式领域的流水线计算模式,参考了工业生产中的流水线作业模式,将一个任务分为多个步骤执行,使得不同任务可以并行执行,从而提高系统效率。

输入流水线(ETL)

TensorFlow运用了流水线模式对输入数据进行预处理,也称为ETL流水线,它包括3个步骤:

  1. 提取(Extract),通过多种途径读取数据。
  2. 转换(Transform),使用CPU对输入的数据进行解析以及预处理操作。
  3. 加载(Load),将转换后的数据加载到执行机器学习模型的加速器设备上,例如GPU或者TPU。

机器学习流水线

一个典型的机器学习训练模型按照流水线计算模式进行拆分,可以分为5个步骤:

  1. 数据输入,从不同的数据源中导入数据。
  2. 数据转换,将输入的无结构的数据转换成合适的格式。
  3. 特征提取,从数据集中提取特征数据。
  4. 模型训练,提供一个算法,并提供一些训练数据让模型可以学习。
  5. 模型验证,通过训练得到的结果,对模型进行错误率验证。

整个流水线示示意图如下所示。

流水线模式和MapReduce中对任务划分的区别?

首先它们划分的粒度不同:

  • MapReduce以任务为粒度,将大的任务划分成多个小任务,每个任务都需要执行完整的、相同的步骤,同一任务能被并行执行,这是任务并行的一种计算模式。
  • 流水线计算模式以步骤为粒度,一个任务拆分为多个步骤,每个步骤执行的事不同的逻辑,多个同类型任务通过此步骤重叠来实现不同任务的并行计算,它是数据并行的一种模式。

另外,它们划分出来的子任务之间的关系也不同:

  • MapReduce中各个子任务可以独立执行,互不干扰,多个子任务执行完成后,进行结果合并得到整个任务的结果,因此要求子任务之间是没有依赖关系的。
  • 流水线模式中多个子任务之间具有依赖关系,前一个子任务的输出是下一个子任务的输入。

流水线计算模式和流计算有什么区别?

流水线模式把一个问题分成不同的步骤,必须按照严格的顺序处理,它的核心是错开了时间,提高了时间利用率,但是最终结果是相同的。

流计算模式侧重数据输入方式和流动方向,处理数据时可以多方向流动,最终输出不同的结果,在流计算的过程中,可能会用到流水线模式,把一个大的处理流程拆分成小的流程。

流计算对数据处理是实时的,流水线模式对数据处理可以是实时的,也可以是批处理方式。

流计算关注的是计算的实时性,对数据依赖性没有流水线计算模式那么高。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
di1WbJVQtA4O
最新推荐 更多

2024-05-31