CN111400048B - 面向大规模ai数据流处理的集群汇集通信*** - Google Patents
面向大规模ai数据流处理的集群汇集通信*** Download PDFInfo
- Publication number
- CN111400048B CN111400048B CN202010207619.5A CN202010207619A CN111400048B CN 111400048 B CN111400048 B CN 111400048B CN 202010207619 A CN202010207619 A CN 202010207619A CN 111400048 B CN111400048 B CN 111400048B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- data flow
- concurrent
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/287—Multiplexed DMA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种面向大规模AI数据流处理的集群汇集通信***,运用统一的流配置和路由机制,屏蔽了应用程序对内网节点、汇集节点、GPU计算节点、外部传感节点的物理地址信息,只需按照功能类别和流的名字编写通信应用,大大地降低了应用的复杂度;基于组确认通信机制,大大减少了通信确认而造成的额外开销,实现了大规模并发数据流的可靠通信,克服了基于连接的可靠通信机制耗费通信资源的弱点,大大提高了并行通信的效率;采用动态配置机制,可灵活分配传感节点、汇集节点、GPU计算节点的网络关系和网络拓扑结构,适应性强;汇集并发AI数据流提交GPU计算,充分发挥了GPU计算的SPMD优势;汇集并发数据流,充分利用DMA通信机制,大大提高了通信效率。
Description
技术领域
本发明涉及一种数据处理技术,特别涉及一种面向大规模AI数据流处理的集群汇集通信***。
背景技术
随着物联网技术和人工智能技术的飞速发展,相应的复合应用已经在各个领域展开,特别是基于视频和传感数据流的实时分析技术应用已经成为热点。例如,大规模视频监控用于公交***拥挤度实时分析、用于大社区范围的养老照护、工业自动化分拣应用等。对于这些基于视频传感的大规模应用面临诸多问题需要解决:1)传感信息的实时处理对前端传感设备的成本提出了挑战;2)视频数据的实时传输对通讯网络产生了压力;3)视频数据的存储和传输对隐私保护问题带来了应用难点(如居家养老照护隐私问题)。这些都为边缘计算技术的应用带来了机会。其关键是构建高性能价格比的边缘计算架构、数据流汇集模型和应用支撑模式。基于GPU集群协同深度学习(Deep Learning-DL)边缘计算***通过分解深度学习任务为2部分,一部分在前端智能传感器执行,另一部分在后端GPU集群并发执行。数以千计的前端智能传感器通过执行部分深度学习任务形成了AI数据流,并且需要把这些AI数据流发往后端。以小型GPU集群为中心的边缘计算模式可以有效解决局部大规模传感的汇集、传输、计算和存储的综合高性价比***。然而面对数千个AI数据流的接入、集群内传输以及通信的可靠性问题都为业界带来了新的挑战,目前的相近的通信***存在以下问题:1)大规模AI流都存在这并发周期性,也就是说,数千个流按照一定的周期传输数据流单元,GPU集群按照这个周期并行处理数千个数据流单元,这样可以有效发挥GPU及GPU集群的SPMD(Single Program Multi Data)的设备优势特性。然而,支持这种通信特性需求的***还没见报导。2)外网传感节点通过流汇集节点把信息传入GPU计算集群,GPU计算集群内的节点也需要通过汇集节点传输信息到外部传感节点,增加了应用设计的复杂性。3)现有***基于连接的的可靠数据流通信机制,限制了***接入和并发处理数据流的规模,同时不具备灵活的迁移性,使得负载均衡的开销增大以及灵活性降低,不适合大规模的处理机制的扩展。
发明内容
本发明是针对大规模AI流对通信带来压力的问题,提出了一种面向大规模AI数据流处理的集群汇集通信***,其通过动态配置节点,利用前端智能传感设备固有的周期地获取数据、传输数据的特点,把数千个AI传感特征并发传输到汇集集群网络中各个汇集节点,再根据GPU计算节点的计算任务和计算能力的特性把这些并发的数据流单元,传输到GPU集群中的计算节点并按照SPMD模式统一并行实时处理。
本发明的技术方案为:一种面向大规模AI数据流处理的集群汇集通信***,***包括数千个智能传感器节点组成的传感器***、任务配置***、数个汇集节点组成的汇集集群网络、GPU集群中计算节点组成的计算集群网络;调用任务配置***中调配,把数千个AI传感特征并发传输到汇集集群网络中各个汇集节点,再根据GPU计算节点的计算任务和计算能力的特性将并发的数据流单元传输到GPU集群中的各个计算节点,并按照SPMD模式统一并行实时处理。
所述面向大规模AI数据流处理的集群汇集通信***,***数据结构:
1)AI数据流为AIDS,包括DSid,AIframeS,Pt,其中DSid为数据流标识符;AIframeS为构成该数据流的AI帧的集合,其按照时间形成序列;Pt为该AI帧的处理的时间,包括感知、汇集、计算处理,即该AIframe必须在Pt内处理完毕;AI数据流通常由智能传感节点发起,经汇集节点汇集到边缘计算集群的计算节点;
2)AI帧为Aiframe,包括DSid,frameno,AIDSUS,Pt,其中DSid为该AI帧所隶属的数据流标识符;frameno为该AI帧自然序号;AIDSUS为构成该AI帧的AI数据流单元的集合;Pt为该AI帧的处理的时间;
3)AI数据流单元为AIDSU,包括DSid,frameno,uno,Timestamp,Data,DSUsta,其中DSid为该单元所隶属的数据流标识符;uno为该AI数据流单元在frameno帧内的序号;TimeStamp为该数据流单元的生成时间戳;Data为数据流单元的数据部分,Data可以是某通信协议下的数据、控制命令;DSUsta为该数据单元的状态,当DSUsta为END时,表示为该帧的最后数据流单元;一个AIDSU可通过一个物理通信包内传输;
4)处理周期生成器为PCM,包括PCid,PCtime,其中PCid为处理周期id,PCtime为该处理周期所用的时间;PCM以PCtime为间隔生成时间序列Pt0,Pt1,Pt2,......;
5)并发AI数据流为PAIDS,为同一汇集节点汇集到的相同处理周期的数据流的集合,这个汇集节点可以是针对大规模传感节点的汇集节点,也可以是嵌套在计算节点上的汇集来自多个汇集节点的PAIDS进而形成更大规模的PAIDS;PAIDS包括PDSid,DSS,CN,Pnum,Pctime,PDSid为PAIDS的标识符,DSS为构成该PAIDS的数据流;CN为汇集该PAIDS的汇集节点,Pnum为组成该PAIDS的数据流的个数;PCtime为该并发数据流的数据流单元处理周期,即PAIDS上的所有数据流的当前处理周期的Pnum个DSU以SPMD处理方式提交给GPU节点并行处理;
6)节点地址配置表NAC为NAC,包括id,Nname,IPa,Type,Pcp,Psuc,其中id为节点标识符;Nname为节点名称;IPa为节点的IP地址;Type为节点的类型,Type为0表示该节点为传感节点,Type为1表示该节点为汇集节点,Type为2表示该节点为计算节点,Pcp为该节点的通信处理能力,Psuc为该节点通信处理成功累计平均率;
7)流配置表为DSC,包括DSid,SNid,DNid,其中DSid为数据流标识符,来自AI数据流表;SNid为该AI数据流单元的源节点,来自节点地址配置表;DNid为该AI数据流单元的目标节点,来自节点地址配置表;
8)并发流配置表为PDSC,包括PDSid,SNid,DNid,DSS,其中PDSid为该并发AI数据流标识符,来自并发AI数据流表;PSNid为该并发AI数据流的源节点,来自节点地址配置表;PDNid为该并发AI数据流的目标节点,来自节点地址配置表;DSS为该并发AI数据流所包含的数据流的集合;
9)循环AI帧缓冲区对象表为CAIBT,包括Nid,AIframe[PL][AIBL],AIBL,rl,rbl,其中Nid为该表项所对应的汇集节点编号,AIframe[][]为PL个AI帧缓冲循环队列,每一行存放一个数据流的帧,一共有PL行,代表PL个AI数据流;AIBL为一个帧缓冲所能容纳AI数据流单元的个数,当一个数据流的AI数据流单元的个数大于AIBL时,再后接收到的AI数据流单元将存放于AIframe[][0],然后再存放于AIframe[][1],AIframe[][2],…,这样周而复始,循环下去;AIBL的大小根据通信丢包率rl和循环AI帧缓冲区缺失率rbl来调整;
10)并发AI帧缓冲区对象表为PAIBT,包括CNid,AIframe[PL][MAXFL],Mak[PL][MAXFL]),其中CNid为该表项所对应的计算节点编号;AIframe[][]为一个AI帧缓冲区,其长度为PL,每个数组元素对象存放一个数据流的帧,并且数组元素对象由若干个AI数据流单元构成,并且这些AI数据流单元按照他们各自的Timestamp顺序存储,每一行存放一个数据流的帧,一共有PL行,代表PL个AI数据流单元,MAXFL为PL个AI数据流单元中最大帧长度,为了GPU的SPMD计算需求,AIframe[][]一下存放了PL个AI数据流单元的当前时间周期的完整帧;Mak[PL][MAXFL]为标志矩阵,其矩阵元素与AIframe[PL][MAXFL]一一对应;对1<=i<=PL,1<=j<=MAXFL,当Mak[i][j]=0时,意味着AIframe[i][j]所对应的AI数据流单元还没有收到;当Mak[i][j]=1时,意味着AIframe[i][j]所对应的AI数据流单元已经收到;当Mak[i][j]=NULL时,意味着AIframe[i][j]所对应的AI数据流单元在当前帧中无意义,即实际没有数据;当Mak[i][j]=END时,意味着AIframe[i][j]所对应的AI数据流单元为组成该AI帧的最后一个AI数据流单元;
11)帧缓冲区表FB,包括Sid,AIframe[FL],p,其中Sid为传感节点id;AIframe[FL]为由FL个单元构成的缓冲区,每个单元存放一个AI数据流单元;p为指向该缓冲区当前可用单元;
12)全局配置目录存放于任务配置***,其存放AI数据流表、AI数据流单元定义、处理周期生成器表、并发AI数据流表、节点地址配置表NAC、流配置表DSC、并发流配置表PDSC、循环AI帧缓冲区对象表、并发AI帧缓冲区对象表、帧缓冲区FB表。
所述传感节点由发送进程、帧缓冲区、AI计算进程构成;AI计算进程从任务配置***配置的全局配置目录中读取存储环境,AI计算进程从周期生成器获取当前计算周期,AI计算进程将收集视频传感数据帧转换为若干个AI数据流单元,送入帧缓冲区存储,并通知发送进程,由发送进程将AI数据流单元集合发送到汇集节点。
所述汇集节点由汇集进程、循环AI帧缓冲区、DMA发送进程构成;汇集进程根据自己节点标识符从任务配置***配置的全局配置目录中查询并发流配置和循环AI帧缓冲区对象表,建立从传感节点接收的AI数据流单元集合与循环AI帧缓冲区的存储关系,汇集进程从周期生成器获取当前处理周期,接收来自多个不同智能传感节点的AI数据流单元集合,依据存储关系存入循环AI帧缓冲区,存储结束后通知DMA发送进程,发送该并发流的当前AI数据流单元集合到相应的计算节点,DMA发送进程按照DMA通信机制发送AI数据流单元集合到相应的计算节点。
所述计算节点由DMA接收进程、GPU计算进程、并发AI帧缓冲区构成,DMA接收进程根据自己节点标识符从任务配置***配置的全局配置目录中查询并发流配置和并发AI帧缓冲区对象表,建立从汇集节点接收的AI数据流单元集合与并发AI帧缓冲区的存储关系,DMA接收进程从周期生成器获取当前处理周期,监听并接收汇集节点并发的AI数据流单元集合,并依据存储关系存入并发AI帧缓冲区,当并发AI帧缓冲区获取所有AI数据流的当前周期的AI帧后送往GPU设备实施大规模并行处理。
本发明的有益效果在于:本发明面向大规模AI数据流处理的集群汇集通信***,运用统一的流配置和路由机制,屏蔽了应用程序对内网节点、汇集节点、GPU计算节点、外部传感节点的物理地址信息,只需按照功能类别和流的名字编写通信应用,大大地降低了应用的复杂度,降低了应用门槛,支持大规模流应用的普及展开;基于组确认通信机制,大大减少了通信确认而造成的额外开销,实现了大规模并发数据流的可靠通信,克服了基于连接的可靠通信机制(如TCP)耗费通信资源的弱点,大大提高了并行通信的效率,更适合大规模扩展;采用动态配置机制,可以灵活分配传感节点、汇集节点、GPU计算节点的网络关系和网络拓扑结构,具有灵活的适应性;汇集并发AI数据流提交GPU计算,充分发挥了GPU计算的SPMD优势;汇集并发数据流,充分利用DMA通信机制,大大提高了通信效率。
附图说明
图1为本发明面向大规模AI数据流处理的集群汇集通信***架构图;
图2为本发明面向大规模AI数据流处理的集群汇集通信***中智能传感节点通信架构图;
图3为本发明面向大规模AI数据流处理的集群汇集通信***中汇集节点通信架构图;
图4为本发明面向大规模AI数据流处理的集群汇集通信***中计算节点通信架构图。
具体实施方式
1、体系结构:
(1)如图1所示面向大规模AI数据流处理的集群汇集通信***架构图:***包括数千个传感器节点组成的传感器***任务配置***、数个汇集节点组成的汇集集群网络、GPU集群中计算节点组成的计算集群网络、处理周期生成器。在任务配置***调配资源和周期生成器调配时间的作用下,把数千个AI传感特征并发传输到汇集集群网络中各个汇集节点,再根据GPU计算节点的计算任务和计算能力的特性把这些并发的数据流单元,传输到GPU集群中的计算节点并按照SPMD模式统一并行实时处理。
(2)如图2所示智能传感节点通信架构图,智能传感节点由发送进程、帧缓冲区、AI计算进程构成;智能传感节点是***的末端节点,其收集视频传感数据帧并进行初步AI算法处理,形成AI帧,然后把AI帧切成若干个AI数据流单元的形式发送到汇集节点。
(3)如图3所示汇集节点通信架构图,汇集节点由汇集进程、循环AI帧缓冲区、DMA发送进程构成;汇集节点收集来自多个不同智能传感节点的AI数据流单元,汇集成并发AI数据流单元,存入其循环AI帧缓冲区,并按照任务配置***的参数把并发AI数据流单元按照DMA(Direct Memory Access直接内存存取)通信机制发送到相应的计算节点。
(4)如图4所示计算节点通信架构图,计算节点由DMA接收进程、GPU计算进程、并发AI帧缓冲区构成,计算节点收集来自多个汇集节点的并发AI数据流单元,存入并发AI帧缓冲区,当并发AI帧缓冲区获取所有AI数据流的当前周期的AI帧后送往GPU设备实施大规模并行处理。
2、数据结构
(1)AI数据流(AIDS)为AIDS(DSid,AIframeS,Pt),其中DSid为数据流标识符;AIframeS为构成该数据流的AI帧的集合,其按照时间形成序列;Pt为该AI帧的处理的时间,包括感知、汇集、计算处理,即该AIframe必须在Pt内处理完毕;AI数据流通常由智能传感节点发起,经汇集节点汇集到边缘计算集群的计算节点。
(2)AI帧(AI frame)为AIframe(DSid,frameno,AIDSUS,Pt),其中DSid为该AI帧所隶属的数据流标识符;frameno为该AI帧自然序号;AIDSUS为构成该AI帧的AI数据流单元的集合;Pt为该AI帧的处理的时间。
(3)AI数据流单元(AIDSU)为AIDSU(DSid,frameno,uno,Timestamp,Data,DSUsta),其中DSid为该单元所隶属的数据流标识符;uno为该AI数据流单元在frameno帧内的序号;TimeStamp为该数据流单元的生成时间戳;Data为数据流单元的数据部分,Data可以是某通信协议下的数据、控制命令;DSUsta为该数据单元的状态,当DSUsta为END时,表示为该帧的最后数据流单元;通常情况下一个AIDSU可以通过一个物理通信包内传输,例如大小1500字节。
(4)处理周期生成器(PCM)为PCM(PCid,PCtime),其中PCid为处理周期id,PCtime为该处理周期所用的时间;PCM以PCtime为间隔生成时间序列Pt0,Pt1,Pt2,......。
(5)并发AI数据流PAIDS(PDSid,DSS,CN,Pnum,PCtime)为同一汇集节点汇集到的相同处理周期的数据流的集合,这个汇集节点可以是针对大规模传感节点的汇集节点,也可以是嵌套在计算节点上的汇集来自多个汇集节点的PAIDS进而形成更大规模的PAIDS;PDSid为PAIDS的标识符,DSS为构成该PAIDS的数据流;CN为汇集该PAIDS的汇集节点,Pnum为组成该PAIDS的数据流的个数;PCtime为该并发数据流的数据流单元处理周期,即PAIDS上的所有数据流的当前处理周期的Pnum个DSU以SPMD处理方式提交给GPU节点并行处理。
(6)节点地址配置表NAC为NAC(id,Nname,IPa,Type,Pcp,Psuc),其中id为节点标识符;Nname为节点名称;IPa为节点的IP地址;Type为节点的类型,Type为0表示该节点为传感节点,Type为1表示该节点为汇集节点,Type为2表示该节点为计算节点(计算节点为配置GPU的计算机),Pcp为该节点的通信处理能力,Psuc为该节点通信处理成功累计平均率。
(7)流配置表(DSC)为DSC(DSid,SNid,DNid),其中DSid为数据流标识符,来自AI数据流表;SNid为该AI数据流单元的源节点,来自节点地址配置表;DNid为该AI数据流单元的目标节点,来自节点地址配置表。
(8)并发流配置表(PDSC)为PDSC(PDSid,SNid,DNid,DSS),其中PDSid为该并发AI数据流标识符,来自并发AI数据流表;PSNid为该并发AI数据流的源节点,来自节点地址配置表;PDNid为该并发AI数据流的目标节点,来自节点地址配置表;DSS为该并发AI数据流所包含的数据流的集合。
(9)循环AI帧缓冲区(CAIB)对象表为CAIBT(Nid,AIframe[PL][AIBL],AIBL,rl,rbl),其中Nid为该表项所对应的汇集节点编号,AIframe[][]为PL个AI帧缓冲循环队列,如图3所示汇集节点通信架构图中循环AI帧缓冲区,每一行存放一个数据流的帧,一共有PL行,代表PL个AI数据流;AIBL为一个帧缓冲所能容纳AI数据流单元的个数,当一个数据流的AI数据流单元的个数大于AIBL时,再后接收到的AI数据流单元将存放于AIframe[][0],然后再存放于AIframe[][1],AIframe[][2],…,这样周而复始,循环下去;AIBL的长度如设计为PL个AI数据流中最大帧长度,这样会浪费空间,因此根据通信丢包率rl和循环AI帧缓冲区缺失率rbl来调整AIBL的大小。
(10)并发AI帧缓冲区(PAIB)对象表为PAIBT(CNid,AIframe[PL][MAXFL],Mak[PL][MAXFL]),其中CNid为该表项所对应的计算节点编号,AIframe[][]为一个AI帧缓冲区,其长度为PL,每个数组元素对象存放一个数据流的帧,并且数组元素对象由若干个AI数据流单元构成,并且这些AI数据流单元按照他们各自的Timestamp顺序存储,如图3所示循环AI帧缓冲区,每一行存放一个数据流的帧,一共有PL行,代表PL个AI数据流单元;MAXFL为PL个AI数据流单元中最大帧长度;这里为了GPU的SPMD计算需求,AIframe[][]一下存放了PL个AI数据流单元的当前时间周期的完整帧。如图4中,并发AI帧缓冲区的每一行存放一个AI数据流单元的当前帧。Mak[PL][MAXFL]为标志矩阵,其矩阵元素与AIframe[PL][MAXFL]一一对应;对1<=i<=PL,1<=j<=MAXFL,当Mak[i][j]=0时,意味着AIframe[i][j]所对应的AI数据流单元还没有收到;当Mak[i][j]=1时,意味着AIframe[i][j]所对应的AI数据流单元已经收到;当Mak[i][j]=NULL时,意味着AIframe[i][j]所对应的AI数据流单元在当前帧中无意义,即实际没有数据;当Mak[i][j]=END时,意味着AIframe[i][j]所对应的AI数据流单元为组成该AI帧的最后一个AI数据流单元。
(11)帧缓冲区表FB(Sid,AIframe[FL],p),其中Sid为传感节点id,AIframe[FL]为由FL个单元构成的缓冲区,每个单元存放一个AI数据流单元;p为指向该缓冲区当前可用单元。
(12)全局配置目录存放在一个可以被所有节点访问的公共存储环境下,这里存放于任务配置***,其存放AI数据流(AIDS)表、AI数据流单元(AIDSU)定义、处理周期生成器(PCM)表、并发AI数据流(PAIDS)表、节点地址配置表NAC、流配置表DSC、并发流配置表PDSC、循环AI帧缓冲区(CAIB)对象表、并发AI帧缓冲区(PAIB)对象表、帧缓冲区FB表等。
3、算法
(1)任务配置***工作过程如下:
***配置人员根据大规模智能传感器的数目、AI数据流的流量、汇集节点的通讯能力、计算节点的计算能力,设置处理周期生成器的PCtime;初始化设置AI数据流(AIDS)表、并发AI数据流(PAIDS)表、节点地址配置表NAC、流配置表DSC、并发流配置表PDSC等。
(2)周期生成器(PCM)工作过程如下:
获取标准时间,读取全局配置目录的PCM(PCid,PCtime),按照PCtime周期间隔生成时间序列Pt1,Pt2,……,Ptn,……。接收***其他部件的时间周期获取请求,并把当前的时间周期Pt发送给请求者。
(3)智能传感节点通信过程如下:
AI计算进程读取全局配置目录,获取自己节点涉及的AI数据流AIDS(DSid,AIframeS,Pt)、AI帧AIframe(DSid,frameno,AIDSUS,Pt)、AI数据流单元结构AIDSU(DSid,frameno,uno,Timestamp,Data,DSUsta)、节点地址配置表NAC(id,Nname,IPa,Type,Pcp,Psuc)、流配置DSC(DSid,SNid,DNid,dsr);根据AIframe(DSid,frameno,AIDSUS,Pt)构建本地帧缓冲区FB(Sid,AIframe[FL],p),存储之并通知发送进程。
置AIframe.frameno=0;//帧序号初始化为0;
AI计算进程和发送进程周期地重复如下工作:
{
AI计算进程从周期生成器获取当前计算周期Pt;
读取当前阶段智能传感数据,并执行初步AI计算(如卷积、池化,具体需要根据具体模型及任务分解定义)得到AI数据中间结果AIR,把AIR按照AIDSU的定义,沿着从头到尾的顺序划分成若干个AIDSU序列:AIDSU1,AIDSU2,…,AIDSUm,这时每个AIDSU的Timestamp为空,m为AIDSU的个数;并把这些AIDSU序列按照逐一存放到帧缓冲区FB中;
发送进程设置序号计数器sno=1,逐一读取FB,对FB的每一个元素FB.AIframe[p],(1<=p<=m)做:
{
读取FB.AIframe[p]存放的AIDSU(DSid,frameno,Timestamp,Data,DSUsta);
获取当前机器的时间戳TS,置AIDSU.Timestamp=TS和AIDSU.uno=sno;
如果p=m,则置AIDSU.DSUsta=“END”;//当前帧的最后一个数据流单元
调用物理网络通信进程向DSC.DNid汇集节点发送FB.AIframe[p];
sno++;
}
AIframe.frameno++;
置FB所有单元为NULL(空),准备处理下一个AI帧;
}
(4)汇集节点通信过程如下:
(4.1)汇集进程读取全局配置目录,根据自己节点ID按照查询条件ID=PDSC.SNid查询并发流配置表,获取自己节点涉及的并发流配置PDSC(PDSid,SNid,DNid,DSS)(这里假设每个汇集节点有一个并发数据流)、循环AI帧缓冲区CAIBT(Nid,AIframe[PL][AIBL],AIBL,rl,rbl);根据CAIBT创建本地的循环AI帧缓冲区,建立AI数据流集合DSS与CAIBT.AIframe[PL][AIBL]的存储对应关系,即PDSC.DSS[i]CAIBT.AIframe[i][AIBL],这里1<=i<=PL,即数据流PDSC.DSS[i]的当前AI帧存放于循环队列CAIBT.AIframe[i][AIBL]中,PL为并发流PDSid所包含的AI数据流的个数。
汇集进程根据PDSC.DSS[i](1<=i<=PL)查询全局配置目录的流配置表DSC(DSid,SNid,DNid)获取PL个AI数据流的智能传感器通信地址Adr[i](1<=i<=PL);
(4.2)汇集进程周期地重复如下过程:
{
汇集进程获取当前处理周期Pt,计算当前时间TimeS0=f(Pt);//TimeS0为处理周期Pt的函数,根据实施情况设定;
启动时钟TimeS=TimeS0;置CAIBT.AIframe[][]所有元素为NULL(空);
设置帧结束标志数组fn[i]=0(1<=i<=PL),fn[i]=1表示第i个AI数据流的当前帧接收完毕;
如果fn[i](1<=i<=PL)不全为1,则重复做:
{
监听接收来自智能传感器Adr[i](1<=i<=PL)的AI数据流单元AIDSU[i](DSid,frameno,uno,Timestamp,Data,DSUsta),做:
{
如果AIDSU[i].uno>=AIBL,则数组下标变量sss=1,否则sss=AIDSU[i].uno+1;
把AI数据流单元AIDSU[i]存放于CAIBT.AIframe[i][sss];
如果AIDSU[i].DSUsta==“END”,则fn[i]=1;
如果CAIBT.AIframe的某列j(1<=j<=AIBL)CAIBT.AIframe[][j]全部接收到数据,则通知DMA发送进程发送该并发流的当前AI数据流单元CAIBT.AIframe[1][j],CAIBT.AIframe[2][j],……,CAIBT.AIframe[PL][j];
如果时钟TimeS>=TimeS0+f(Pt+1),这时本处理周期已经结束,则Break跳出当前循环;
}
通知DMA发送进程发送CAIBT.AIframe[][]中的所有未被发送的列;
通知DMA发送进程发送“当前帧发送结束”命令;;
准备接收下一个AI帧;
}
}
(4.3)DMA发送进程重复如下工作:
{
接收来自汇集进程的AI数据流单元的第sss列数据CAIBT.AIframe[1][sss],CAIBT.AIframe[2][sss],……,.AIframe[PL][sss]或者“当前帧发送结束”命令;并调用硬件DMA发送机制(如INTEL的DPDK)向PDSC.DNid发送CAIBT.AIframe[1][sss],CAIBT.AIframe[2][sss],……,CAIBT.AIframe[PL][sss]或者“当前帧发送结束”命令;
}
(5)计算节点通信过程如下:
(5.1)DMA接收进程读取全局配置目录,根据自己节点标识符,按照查询条件ID=PDSC.DNid查询并发流配置表;获取自己节点涉及的并发流配置PDSC(PDSid,SNid,DNid,DSS)(为了简化描述,这里假设每个汇集节点有一个并发数据流)、并发AI帧缓冲区PAIBT(CNid,AIframe[PL][MAXFL],Mak[PL][MAXFL]);根据PAIBT创建本地的并发AI帧缓冲区,建立AI数据流集合DSS与PAIBT.AIframe[PL][MAXFL]的存储对应关系,即PDSC.DSS[i]PAIBT.AIframe[i][MAXFL],这里1<=i<=PL,即数据流PDSC.DSS[i]的当前AI帧存放于PAIBT.AIframe[i][MAXFL]中,PL为并发流PDSid所包含的AI数据流的个数。设置PAIBT.Mak[][]的所有元素值为NULL;
(5.2)DMA接收进程周期地重复如下过程:
{
DMA接收进程获取当前处理周期Pt,计算当前时间TimeS0=f(Pt);//TimeS0为处理周期Pt的函数,根据实施情况设定;
启动时钟TimeS=TimeS0;置PAIBT.AIframe[][]所有元素为空;
AI数据流单元丢失计数器count=0;
DMA接收进程接收当前并发AI帧,重复做:
{
DMA接收进程监听接收来汇集节点PDSC.SNid的“当前帧发送结束”命令,如果收到则Break跳出当前循环;
如果时钟TimeS>=TimeS0+f(Pt+1),这时本处理周期已经结束,则跳出当前循环;
DMA接收进程监听接收来汇集节点PDSC.SNid的当前并发AI数据流单元CAIBT.AIframe[1][j],CAIBT.AIframe[2][j],……,CAIBT.AIframe[PL][j],这里(1<=j<=AIBL),并且做:
{
定义一个AI数据流单元AIDSU(DSid,frameno,uno,Timestamp,Data,DSUsta)并且置AIDSU=AIframe[1][j];
确定数组下标变量sss=AIDSU.uno;(这里有1<=sss<=MAXFL)
For(i=1;i<=PL;i++)
{
PAIBT.AIframe[i][sss]=CAIBT.AIframe[i][j];//存储接收到的AI数据流单元;
If PAIBT.AIframe[i][sss]==NULL,
则{PAIBT.Mak[i][sss]=0(当前单元没有数据);count++;}否则PAIBT.Mak[i][sss]=1;
}//For
}//存储处理一列AISU单元;
}//一个AI帧接收完毕;
如果count=0,则说明该并发AI帧没有AI数据流单元丢失,则传输PAIBT.AIframe[][]给GPU计算进程;
如果count>0,则说明该并发AI帧有AI数据流单元丢失,则发送PAIBT.Mak[][]给汇集节点PDSC.SNid重传丢失的AI数据流单元;收齐重传单元后传输PAIBT.AIframe[][]给GPU计算进程;
}
(5.3)GPU计算进程重复如下工作:
{
接收来自DMA接收进程的PAIBT.AIframe[][],并且应用SPMD机制执行AI模型的相应计算步骤;
}
(6)丢失重传通信以及***参数调整过程如下:
(6.1)汇集节点SNid上汇集进程接收来自计算节点DNid上的并发AI帧缓冲区标志矩阵PAIBT.Mak[][];
置缓冲区缺失计数器blcount=0;
置通信丢包计数器lcount=0
For(i=1;i<=PL;i++)
{
For(j=1;j<=MAXFL;j++)//从本地缓冲区,查询需要重传的AI数据流单元
{if PAIBT.Mak[i][j]=0then
{
置通信丢包计数器lcount=lcount+1;
扫描自己的循环AI帧缓冲区CAIBT.AIframe[][];
如果CAIBT.AIframe[][]存在PAIBT.Mak[i][j]所对应的AI数据流单元,则取出它发送给DNid的DMA接收进程并置PAIBT.Mak[i][j]=1;
否则置缓冲区缺失计数器blcount=blcount+1;
}
For(j=1;j<=MAXFL;j++)//请求智能传感节点重传的AI数据流单元
{if PAIBT.Mak[i][j]=0then
{发送向量PAIBT.Mak[i]到智能传感节点Adr[i],要求Adr[i]重传向量PAIBT.Mak[i]分量为零的元素所对应的AI数据流单元;
接收这些重传单元并发送给计算节点DNid的DMA接收进程,这个过程不再赘述};
}
}
//参数调整及负载均衡
计算通信丢包率CAIBT.rl=(CAIBT.rl+lcount/(PL*MAXFL))/2;
如果CAIBT.bl大于阈值BL,则通知任务配置***“通信丢包高”、重新均衡配置任务;
计算循环AI帧缓冲区缺失率CAIBT.rbl=CAIBT.rbl+blcount/(PL*MAXFL))/2;
如果CAIBT.rbl大于阈值RBL,则增大循环AI帧缓冲区CAIBT.AIBL来增大CAIBT.AIframe[][]的缓冲空间,否则减少循环AI帧缓冲区CAIBT.AIBL来减少CAIBT.AIframe[][]的缓冲空间;
(6.2)智能传感节点Adr[i]接收来自汇集节点SNid上的重传向量PAIBT.Mak[i];
描本地帧缓冲区FB(Sid,AIframe[FL],p),具体过程如下:
For(j=1;j<=MAXFL;j++)
if PAIBT.Mak[i][j]=0then
{向汇集节点SNid发送FB.AIframe[j]中的AI数据流单元;}。
Claims (2)
1.一种面向大规模AI数据流处理的集群汇集通信***,其特征在于,***包括数千个智能传感器节点组成的传感器***、任务配置***、数个汇集节点组成的汇集集群网络、GPU集群中计算节点组成的计算集群网络;调用任务配置***中调配,把数千个AI传感特征并发传输到汇集集群网络中各个汇集节点,再根据GPU计算节点的计算任务和计算能力的特性将并发的数据流单元传输到GPU集群中的各个计算节点,并按照SPMD模式统一并行实时处理;
所述传感节点由发送进程、帧缓冲区、AI计算进程构成;AI计算进程从任务配置***配置的全局配置目录中读取存储环境,AI计算进程从周期生成器获取当前计算周期,AI计算进程将收集视频传感数据帧转换为若干个AI数据流单元,送入帧缓冲区存储,并通知发送进程,由发送进程将AI数据流单元集合发送到汇集节点;
所述汇集节点由汇集进程、循环AI帧缓冲区、DMA发送进程构成;汇集进程根据自己节点标识符从任务配置***配置的全局配置目录中查询并发流配置和循环AI帧缓冲区对象表,建立从传感节点接收的AI数据流单元集合与循环AI帧缓冲区的存储关系,汇集进程从周期生成器获取当前处理周期,接收来自多个不同智能传感节点的AI数据流单元集合,依据存储关系存入循环AI帧缓冲区,存储结束后通知DMA发送进程,发送该并发流的当前AI数据流单元集合到相应的计算节点,DMA发送进程按照DMA通信机制发送AI数据流单元集合到相应的计算节点;
所述计算节点由DMA接收进程、GPU计算进程、并发AI帧缓冲区构成,DMA接收进程根据自己节点标识符从任务配置***配置的全局配置目录中查询并发流配置和并发AI帧缓冲区对象表,建立从汇集节点接收的AI数据流单元集合与并发AI帧缓冲区的存储关系,DMA接收进程从周期生成器获取当前处理周期,监听并接收汇集节点并发的AI数据流单元集合,并依据存储关系存入并发AI帧缓冲区,当并发AI帧缓冲区获取所有AI数据流的当前周期的AI帧后送往GPU设备实施大规模并行处理。
2.根据权利要求1所述面向大规模AI数据流处理的集群汇集通信***,其特征在于,***数据结构:
1)AI数据流为AIDS,包括DSid,AIframeS,Pt,其中DSid为数据流标识符;AIframeS为构成该数据流的AI帧的集合,其按照时间形成序列;Pt为该AI帧的处理的时间,包括感知、汇集、计算处理,即该AIframe必须在Pt内处理完毕;AI数据流通常由智能传感节点发起,经汇集节点汇集到边缘计算集群的计算节点;
2)AI帧为Aiframe,包括DSid,frameno,AIDSUS,Pt,其中DSid为该AI帧所隶属的数据流标识符;frameno为该AI帧自然序号;AIDSUS为构成该AI帧的AI数据流单元的集合;Pt为该AI帧的处理的时间;
3)AI数据流单元为AIDSU,包括DSid,frameno,uno,Timestamp,Data,DSUsta,其中DSid为该单元所隶属的数据流标识符;uno为该AI数据流单元在frameno帧内的序号;TimeStamp为该数据流单元的生成时间戳;Data为数据流单元的数据部分,Data可以是某通信协议下的数据、控制命令;DSUsta为该数据单元的状态,当DSUsta为END时,表示为该帧的最后数据流单元;一个AIDSU可通过一个物理通信包内传输;
4)处理周期生成器为PCM,包括PCid,PCtime,其中PCid为处理周期id,PCtime为该处理周期所用的时间;PCM以PCtime为间隔生成时间序列Pt0,Pt1,Pt2,......;
5)并发AI数据流为PAIDS,为同一汇集节点汇集到的相同处理周期的数据流的集合,这个汇集节点可以是针对大规模传感节点的汇集节点,也可以是嵌套在计算节点上的汇集来自多个汇集节点的PAIDS进而形成更大规模的PAIDS;PAIDS包括PDSid,DSS,CN,Pnum,Pctime,PDSid为PAIDS的标识符,DSS为构成该PAIDS的数据流;CN为汇集该PAIDS的汇集节点,Pnum为组成该PAIDS的数据流的个数;PCtime为该并发数据流的数据流单元处理周期,即PAIDS上的所有数据流的当前处理周期的Pnum个DSU以SPMD处理方式提交给GPU节点并行处理;
6)节点地址配置表NAC为NAC,包括id,Nname,IPa,Type,Pcp,Psuc,其中id为节点标识符;Nname为节点名称;IPa为节点的IP地址;Type为节点的类型,Type为0表示该节点为传感节点,Type为1表示该节点为汇集节点,Type为2表示该节点为计算节点,Pcp为该节点的通信处理能力,Psuc为该节点通信处理成功累计平均率;
7)流配置表为DSC,包括DSid,SNid,DNid,其中DSid为数据流标识符,来自AI数据流表;SNid为该AI数据流单元的源节点,来自节点地址配置表;DNid为该AI数据流单元的目标节点,来自节点地址配置表;
8)并发流配置表为PDSC,包括PDSid,SNid,DNid,DSS,其中PDSid为该并发AI数据流标识符,来自并发AI数据流表;PSNid为该并发AI数据流的源节点,来自节点地址配置表;PDNid为该并发AI数据流的目标节点,来自节点地址配置表;DSS为该并发AI数据流所包含的数据流的集合;
9)循环AI帧缓冲区对象表为CAIBT,包括Nid,AIframe[PL][AIBL],AIBL,rl,rbl,其中Nid为该表项所对应的汇集节点编号,AIframe[][]为PL个AI帧缓冲循环队列,每一行存放一个数据流的帧,一共有PL行,代表PL个AI数据流;AIBL为一个帧缓冲所能容纳AI数据流单元的个数,当一个数据流的AI数据流单元的个数大于AIBL时,再后接收到的AI数据流单元将存放于AIframe[][0],然后再存放于AIframe[][1],AIframe[][2],…,这样周而复始,循环下去;AIBL的大小根据通信丢包率rl和循环AI帧缓冲区缺失率rbl来调整;
10)并发AI帧缓冲区对象表为PAIBT,包括CNid,AIframe[PL][MAXFL],Mak[PL][MAXFL]),其中CNid为该表项所对应的计算节点编号;AIframe[][]为一个AI帧缓冲区,其长度为PL,每个数组元素对象存放一个数据流的帧,并且数组元素对象由若干个AI数据流单元构成,并且这些AI数据流单元按照他们各自的Timestamp顺序存储,每一行存放一个数据流的帧,一共有PL行,代表PL个AI数据流单元,MAXFL为PL个AI数据流单元中最大帧长度,为了GPU的SPMD计算需求,AIframe[][]一下存放了PL个AI数据流单元的当前时间周期的完整帧;Mak[PL][MAXFL]为标志矩阵,其矩阵元素与AIframe[PL][MAXFL]一一对应;对1<=i<=PL,1<=j<=MAXFL,当Mak[i][j]=0时,意味着AIframe[i][j]所对应的AI数据流单元还没有收到;当Mak[i][j]=1时,意味着AIframe[i][j]所对应的AI数据流单元已经收到;当Mak[i][j]=NULL时,意味着AIframe[i][j]所对应的AI数据流单元在当前帧中无意义,即实际没有数据;当Mak[i][j]=END时,意味着AIframe[i][j]所对应的AI数据流单元为组成该AI帧的最后一个AI数据流单元;
11)帧缓冲区表FB,包括Sid,AIframe[FL],p,其中Sid为传感节点id;AIframe[FL]为由FL个单元构成的缓冲区,每个单元存放一个AI数据流单元;p为指向该缓冲区当前可用单元;
12)全局配置目录存放于任务配置***,其存放AI数据流表、AI数据流单元定义、处理周期生成器表、并发AI数据流表、节点地址配置表NAC、流配置表DSC、并发流配置表PDSC、循环AI帧缓冲区对象表、并发AI帧缓冲区对象表、帧缓冲区FB表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010207619.5A CN111400048B (zh) | 2020-03-23 | 2020-03-23 | 面向大规模ai数据流处理的集群汇集通信*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010207619.5A CN111400048B (zh) | 2020-03-23 | 2020-03-23 | 面向大规模ai数据流处理的集群汇集通信*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400048A CN111400048A (zh) | 2020-07-10 |
CN111400048B true CN111400048B (zh) | 2022-06-07 |
Family
ID=71436509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010207619.5A Active CN111400048B (zh) | 2020-03-23 | 2020-03-23 | 面向大规模ai数据流处理的集群汇集通信*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400048B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理***及其处理方法 |
CN109948428A (zh) * | 2019-01-28 | 2019-06-28 | 上海理工大学 | 面向传感信息处理的gpu集群深度学习边缘计算*** |
CN110460971A (zh) * | 2019-09-24 | 2019-11-15 | 上海禾视信息技术有限公司 | 一种基于边缘计算的移动物联接入方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104639B2 (en) * | 2012-05-01 | 2015-08-11 | SEAKR Engineering, Inc. | Distributed mesh-based memory and computing architecture |
-
2020
- 2020-03-23 CN CN202010207619.5A patent/CN111400048B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理***及其处理方法 |
CN109948428A (zh) * | 2019-01-28 | 2019-06-28 | 上海理工大学 | 面向传感信息处理的gpu集群深度学习边缘计算*** |
CN110460971A (zh) * | 2019-09-24 | 2019-11-15 | 上海禾视信息技术有限公司 | 一种基于边缘计算的移动物联接入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111400048A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107948194B (zh) | 一种数据接入方法及*** | |
Zhang et al. | A novel architecture based on cloud computing for wireless sensor network | |
CN104994166A (zh) | 智能车分布式进程虚拟交换机通信方法 | |
CN110928694B (zh) | 一种计算机*** | |
Mehmood et al. | An energy-efficient mobile agent-based data aggregation scheme for wireless body area networks | |
Ünal | Integration of ZigBee based GPS receiver to CAN network for precision farming applications | |
CN111400048B (zh) | 面向大规模ai数据流处理的集群汇集通信*** | |
CN103702384B (zh) | 无线传感器网络面向应用的分簇式路由方法 | |
Bhardwaj et al. | Resource and service management architecture of a low capacity network for smart spaces | |
Galkin | Analysis models of collection data in wireless sensor networks | |
CN111245664B (zh) | 面向大规模数据流处理的gpu边缘计算集群通信*** | |
Amundson et al. | Efficient integration of web services in ambient-aware sensor network applications | |
Wu et al. | Optimizing network performance of computing pipelines in distributed environments | |
CN102694773A (zh) | IPv6无线传感器网络与现有网络的接入方法 | |
Ali et al. | A framework for development of cost-effective irrigation control system based on Wireless Sensor and Actuator Network (WSAN) for efficient water management | |
CN104581901B (zh) | 一种用于能源监测的分簇式数据网络建立和传输方法 | |
de Oliveira et al. | An energy-aware data cleaning workflow for real-time stream processing in the internet of things | |
Shao et al. | A spanning tree algorithm for data aggregation in wireless sensor networks | |
Kushwaha et al. | A particle swarm optimization based load scheduling algorithm in cloud platform for wireless sensor networks | |
Prakash et al. | Basic introduction of wireless sensor network | |
CN110674143A (zh) | 一种免耕机作业信息监测***及方法 | |
Khan et al. | Efficient Energy Optimization Routing for WSN Based on Even-Odd Scheduling. | |
Shanmukhi et al. | Extended comb needle model for energy efficient data aggregation in random wireless sensor networks | |
Rijab et al. | Implementing a reconfigurable Internet of Things Nodes using non-IP network based on Wireless Sensor Network | |
CN111314874B (zh) | 面向物联网应用的高并发海量数据采集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |