18 | 分布式计算模式之流水线:你方唱罢我登场
聂鹏程
该思维导图由 AI 生成,仅供参考
你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
通过前面几篇文章,我们一起学习了分布式计算模式中的 MapReduce、Stream 和 Actor,它们各显神通解决了很多实际问题。
但是,在现实生活中,经常还会出现这样的情况,前一个任务的结果是另外一个任务的输入。比如工厂生产一瓶饮料,首先需要往瓶子里装上饮料,待饮料装满后,再封口。如果装饮料和封口分别为子任务,那么前一个任务(装饮料)结束后才可以开始第二个任务(封口)。类似这样的作业,就是我们常说的流水线作业。
在分布式领域中解决类似具有依赖关系的流水线作业的计算模式,叫作流水线计算模式。其实,流水线计算模式是我们在第 1 篇文章中提到的数据并行计算的一种形式,就是将一个任务拆分为多个步骤(子任务),然后多个这样的任务通过对步骤(子任务)的重叠执行,以实现数据并行处理的场景。
这种流水线模式在计算机领域中最先用于 CPU 指令设计,后来推广到机器学习领域进行数据处理、模型训练等。在流水线计算模式中,由于前一个子任务执行后,会扔给下一个子任务,由下一个子任务去展现自己的能力,因此可以形象地比喻为“你方唱罢我登场”。
接下来,我们就一起打卡分布式计算模式中的流水线模式吧。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
流水线计算模式是一种在分布式计算中常见的模式,它将一个任务拆分为多个步骤执行,使得不同任务可以并行执行。这种模式最早用于CPU指令设计,后来在机器学习领域得到推广应用。在分布式领域中,流水线计算模式可以提高系统效率,特别在机器学习中的应用非常广泛。TensorFlow的输入流水线模式就是一个典型的例子,它将数据操作拆分为提取、转换、加载三个不重叠的部分,实现了多样本数据处理和模型训练的并行执行。通过引入流水线模式,可以提高CPU、GPU/TPU的利用率,加速训练过程,避免资源闲置。流水线计算模式的原理和应用对于理解分布式计算和AI技术都具有重要意义。 在机器学习领域,流水线模式的应用不仅限于数据读取阶段,还可以构建一套完整的机器学习流水线。典型的机器学习训练模型可以拆分为数据输入、数据转换、特征提取、模型训练和模型验证五个步骤。以图像分类为例,通过流水线模式可以将图像数据输入、数据转换、特征提取、模型训练和模型验证等步骤并行执行,从而提高训练效率和模型准确性。 流水线计算模式与MapReduce计算模式有相似之处,但也存在区别。MapReduce以任务为粒度,将大的任务划分成多个小任务,每个任务都需要执行完整的、相同的步骤,适合任务并行的场景;而流水线计算模式以步骤为粒度,一个任务拆分为多个步骤,每个步骤执行的是不同的逻辑,适合同类型任务数据并行处理的场景。 总的来说,流水线计算模式在分布式计算和机器学习领域有着重要的应用,能够提高系统效率和训练速度,是一种高效的并行计算模式。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》,新⼈⾸单¥59
《分布式技术原理与算法解析》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(10)
- 最新
- 精选
- 88591流计算,对数据依赖性没有流水线强。流计算,关注的是计算的实时性。
作者回复: 总结得非常到位,加油。
2020-04-03 - Jackey我认为流式计算更关注最后的结果吧,中间结果都不会存储,数据也不能重复使用。流水线模式也会关注中间结果,根据每一步的结果不断优化计算方法,保证它能给出我们想要的数据2019-11-0111
- 信xin_n流水线模式,是把一个问题分成不同的小段,必须按照严格的顺序处理,核心是错开了时间,提高了时间利用率,但最终结果是相同的东西,比如例子的生产一瓶矿泉水,是单一产品。 流计算模式,更侧重数据输入方式以及流动方向,处理时是可以多方向流动的,最终可以输出各式各样的结果。当然流式计算实际数据的处理会用到流水线模式,把一个大的处理流程拆分为小的流程,依次放入各个bolt处理。但是这些bolt可以组合,不同的数据类型,走不同的流水线。多产品,多流水线。类似物流分拣过程。2019-11-165
- Geek_e986e3个人感觉。流水线实时性不用和流计算一样实时性这么高。流水线可以跑离线任务。而且感觉二者概念不同。流水线只是一种数据处理概念。实时也可以流水线,离线也可以流水线。而流计算和批处理是一种落地模式。不知道我这么理解对不对2019-11-042
- 科科个人认为流水线,只是为了尽最大的可能提升对系统的使用效率。CPU为了节省时间的利用效率,将任务分成小块儿使用流水线一次可以处理n个指令,这样做可以尽可能多地处理多个指令,这样整体的等待时间就会降低。 流计算更加强调的是数据的时效性,这一点流水线只是一个模型,并没有强调对时间的时效性。流水线走的应该也是按照任务到来的先后顺序。但是流计算没有办法保证数据先后顺序。2020-05-091
- 花儿少年场景不同。 流计算是近乎实时计算,使用实时数据,关注计算结果,计算步骤有变动之前的数据就不能再重用了。 流水线计算模式,指的抽象子任务,分解步骤,从而提高并行度,提高执行效率,和原始输入数据没有关系;如果其中某一步计算有误,可以用前一步的结果再次计算;数据可以是静态的,并且可以反复计算。 最大的不同,个人觉得流计算是指实时计算的场景,流水线模式是分解任务,执行任务的方式?2019-11-011
- xingoo流水线关注的是通过抽象子任务,子任务串联执行,通常用于自己学习模型训练前的数据预处理,其实内部一般都是批量化操作,数据也可以重复使用;流计算关注的是事件或者消息,通过一系列固定操作得到输出。2019-11-011
- leslie流水线计算模式更像是整个流程而是其中的某个环节:就像老师课程所用的例子ETL,数据挖掘必做的事情。流计算只是处理当下的某件事情:一个是整个流程完整的事情,一个只是单一的事件。 流计算可以是流水线计算模式的一部分工作,反向则不可以。2019-11-011
- 南国我认为mapreduce从全局来看的话不是也可以看做一个流水线吗,同样是把一个大的任务划分成很多小的步骤,每一个小的步骤又需要一个map+reduce,然后作为下一个小任务的输入2020-07-22
- 钱流水线计算模式和流计算的区别是什么? 流水线计算模式核心在于通过任务拆解和协调控制,加速任务的执行。 流计算模式核心在于处理的数据形态是持续不断大批量的。 这个问题类似在问菠菜和菠萝有什么区别😁2020-02-17
收起评论