DataFlow简介
DataFlow是一套面向异构系统的应用开发和执行框架,提供了一套API来帮助用户快速表达业务逻辑。框架屏蔽异构硬件和组网的差异,并以异步流水方式提升应用的整体性能和吞吐。同时,DataFlow提供了简单灵活的部署策略,用户可以非常方便地调整每个业务实例的个数以及部署位置,从而提升应用的资源利用率,降低用户的使用成本。
下图是一个应用DataFlow使能异步流水提升吞吐的示例:
示例应用由3个计算功能组成,其中计算功能1和计算功能3为用户自定义函数,计算功能2为计算图执行,原始流程中3个计算流程串行执行。
DataFlow通过FlowGraph来承载整个计算流,每个计算功能对应图上的一个FlowNode节点,并通过FuncProcessPoint或者GraphProcessPoint来承载节点功能。节点间通过异步数据流连接,当FlowGraph有多组数据输入时,多个FlowNode能够同时处理不同的数据,即将原始的串行执行流程转换为了异步流水的执行过程。
DataFlow各个节点的关系如下所示:
- FlowGraph:DataFlow的Graph,由输入节点FlowData和计算节点FlowNode构成,是DAG(Directed Acyclic Graph)图,数据流有向且不允许有成环表达。
- FlowData:FlowGraph的输入节点。FlowData定义了输入节点的名称和类型。
- FlowNode:FlowGraph的计算节点。FlowNode定义了计算节点的名称、输入个数、输出个数。支持如下两种类型。
DataFlow支持用户通过FuncProcessPoint和GraphProcessPoint编写自定义处理函数,通过DataFlow构图以FlowModel的方式运行。
更多DataFlow信息请参考DataFlow框架介绍。
父主题: 概述