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) | 一种数据接入方法及系统 | |
CN101488975B (zh) | 实现无线传感器网络与IPv6网络全IP通信的系统 | |
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 | |
Rath et al. | MAQ system development in mobile ad-hoc networks using mobile agents | |
Ünal | Integration of ZigBee based GPS receiver to CAN network for precision farming applications | |
CN111400048B (zh) | 面向大规模ai数据流处理的集群汇集通信系统 | |
CN103702384B (zh) | 无线传感器网络面向应用的分簇式路由方法 | |
CN108063814B (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 | |
Chithra et al. | Energy Proficient Reduced Coverage Set with Particle Swarm Optimization for Distributed Sensor Network. | |
CN102694773A (zh) | IPv6无线传感器网络与现有网络的接入方法 | |
Wu et al. | Optimizing network performance of computing pipelines in distributed environments | |
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 | |
Khamayseh et al. | Evolutionary Algorithm for Scheduling in Wireless Sensor Networks. | |
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 | |
CN110674143A (zh) | 一种免耕机作业信息监测系统及方法 | |
KR20090073639A (ko) | 센서 네트워크의 모빌리티 에이전트 모듈 | |
Khan et al. | Efficient Energy Optimization Routing for WSN Based on Even-Odd Scheduling. |
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 |