昇腾社区首页
中文
注册

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定义了计算节点的名称、输入个数、输出个数。支持如下两种类型。
    • FuncProcessPoint:Func的计算处理点,通过UDF(User Defined Function)实现用户自定义功能。
    • GraphProcessPoint:Graph的计算处理点,通过IR构图实现用户的计算逻辑。

DataFlow支持用户通过FuncProcessPoint和GraphProcessPoint编写自定义处理函数,通过DataFlow构图以FlowModel的方式运行。

更多DataFlow信息请参考DataFlow框架介绍