Information communication device, information communication method, and program

By determining the update size and bandwidth based on data size and rate, and using RDMA for direct memory transfer, the technology addresses the challenges of high CPU load and latency in transferring large data sets from multiple terminals, achieving efficient and low-latency data transfer.

JP7666589B2Active Publication Date: 2025-04-22NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023515905
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-04-19
Publication Date
2025-04-22
Estimated Expiration
2041-04-19

AI Technical Summary

Technical Problem

Existing data transfer technologies, such as TCP/IP services in the OS layer, do not optimize communications based on data size or update rate, leading to increased CPU load and latency when transferring large amounts of data from multiple terminals.

Method used

The technology determines the update size of memory areas and sets the bandwidth of network paths based on the data size and update rate, using RDMA communication to enable direct memory-to-memory data transfer without CPU intervention.

Benefits of technology

This approach allows for high-speed and low-latency transfer of large amounts of data from multiple terminals without increasing CPU load, enabling efficient data processing and analysis in applications such as AI and sensor data collection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007666589000001
    Figure 0007666589000001
  • Figure 0007666589000002
    Figure 0007666589000002
  • Figure 0007666589000003
    Figure 0007666589000003
Patent Text Reader

Abstract

Provided is an information communication device for aggregating sets of data transmitted from a plurality of terminals and transmitting the aggregated sets of data to a reception side, the information communication device comprising: a determination means that operates in a first layer for determining an update size of a memory area to be used for holding the sets of data transmitted from the plurality of terminals on the basis of information on the sets of data; and a setting means that sets the bandwidth of a network path of a second layer necessary for communicating with the reception side on the basis of the update size and an update rate of the sets of data.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a technique for transferring data collected from a plurality of terminals. [Background technology]

[0002] In recent years, data from various sensors and other sources has been collected, and analysis of that data is being used to solve various social issues, such as crime prevention, accident prevention, congestion, and demand forecasting.

[0003] For example, Non-Patent Document 1 discloses a technology for analyzing surveillance camera images in real time and predicting congestion with high accuracy. [Prior art documents] [Non-patent literature]

[0004] [Non-Patent Document 1] https: / / monoist.atmarkit.co.jp / mn / articles / 1608 / 18 / news119.html, NTT East Gigaraku Camera Summary of the Invention [Problem to be solved by the invention]

[0005] The problems that the invention aims to solve will be described below.

[0006] In conventional technology, the OS layer TCP / IP service assumed to be used when transferring data to an analysis server, etc., does not optimize communication according to the size or update rate of the data to be transferred, and autonomously performs flow control and buffers data at the OS layer. As a result, when the amount of data to be transferred becomes huge, the CPU load increases. In addition, data transfer takes time due to flow control. This has led to the issue that it is difficult to transfer large volumes of data collected from multiple terminals at high speed and with low latency.

[0007] The present invention has been made in consideration of the above-mentioned problems, and aims to provide a technology that enables large volumes of data collected from multiple terminals to be transferred at high speed and with low latency without increasing the CPU load in a communication device installed in an aggregation node. [Means for solving the problem]

[0008] According to the disclosed technology, there is provided an information communication device that aggregates data transmitted from a plurality of terminals and transmits the data to a receiving side, A determination means operating in a first layer for determining an update size of a memory area used to hold the data based on information about the data transmitted from the plurality of terminals; a setting means for setting a bandwidth of a second layer network path required for communication with the receiving side based on the update size and the data update rate; Equipped with The determining means creates a necessary number of memory areas according to the data transmitted from the plurality of terminals. An information and communication device is provided. Effect of the Invention

[0009] The disclosed technology provides a technology that enables large volumes of data collected from multiple terminals to be transferred at high speed and with low latency without increasing the CPU load in a communication device installed in an aggregation node. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram for explaining an overview of RDMA. [Diagram 2] FIG. 1 is a diagram for explaining an overview of RDMA. [Diagram 3] FIG. 1 is a diagram for explaining an overview of RDMA. [Figure 4] FIG. 1 is a diagram for explaining an overview of RDMA. [Diagram 5] FIG. 1 is a diagram for explaining an overview of RDMA. [Figure 6]FIG. 1 is a diagram for explaining an overview of RDMA. [Figure 7] FIG. 1 is a diagram for explaining an overview of RDMA. [Figure 8] 1 is a diagram illustrating an example of the overall configuration of a communication system in a first embodiment. [Figure 9] FIG. 13 is a diagram for explaining an implementation image. [Figure 10] FIG. 1 is a diagram for explaining a problem. [Figure 11] FIG. 1 is a diagram for explaining a realization model. [Figure 12] FIG. 2 is a diagram illustrating an example of a functional configuration of a communication system according to a first embodiment. [Figure 13] FIG. 2 is a diagram illustrating an example of a functional configuration of a communication system according to a first embodiment. [Figure 14] FIG. 2 is a diagram for explaining an example of the operation of the communication system in the first embodiment. [Figure 15] FIG. 11 is a diagram illustrating an example of the overall configuration of a data processing system according to a second embodiment. [Figure 16] FIG. 2 is a configuration diagram of an edge node device. [Figure 17] FIG. 2 is a configuration diagram of a message broker device. [Figure 18] FIG. 2 is a configuration diagram of a data hub node device. [Figure 19] FIG. 1 is a configuration diagram of an AI application node device. [Figure 20] FIG. 11 is a diagram for explaining an example of the operation of the data processing system in the second embodiment. [Figure 21] FIG. 11 is a diagram for explaining a specific example of a data processing system in the second embodiment. [Figure 22] FIG. 2 illustrates an example of a hardware configuration of the apparatus. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiment described below is merely an example, and the embodiment to which the present invention is applied is not limited to the following embodiment.

[0012] A first embodiment and a second embodiment will be described below.

[0013] Since both the first and second embodiments use RDMA as a data communication method, an overview of RDMA will be described first. Note that the following overview of RDMA shows a conventional technique for the convenience of explaining RDMA, but the RDMA used in this embodiment does not need to be the same as the conventional RDMA described below. As long as it is a method that allows direct communication between memories without going through a CPU, a method other than the method described in the following overview of RDMA may be used.

[0014] (Overview of RDMA) RDMA uses hardware equivalent to a NIC such as Ethernet (referred to as an RDMA-NIC in this embodiment).

[0015] The sending RDMA-NIC reads data from a pre-allocated memory area using DMA and transfers it to the receiving RDMA-NIC. The receiving RDMA-NIC writes the received data to a similarly pre-allocated memory area using DMA. This enables zero-copy communication between user space applications on different nodes. In RDMA, the network protocol is implemented in the RDMA-NIC (hardware), which reduces the consumption of CPU resources in the OS layer of the communication device installed in the node and achieves low-latency communication.

[0016] In addition, while conventional TCP and UDP communications using the OS layer network stack are carried out using sockets, RDMA communicates using Queue Pairs (QPs).

[0017] QP is a virtual interface provided by the RDMA-NIC and consists of a pair of a Send Queue (SQ) and a Receive Queue (RQ). Data related to data transmission and data reception are stored in the SQ and RQ respectively. This includes the address of the memory area for storing data and information such as its length. As the memory area, a virtual memory address or a physical memory address is used.

[0018] As shown in FIG. 1, when using the RDMA-NIC, the memory area to be accessed by the RDMA-NIC is registered with the OS as a Memory Region. Also, when registering the Memory region, a conversion table between the virtual memory address and the physical memory address is created and passed to the RDMA-NIC, so that the RDMA-NIC can recognize a part of the virtual memory address space of the user program (APP). The RDMA-NIC can refer to this conversion table at the time of transmission and reception to determine the physical memory address to be accessed. Therefore, it is possible to perform data transfer with minimal use of the CPU in the OS layer of the communication device installed in the node.

[0019] Note that using the virtual memory address as the memory area as described above is just an example. It is also possible to use the physical memory address as the memory area. The memory area using the physical memory address is called a PA-MR (Physical Address Memory Region). When using the PA-MR, a transmission request / reception request including the physical memory address of the memory area for storing data and information such as its length is stored in the SQ / RQ, and based on the said transmission request / reception request, access to the physical memory address can be made.

[0020] <Basic Model of the Transport Layer> Next, the communication model of the Transport Layer in RDMA between a Local node and a Remote node will be explained with reference to Figure 2. As shown in Figure 2, in the Transport Layer of RDMA, a QP (Queue Pair) is configured between the Local and Remote. As mentioned above, the QP is a set of an SQ (Send Queue) and an RQ (Receive Queue).

[0021] The unit of communication in RDMA is a communication request called WR (Work Request), which is stacked in SQ / RQ in units of WQE (Work Queue Element). The operation of stacking this WQ is performed by commands from a user program (APP shown in Figure 1). The operation of sending / receiving communication requests is performed by the RDMA-NIC asynchronously with the operation of stacking the WQ.

[0022] There are two types of WR: Send WR, which is a transmission request, and Receive WR, which is a reception request. With Send WR, the memory area of ​​the data to be sent is specified as WQE and pushed to SQ. With Receive WR, the memory area of ​​the data to be received is specified as WQE and pushed to RQ. WQE can be pushed in FIFO (First-In-First-Out) as many times as the queue depth of SQ / RQ.

[0023] When WR processing between QPs is completed normally, a CQE (Completion Queue Entry) indicating normal completion is placed in the CQ (Completion Queue) corresponding to each SQ / RQ. When WR processing between QPs ends with an error, a CQE indicating the error is placed in the CQ. When the normal completion CQE is confirmed, the WQE for the SQ / RQ is deleted, and the next WR can be accepted.

[0024] <RDMAにおけるサービスタイプ、オペレーションタイプ> In RDMA, service types are broadly classified into four service types: Reliable Connection (RC), Reliable Datagram (RD), Unreliable Connection (UC), and Unreliable Datagram (UD) according to the classification of Reliable / Unreliable and Connection / Datagram. Generally, RC and UD are commonly used among them.

[0025] RC guarantees the order and reachability of messages through a mechanism of confirming the success / abnormality of communication and retransmission by ACK / NAK. It is also of the Connection type and performs one-to-one communication between Local-Remote QPs.

[0026] Although UD does not have a confirmation response or retransmission mechanism, unlike RC, it allows multi-to-multi communication such as specifying a destination for each communication and transmitting to multiple QPs or receiving from multiple QPs.

[0027] Operation types in RDMA are broadly classified into four operation types: SEND, RDMA WRITE (with Immediate), RDMA READ, and ATOMIC Operations. All of these can be used in RC, while only SEND can be used in UD. Even for the same operation type, the way of accumulating WQEs and CQEs differs depending on the service type.

[0028] In the RDMA communication in this embodiment (the first embodiment, the second embodiment), any service type and operation type can be used. Hereinafter, each operation type will be described.

[0029] <SEND operation mode (RC)> Fig. 3 shows the outline of the operation of the SEND operation mode (RC). The SEND operation mode (RC) is the basic transmission and reception model of RDMA and is a model in which the Local side transmits data to the Remote side.

[0030] As shown in FIG. 3, the Local side prepares SQ and the Remote side prepares RQ, and each stacks WQE. The Local side takes out the WQE of SQ from the beginning and sends the data in the specified memory area in it in SEND Only mode.

[0031] Regarding the data received on the Remote side, take out the WQE of RQ from the beginning and store it in the specified memory area in it. When the reception is successful, CQE is stacked on the CQ corresponding to RQ, and an ACK is returned to the Local side. When the Local side receives the ACK, CQE is stacked and the WQE of SQ is released.

[0032] <SEND operation mode (UD)> FIG. 4 shows the operation outline of the SEND operation mode (UD). The SEND operation mode (UD) is a mode that does not perform a confirmation response, unlike the SEND of RC. As shown in FIG. 4, the Local side prepares SQ and the Remote side prepares RQ, and each stacks WQE. When the communication preparation is complete, the Local side sends data in SEND Only mode. When the data transmission is completed, CQE is stacked on the CQ corresponding to SQ. When the reception is successful on the Remote side, CQE is stacked on the CQ corresponding to RQ.

[0033] <RDMA WRITE operation mode (RC)> FIG. 5 shows the operation outline of the RDMA WRITE operation mode (RC). The RDMA WRITE operation mode (RC) is a mode in which the Local side sends data to the Remote side in the same way as SEND, but it is different from SEND in that it directly transfers to the Remote memory area.

[0034] The Local side prepares SQ and stacks WQE. At this time, in addition to the memory area of the data to be sent in the WQE, the memory area of the Remote side where writing is to be performed is also specified. The Remote side secures a memory area (Memory Region) for RDMA, but there is no need to stack WQE on RQ.

[0035] When communication is ready, the Local side sends data using RDMA Write. The data is written directly into the memory area on the Remote side. When the reception is successful on the Remote side, an ACK is returned to the Local side. When the Local side receives the ACK, CQEs are piled up and the WQE of the SQ is released.

[0036] <RDMA WRITE w / Imm operation mode (RC)> Figure 6 shows the outline of the operation of the RDMA WRITE w / Imm operation mode (RC). The RDMA WRITE described with reference to Figure 5 has the disadvantage that the Remote side cannot detect changes in the memory area when receiving data.

[0037] In contrast, in the RDMA WRITE w / Imm (RDMA WRITE with Immediate) mode shown in Figure 6, the Remote side sets the RQ and WQE and waits for the CQE at the time of successful reception of the RDMA WRITE to handle this.

[0038] In the WQE of the SQ on the Local side, in addition to the memory area of the data to be sent and the memory area on the Remote side where the write is to be performed, a special field imm_data is set. When the reception is successful on the Remote side, a CQE containing imm_data is piled up in the CQ corresponding to the RQ. Using this, it is possible to detect changes in any memory area.

[0039] <RDMA READ operation mode (RC)> Figure 7 shows the outline of the RDMA READ operation mode (RC). As shown in Figure 7, the RDMA READ operation mode (RC) is a method of pulling data from the Remote side to the Local side.

[0040] The Local side prepares the SQ and piles up the WQEs. At this time, the memory area where the data is to be received is specified in the WQE. Furthermore, the memory area on the Remote side where the read is to be performed is also specified. The Remote side secures a memory region for RDMA, but there is no need to pile up WQEs in the RQ.

[0041] When communication is ready, the local side requests data reading with an RDMA Read Request. When the remote side receives this, it sends the data from the remote side's memory area directly to the specified local side memory area with an RDMA Read Response. The RDMA Read Response packet contains an ACK extension header, and when the local side receives this ACK, a CQE is added and the WQE of the SQ is released.

[0042] The first and second embodiments will be described below.

[0043] (First embodiment) First, a first embodiment will be described. Fig. 8 shows an overall configuration diagram of a communication system in the first embodiment.

[0044] As shown in FIG. 8, this communication system includes a local aggregation node (LA) that connects a plurality of terminals, a regional edge node (RE) that connects the plurality of local aggregation nodes (LA), and an application node (AP).

[0045] In the first embodiment, it is assumed that the terminal is a camera. It is assumed that the regional edge nodes (RE) are installed in each region, such as Tokyo and Osaka. There are multiple local aggregation nodes (LA) in each region, and each local aggregation node (LA) accommodates multiple terminals (e.g., cameras). The nodes are connected to each other, for example, by an optical network.

[0046] <Operation overview, issues, etc.> In the first embodiment, it is assumed that, for example, a multi-camera multi-purpose AI platform is configured by the system configuration shown in Fig. 8. This assumption is also true for the second embodiment.

[0047] Specifically, the platform will install a large number of cameras in commercial and office buildings and analyze the image data collected from the cameras. For example, the analysis will count the number of people in an area, which will be useful for avoiding congestion and guiding people to evacuate. In addition, counting the number of people, including their attributes, will enable demand forecasting, optimizing inventory and staff allocation, analyzing the effectiveness of events, and planning events and advertisements. In addition, detecting people with suspicious behavior will be useful for crime prevention.

[0048] In addition, from the perspective of next-generation urban development, installing a large number of cameras on the roads will make it possible to achieve automatic control of Micromobility vehicles, prevention of collisions at intersections, and automatic dispatch of Micromobility vehicles to areas with many people.

[0049] More specifically, for example, as shown in Figure 9, we assume a 500m x 500m city block with roads 50m wide in a grid pattern, and install cameras every 10m with the following specifications:

[0050] Connection method: Wired Ethernet (registered trademark) Resolution: Full HD (2MB Raw) Frame rate: 15FPS ·Encoding: Motion JPEG 60Mbps There are 20 roads, and 50 cameras are installed on each road, so the total number of cameras is about 1000. Merging the output from all the cameras results in 60Gbps and 15000FPS. The total rate of 60Gbps is calculated by 1 frame (500kB) x 1000 cameras x 15FPS.

[0051] This data becomes the input to, for example, one local aggregation node (LA) shown in Fig. 8. Fig. 10 shows an image of the data flow from the camera through the local aggregation node (LA) and regional edge node (RE) to the application node (AP). As shown in Fig. 10, 60Mbps TCP data transfer is performed simultaneously for 1000 cameras.

[0052] For example, the above data transfer can be realized by installing in the LA and RE information and communication devices whose CPUs run programs that send and receive data while using the TCP / IP services on the OS layer. However, the TCP / IP services on the OS layer do not optimize communications according to the size or update rate of the data to be transferred, but instead autonomously perform flow control and buffer data on the OS layer.

[0053] For this reason, in the example of data transfer shown in FIG. 10, if the amount of data to be transferred becomes enormous, the CPU load increases, and the data transfer takes time due to flow control.

[0054] It is possible to balance the load by creating a load balancing layer, but this would require a considerable number of servers, which would increase the CPU load on the system as a whole and increase latency due to the load balancing layer.

[0055] Therefore, in the first embodiment, RDMA that enables direct data communication between memories is used as the communication method between the LA and the RE. That is, each of the local aggregation node (LA) and the regional edge node (RE) is provided with an information communication device equipped with an RDMA-NIC. Also, in the information communication device, an RDMA virtual memory area is reserved (registered) according to the size of the collected data, and a network bandwidth is allocated according to the size and update rate of this virtual memory area. This allocation can be performed dynamically. For example, the following method is a method for dynamically allocating network bandwidth. Note that the following method is an example, and a method other than the following method may be used.

[0056] In the optical physical layer, the number of optical wavelengths is dynamically changed.

[0057] The transmission equipment layer (Layer 1) handles frame changes in OTN, finer granularity bandwidth changes using ODUFlex, speed hierarchies in SONET / SDH, and finer granularity rate changes using VC (Virtual Concatenation).

[0058] At higher layers, bandwidth control is performed using traffic engineering functions such as MPLS-TE and RSVP-TE.

[0059] In protocols that increase transmission speeds by increasing the number of simultaneous parallel streams, the degree of parallelism in data transfer is adjusted.

[0060] Instead of bandwidth control in the network, bandwidth control is performed at the forwarding node using a traffic shaper or similar.

[0061] Fig. 11 shows an example of communication using RDMA between a local aggregation node (LA) and a regional edge node (RE) under the assumption of the above-mentioned camera arrangement. Fig. 11 shows the memory used by RDMA in each of the local aggregation node (LA) and the regional edge node (RE).

[0062] As mentioned above, the total rate of 60 Gbps is 500 kB per frame × 1000 cameras × 15 FPS, and 1000 cameras fit within 500 MB. Therefore, a memory area of ​​500 MB is secured in the information communication device on the local (ground) side. However, since the local side needs to write the image data of the next frame to the memory during data transfer, two areas are generated: an area for writing the memory and an area for transferring the memory. In other words, as shown in FIG. 11, two memory areas are generated: a 500 MB memory area as the G1 area and a 500 MB memory area as the G2 area. Each memory area is updated at 15 Hz. Note that at least two or more memory areas need to be secured.

[0063] In a communication device of a regional edge node (RE) on the remote (cloud) side, it is assumed that the data will be held for a certain period of time for data analysis or the like when the data is transferred to an application node.

[0064] Therefore, in the information communication device of the regional edge node (RE), the necessary number of memory areas are generated according to the data retention time. For example, if the data retention time is 1 second, 16 (=15+1) memory areas are secured. In the example of Fig. 11, four areas, C1 area to C4 area, are secured.

[0065] In addition, in the network between the LA and RE, a network bandwidth (60Gbps+α) is allocated according to the total data rate of 60Gbps. Note that α indicates that the bandwidth is allocated with a margin, and it is sufficient to allocate an amount that includes header overhead due to the encapsulating protocol and other control messages, for example, about 10%.

[0066] If a pair of RDMA nodes cannot achieve 60 Gbps RDMA communication, it is possible to divide the memory area and run multiple memory synchronizations in parallel. In this case, the optical path can be shared by performing label multiplexing, for example.

[0067] <Device configuration> 12 is a diagram showing the functional configuration of the information communication device 100 on the LA side and the information communication device 200 on the RE side. The information communication device 100 and the information communication device 200 are connected via an optical network 300.

[0068] 12, the information communication device 100 on the LA side has a data transmission unit 110, a control unit 120, and an RDMA communication unit 130. The data transmission unit 110 and the control unit 120 are functional units realized by a CPU, an FPGA, a physical memory, a user program, etc. The RDMA communication unit 130 corresponds to an RDMA-NIC.

[0069] Data transmitting unit 110 receives data from the terminal side, stores the data in physical memory, and issues a transmission command to RDMA communication unit 130. Issuing a transmission command corresponds to piling a transmission request in a transmission queue in RDMA communication unit 130.

[0070] The control unit 120 grasps the size of data to be transferred and the update rate by monitoring the data transmission unit 110 or by acquiring information on the terminal side. The control unit 120 determines the size of the memory area to be used by the RDMA communication unit 130 (called the update size because it is updated in units of this size) based on the data size and secures the memory area, and determines the bandwidth of the network path for data communication by RDMA communication between the LA and the RE based on the data size and the update rate, and secures the bandwidth.

[0071] That is, the control unit 120 includes a determination means operating in the first layer for determining an update size of a memory area used to hold data based on information related to the data transmitted from multiple terminals, and a setting means for setting a bandwidth of a network path in the second layer required for communication with the receiving side based on the update size and the update rate of the data. Note that the layer for size determination processing and the layer for processing related to RDMA communication are different, so they are called the first layer and the second layer.

[0072] The information (data size, update rate, etc.) grasped by the control unit 120 on the LA side is notified to the control unit 220 of the information communication device 200 on the RE side, and the control unit 220 performs processing such as allocating memory area for the RDMA communication unit 230.

[0073] The data size and update rate can be grasped, for example, by the control unit 120 grasping the number of terminals and the amount of data transmitted from each terminal at the update rate based on the received data. Also, as shown in Fig. 13, an operation system 250 may be provided, and each of the control units 120 and 220 may receive explicit information such as the number of terminals and the update rate and data size of data transmitted from each terminal from the operation system 250 to grasp the data size and update rate.

[0074] 12 and 13, the information communication device 200 on the RE side has a data receiving unit 210, a control unit 220, and an RDMA communication unit 230. The data receiving unit 210 and the control unit 220 are functional units realized by a CPU, an XPU, a physical memory, a user program, and the like. The RDMA communication unit 230 corresponds to an RDMA-NIC. Here, various processor units such as a GPU are collectively referred to as an XPU.

[0075] The data receiving unit 210 receives data from the LA side via the RDMA communication unit 230, stores the data in physical memory, and executes data processing by, for example, the XPU.

[0076] The data receiving unit 210 may also acquire data from the LA side and store it in the physical memory by executing an RDMA READ operation. This makes it possible to cope with a case where the LA side is relatively weak in terms of device configuration.

[0077] As described above, data reception may be mainly performed by either the LA side or the RE side.

[0078] The control unit 220 grasps the data size, update rate, etc. based on information received from the control unit 120 on the RE side or the operation system 250, and reserves a memory area to be used by the RDMA communication unit 230 and a network bandwidth based on the grasped information. The control unit 220 also calculates the time to hold data in the RE based on the data processing time, etc., and reserves a number of memory areas according to the data holding time.

[0079] <Detailed example> Next, an example of a detailed configuration and a detailed operation in the first embodiment will be described with reference to Fig. 14. In the communication system shown in Fig. 14, an information communication device 100 is provided on the LA side, and an information communication device 200 is provided on the RE side. In the example of Fig. 14, one LA is connected to the RE, but this is an example, and the RE can connect multiple LAs. Also, the information communication device 100 in the LA may be called a proxy server. This is because the information communication device 100 has a function that enables RDMA communication on a network even if a terminal (such as a camera) does not support RDMA.

[0080] In addition, an optical packet transponder 14 is connected to the information communication device 100, and an optical packet transponder 26 is connected to the information communication device 200. The optical packet transponder 14 and the optical packet transponder 26 are connected via an optical network 300. The optical packet transponder 14 on the LA side converts an electrical signal output from the RDMA-NIC 12 of the information communication device 100 into an optical signal, and transmits the optical signal. The optical packet transponder 26 on the RE side converts an optical signal received from the optical network 300 into an electrical signal, and transmits the electrical signal to the RDMA-NIC 24 of the information communication device 200.

[0081] Furthermore, 80 cameras are connected via a LAN to the information communication device 100 on the LA side. Note that even if data transfer from the cameras is TCP / IP, it is assumed that communication will be at most several hundred meters, so high-speed data transfer is assumed to be possible.

[0082] In FIG. 14, in order to facilitate the explanation of the states of the memory areas, a configuration close to the physical implementation of each of the information communication device 100 and the information communication device 200 is shown.

[0083] That is, the information communication device 100 includes a control unit 120, a smart NIC 11, and an RDMA-NIC 12, and the smart NIC 11 and the RDMA-NIC 12 are connected by a Component Interconnect (CI) 13.

[0084] The smart NIC 11 includes an FPGA and a physical memory. The FPGA has a TCP service function, and receives data output from the cameras 1 to 80. The data is stored in a memory area secured by the control unit 120 in the physical memory.

[0085] The RDMA-NIC 12 is hardware that performs the RDMA communication as described above. Figure 14 shows a memory area of ​​a virtual memory that is a mapping of a physical memory.

[0086] The control unit 120 designates a virtual memory address corresponding to the memory area, thereby reserving a memory area to be accessed by the RDMA-NIC 12 in the information communication device 100. Since the virtual memory is a mapping of the physical memory, the memory area reserved by the control unit 120 is both a memory area in the virtual memory and a memory area in the physical memory.

[0087] The information communication device 200 includes a control unit 220, an XPU card 21, a CPU card 22, a central memory card 23, and an RDAM-NIC 24, and the XPU card 21, the CPU card 22, the central memory card 23, and the RDAM-NIC 24 are connected by a CI 25.

[0088] The XPU card 21 includes an XPU that performs image analysis, for example, and a physical memory. The CPU card 22 includes a CPU that performs processing to utilize the analysis results, and a physical memory. The central memory card 23 includes a physical memory.

[0089] The central memory card 23 may be a high-speed storage on a motherboard in a PC architecture, or an independent storage such as an NVME array. By DMA-transferring data from the RDMA-NIC 24 to the physical memory on the central memory card 23 (motherboard) without the intervention of the CPU, the physical memory can be used without increasing the CPU load. In addition, multiple central memory cards may be configured in a RAID configuration to improve performance and HA.

[0090] In addition, when using an NVME Array as the central memory card 23, it may be connected to the computing system functional unit at high speed via an interconnect.

[0091] The RDMA-NIC 24 is hardware that performs the RDMA communication as described above. Fig. 14 shows a memory area of ​​a virtual memory that is a mapping of a physical memory. As described above, the control unit 220 designates a virtual memory address corresponding to a memory area, thereby securing a memory area to be accessed by the RDMA-NIC 12 in the information communication device 200. Since the virtual memory is a mapping of the physical memory, the memory area secured by the control unit 220 is both a memory area in the virtual memory and a memory area in the physical memory.

[0092] The control unit 120 in the information communication device 100 on the LA side increases or decreases the memory area to be accessed by the RDMA-NIC 12 and the connection bandwidth between the LA and RE according to the increase or decrease in the number of cameras, for example, when the number of cameras connected to the information communication device 100 increases, the control unit 120 also increases or decreases the memory area to be accessed by the RDMA-NIC 12 and the connection bandwidth between the LA and RE by the same ratio, and conversely, when the number of cameras decreases, the control unit 120 decreases the memory area to be accessed by the RDMA-NIC 12 and the connection bandwidth between the LA and RE according to the increase or decrease in the number of cameras. The amount of memory area and the information on the connection bandwidth determined by the control unit 120 are also notified to the control unit 220 in the information communication device 200 on the RE side, and the control unit 220 increases or decreases the memory area to be accessed by the RDMA-NIC 24 and the connection bandwidth between the LA and RE in the information communication device 200 on the RE side based on the notified information.

[0093] In addition, the control unit 120 in the information communication device 100 on the LA side and the control unit 220 in the information communication device 200 on the RE side may increase or decrease the memory area and connection bandwidth in response to fluctuations in the generation rate of the transfer data, i.e., an increase or decrease in the number of cameras (data "sources") that are terminals for acquiring image data.

[0094] The relationship between each terminal (camera) and memory area only needs to be one-to-one, and the designated memory area does not need to be fixed. Details will be described later, but the designated memory area may be allocated definitively, or it may be dynamically allocated from free memory area. The allocated area can also be increased each time as needed.

[0095] For this reason, the state of each memory area is managed in three states: waiting for transfer to RE or being transferred, being written, and available for new writing. When the area available for new writing decreases in the LA, this area is increased and a request is made to the RE to increase the memory area.

[0096] Specifically, in the example of Figure 14, a memory area in a state where it holds data being transferred between the LA and the RE, a memory area in a state where it holds data being received at the LA, and a memory area in a state where it holds data being processed at the RE are shown.

[0097] The above memory allocation control and memory state management are performed by the control unit 120. However, this is just an example, and may be performed by means other than the control unit 120 (e.g., smart NIC 11, RDMA-NIC 12, an external device, etc.). An operation example of the communication system shown in FIG. 14 will be described below.

[0098] As shown in Fig. 14, 80 cameras are connected to the LA. Each camera encodes each frame at a maximum of 500 kB. The frame rate is 15 FPS. Information that 80 cameras are connected, each camera encodes each frame at a maximum of 500 kB, and outputs image data at 15 FPS is notified to the control unit 120 on the LA side from the cameras themselves or the operation system. Note that the control unit 120 may estimate this information from the received data.

[0099] Based on the notified information, the control unit 120 reserves two memory areas, each of which is 500 kB x 80 units, as the memory area to be accessed by the RDMA-NIC 12 (i.e., the memory area of ​​the physical memory of the smart NIC 11), and divides the reserved memory area into areas of 500 kB each. Note that 500 kB x 80 units is the update size.

[0100] In the diagram of the memory area on the LA side in Figure 14, the area "000" indicates 20 areas from address 0 to address 19, each of which is 500kB in size. The other areas are similar. In other words, 80 500kB areas are secured in each memory area, the number of cameras.

[0101] To prevent conflicts between read and write, two areas are assigned to each camera. For example, camera 1 is assigned areas 0 and 80, and camera 2 is assigned areas 1 and 81.

[0102] Furthermore, since the frame rate of the image from each camera is 15 FPS, the total rate of the 80 cameras (= data transfer rate from the LA to the RE) is 0.5 MB x 8 x 15 x 80 = 60 Mbps x 80 = 4.8 Gbps. Therefore, the control units 120 and 220 allocate a bandwidth of 60 Mbps x 80 cameras + β to the RDMA-NIC pair between the LA and the RE. β (beta) indicates that the bandwidth is allocated with a margin, and it is sufficient to allocate an amount that includes header overhead due to the encapsulating protocol and other control messages, for example, about 10%.

[0103] Also, the central memory (physical memory of central memory card 23) in the information communication device 200 of the RE is to hold data for five frames of images. Therefore, the control unit 210 reserves five memory areas (update size) of size 500kB x 80 units, and divides the reserved memory area into areas of 500kB each. In the diagram of the memory area on the RE side in Fig. 14, the area "000" indicates 20 areas from address 0 to address 19, and the size of each area is 500kB. The same applies to the other areas.

[0104] Regarding the allocation of regions to each camera, for example, camera 1 is assigned regions 0, 80, 160, 240, and 320, and camera 2 is assigned regions 1, 81, 161, 241, and 321.

[0105] When copying memory from LA to RE, the copy destination area is rotated. For example, such rotation may be realized by the control unit 120 on the transmitting side specifying the copy destination area when stacking a transmission request in a transmission queue, or the RDMA-NIC 12 itself may control the rotation. Also, the control unit 220 on the RE side may specify the copy destination area when stacking a reception request specifying a memory area in a reception queue by an RDMA READ operation, or the RDMA-NIC 24 itself may control the rotation.

[0106] The TCP service in smart NIC 11 alternately writes image data received from each camera to the area of ​​that camera. For example, image data of frame 1 received from camera 1 is written to the area at address 0, and image data of frame 2 received from camera 1 is written to the area at address 80. While the image data of frame 2 is being written to the area at address 80, the image data in the area at address 0 is read by RDMA-NIC 12 and transferred to the RE side. Therefore, image data of frame 3 received from camera 1 is written to the area at address 0. This process is executed for each camera.

[0107] The data transferred from the RDMA-NIC 12 to the RE side is stored in an area of ​​the central memory corresponding to the camera that sent the data, by the RDMA-NIC 24 on the RE side. In the example of Fig. 14, the area from "080" to "140" is shown to be data being transferred between LA and RE, that is, data being written.

[0108] In the information communication device 200 on the RE side, multiple programs according to purpose are run on the CPU card and the XPU card. Each program accesses the data on the central memory card by DMA or copies and transfers it. In the example of Fig. 14, the data "000" that is already stored before the data being transferred is stored in the physical memory of the XPU by DMA transfer, and the XPU executes the processing.

[0109] In addition, the virtual memory address and the physical memory address in the RDMA-NIC 24 of the RE only need to be associated with each other in a one-to-one relationship, and the designated memory area does not need to be fixed. In order to save time-series data, the physical memory address designated as the virtual memory address may be changed over time.

[0110] For example, as the time passes from 1 to 1, 2 to 3, 4, ..., the physical memory address corresponding to virtual memory address=1 is changed to 81, 82, 83, 84, .... This allows the time series data that is sequentially transmitted specifying virtual memory address=1 to be stored in the physical memory in chronological order, improving processing efficiency. This control may be performed by the RDMA-NIC 24 or the control unit 220.

[0111] Furthermore, in the RE, when there are multiple physical devices (such as a card having an XPU and physical memory) to which data is transferred from the RDMA-NIC 24, the relationship between the virtual memory address and the physical memory device may be adjusted so that the load on the physical devices is even. For example, when the load increases, the corresponding device may be changed to another physical device. This control may be performed by the RDMA-NIC 24 or the control unit 220.

[0112] In addition, in the RE, when a certain physical device stops functioning, the physical device may be changed to another physical device to improve the reliability of the physical device. This control may be performed by the RDMA-NIC 24 or the control unit 220.

[0113] In addition, in the RE, N copies may be performed to increase the reliability of data. That is, a plurality of physical memory addresses may be mapped to one virtual memory address, and the value received by the RDMA-NIC 24 for the virtual memory address may be written to the plurality of physical addresses. In this case, instead of writing the same value to the plurality of physical addresses, the results of an operation such as RSE (Reed Solomon Erasure) may be written. In addition, in the conversion process for increasing the reliability of data, a function that can ensure security by secret sharing may be used.

[0114] In addition, N copies may be made using optical multicast to improve data reliability. That is, high reliability may be achieved by simultaneously copying data from one LA to multiple REs using optical multicast.

[0115] <Advantages of the First Embodiment> The technology according to the first embodiment makes it possible to reduce the CPU operation of the information communication device in the local aggregation node (LA), and also to realize high-speed, low-latency transfer of large amounts of data between the local aggregation node (LA) and a server side (RE) on a network located in a remote location.

[0116] In addition, since the CPU is not involved in the transfer of data collected from the terminal, a large number of terminals can be accommodated with fewer devices.In addition, since there is no flow control like TCP, the time required for data transfer is short, so it is possible to realize, for example, AI applications that require instantaneous analysis and reaction.

[0117] Second embodiment Next, a second embodiment will be described.

[0118] In the conventional technology, systems that provide services that collect and analyze information from a large number of sensors are designed and constructed for a specific, limited purpose. Therefore, when it is desired to provide a service for a certain purpose, it is necessary to construct infrastructure such as cameras according to the purpose and to construct a system that analyzes sensor data such as acquired video separately for that service. In addition, there is a problem that the load on the CPU increases when the amount of data to be transferred becomes huge due to the TCP / IP service of the OS layer in the communication device installed in the aggregation node that collects data from a large number of sensors and cameras and transfers it to other nodes and runs on the CPU together with a data reception program.

[0119] For example, when trying to provide a new service by an application server in response to social trends, it was necessary to build a data collection and analysis system from scratch. In other words, in the conventional technology, there was a problem that it was difficult to provide a variety of optional services using data collected from multiple terminals. Hereinafter, a second embodiment that solves these problems will be described.

[0120] <System configuration example> Fig. 15 shows an example of the configuration of a data processing system in the second embodiment. The second embodiment is based on the technology of the first embodiment, and Fig. 15 corresponds to a more detailed description of the configuration from the regional edge node (RE) to the application node (AP) in the system configuration shown in Fig. 8. Note that in the second embodiment, since an AI application is assumed as the application that runs on the application node, an AI application node is described as a specific example of the application node.

[0121] As shown in Fig. 15, there are multiple regional edge nodes (RE), message broker nodes (MB), data hub nodes (DH), and AI application nodes (AP). The regional edge nodes (RE) and data hub nodes (DH), and the data hub nodes (DH) and AI application nodes (AP) are connected by, for example, an optical network. Note that the message broker nodes (MB) and data hub nodes (DH) may be collectively configured as one node (one device).

[0122] In addition, the second embodiment is an example in which the memory allocation is fixed in advance according to the characteristics of the use case, thereby minimizing CPU intervention and executing the LA<->RE transfer & AI service with low load. Here, an example will be described in which RDMA is used for communication between the regional edge node (RE) and the data hub node (DH), and between the data hub node (DH) and the AI ​​application node (AP). Although it is not essential to use RDMA, the use of RDMA in combination enables low latency communication between the regional edge node (RE) and the AI ​​application node (AP), reduces the load on each node, improves the node aggregation effect, and reduces power consumption of the entire system. Similar effects can be expected even when a communication method other than RDMA is used.

[0123] Any communication method may be used for communication between the regional edge node (RE) and the message broker node (MB), and between the message broker node (MB) and the AI ​​application node (AP). For example, RDMA or general IP communication (Internet, etc.) may be used.

[0124] In the example shown in FIG. 15, regional edge nodes (RE) are installed in Tokyo, Osaka, Nagoya, Fukuoka, and Yokohama.

[0125] Message broker nodes (MB) and data hub nodes (DH) are distributed and placed for each topic. Note that a "topic" can also be called an "event." In the example of Figure 15, MB1 and DH1 correspond to "topic = crime prevention and safety management," MB2 and DH2 correspond to "topic = people counting," and MB3 and DH3 correspond to "topic = customer behavior analysis."

[0126] AI application nodes (APs) are scattered according to the application provider's needs. In the example in Figure 15, multiple AI application nodes (APs) are deployed that perform tasks such as "suspicious person detection," "accident occurrence rate prediction," "congestion alleviation," "demand forecasting and inventory optimization," "micro traffic operation optimization," "shelf allocation optimization," and "campaign proposals."

[0127] The services provided by each AI application node (AP) are not fixed. In the second embodiment, since it is possible to easily obtain desired data required for providing a service, it is possible to easily provide any service.

[0128] A plurality of terminals are connected to the local aggregation node (LA) via a LAN, as in the first embodiment. The terminals are, for example, cameras (smart cameras).

[0129] A smart camera is an example of a device that collects so-called sensor information, and is equipped with an image sensor and a DSP, and has the function of encoding and compressing camera images and transmitting them to a LAN. Note that the terminals under the local aggregation node (LA) can be any type of sensor device that collects sensor information.

[0130] <Equipment configuration example> An example of the functional configuration of the device arranged in each node will be described below. The configuration of the information communication device 100 arranged in the LA is the same as the configuration of the information communication device 100 shown in Fig. 12 (and Fig. 13) of the first embodiment.

[0131] Fig. 16 shows a configuration example of an edge node device 400 provided in a regional edge node (RE). The functions of the edge node device 400 are basically the same as those of the information communication device 200 on the RE side shown in Fig. 12 (Fig. 13) in the first embodiment, but since the edge node device 400 generates and transmits event information and transmits data to a data hub node in the second embodiment, the configuration shown in Fig. 16 includes functions related to these. The edge node device 400 may also be called an event information generating device.

[0132] 16, the edge node device 400 includes a data transmitter / receiver 410, a control unit 440, an RDMA communication unit 430, and an event information generation unit 420. The data transmitter / receiver 410, the control unit 440, and the event information generation unit 420 are functional units realized by a CPU, an XPU, a physical memory, a user program (application), etc. The RDMA communication unit 430 corresponds to an RDMA-NIC.

[0133] The data transmitter / receiver unit 410 receives the data transmitted from the LA side via the RDMA communication unit 430 and stores the data in the physical memory. In addition, the data transmitter / receiver unit 410 uses the RDMA communication unit 430 to transmit data to a data hub node device corresponding to the event information.

[0134] When transmitting data to a data hub node device, the data is transmitted to the data hub node device corresponding to the event information (topic) corresponding to the data to be transmitted. In addition, the address of the memory area in the data hub node device where the data is stored is specified as the address of the memory area corresponding to the region to which the edge node device 400 that transmitted the data belongs.

[0135] The event information generator 420 performs data analysis using an XPU or the like on the data received from the LA side, generates event information based on the analysis results, and transmits the event information to the message broker device corresponding to the event information. The event information includes information indicating the topic, information on the analysis results, information (address, etc.) for identifying the storage destination of the event information (the data hub node device and its memory area of ​​the storage destination), etc.

[0136] That is, the event information generating unit 420 includes a generating means for receiving data collected from a plurality of terminals, generating event information from the data, and transmitting the generated event information to the broker device.

[0137] In addition, the data transmitter / receiver unit 410 and the RDMA communication unit 430 include a transmitting means for transmitting data corresponding to the event information to a data hub node device corresponding to the event information generated by the generating means, among a plurality of data hub node devices which differ for each event information.

[0138] The control unit 440 grasps the data size and update rate based on information received from the control unit 120 or operation system 250 on the LA side, and reserves memory areas to be used by the RDMA communication unit 430 and network bandwidth based on the data size and update rate. The control unit 440 also calculates the time to hold data in the RE based on the data processing time, etc., and reserves the number of memory areas according to the data holding time.

[0139] 17 shows a functional configuration example of a message broker device 500 provided in a message broker node (MB). The message broker device 500 may be called a broker device. The message broker device 500 in the second embodiment is assumed to have a broker function in a Publisher / Subscriber model.

[0140] 17, the message broker device 500 includes a message receiving unit 510, a message storage unit 520, and a message delivery unit 530. The message receiving unit 510 receives a message about a certain topic (specifically, event information) from a distributor (RE) and stores the received message in the message storage unit 520. The message delivery unit 530 transmits a message about a certain topic to a subscriber (here, an AI application node) that subscribes to the topic.

[0141] Fig. 18 shows an example of a functional configuration of a data hub node device 600 provided in a data hub node (DH). As shown in Fig. 18, the data hub node device 600 has a data transmitter / receiver unit 610, a control unit 630, and an RDMA communication unit 620. The data transmitter / receiver unit 610 and the control unit 630 are functional units realized by a CPU, physical memory, a user program (application), etc. The RDMA communication unit 620 corresponds to an RDMA-NIC.

[0142] The data transmitter / receiver unit 610 receives data from the edge node device 400 via the RDMA communication unit 620 and stores the data in physical memory. The data transmitter / receiver unit 610 also issues a transmission command to the RDMA communication unit 620 to transmit data to the AI ​​application node device 700, and transmits the data by RDMA. The control unit 630 secures a memory area to be used by the RDMA communication unit 620, secures network bandwidth, and so on.

[0143] Fig. 19 shows an example of the functional configuration of an AI application node device 700 provided in an AI application node (AP). As shown in Fig. 19, the AI ​​application node device 700 has an event information processing unit 710, a data processing unit 720, an RDMA communication unit 730, and a control unit 740. The event information processing unit 710, the data processing unit 720, and the control unit 740 are functional units realized by an XPU, a CPU, a physical memory, a user program (application), and the like. The RDMA communication unit 730 corresponds to an RDMA-NIC. The AI ​​application node device 700 may also be called a data processing device.

[0144] The event information processing unit 710 acquires event information from the message broker device 500 and processes the event information. That is, the event information processing unit 710 includes an acquisition unit that acquires event information corresponding to a specific service from the message broker device.

[0145] The data processing unit 720 receives data from the data hub node device 600 via the RDMA communication unit 730, stores the data in physical memory, and executes processing by the XPU, etc. The control unit 740 secures memory areas to be used by the RDMA communication unit 730, secures network bandwidth, etc.

[0146] That is, the data processing unit 720 and the RDMA communication unit 730 include processing means for acquiring data corresponding to the event information acquired by the acquisition means from a data hub node device that stores the data, and for executing processing using the data.

[0147] Furthermore, the AI ​​application node device 700 may be provided with a pool of processors that constitute the data processing unit 720, and the pool or a portion of the pool may be allocated to a user.

[0148] For example, the AI ​​application node device 700 is provided with a plurality of XPUs, which are treated as an XPU pool. For example, the XPU pool is divided into a plurality of pools, and the divided pools are assigned to each user.

[0149] In addition, multiple XPU pools each having multiple XPUs may be provided. For example, if there is XPU pool 1, XPU pool 2, and XPU pool 3, XPU pool 1 can be assigned to user A, XPU pool 2 to user B, and XPU pool 3 to user C.

[0150] For a user to whom an XPU pool has been assigned, for example, data to be processed is transmitted from a data collection system (or data hub node device 600 in this embodiment) prepared by the user himself to the AI ​​application node device 700. In the AI ​​application node device 700, the data of the user is transferred to the XPU pool assigned to the user, and calculation processing is performed on the data of the user. In this way, by assigning an XPU pool to a user, calculation processing logic can be provided as a service.

[0151] <Processing sequence example> An example of the flow of processing in the data processing system according to the second embodiment will be described with reference to the sequence diagram of Fig. 20. Here, as an example, the description will be given assuming that the data to be analyzed is image data (video data) sent from a camera.

[0152] A platform that provides data to an AI application node device 700 (data processing device) is configured with an edge node device 400 (event information generating device) and a data hub node device 600. A platform that includes the edge node device 400 and the data hub node device 600 may be called a data providing system. A device that obtains data from the data providing system and performs data processing is not limited to the AI ​​application node device 700. For example, an application server prepared by a user may obtain data from the data providing system and perform data processing.

[0153] In S101, the event information generator 420 of the edge node device 400 detects an event from object detection information obtained by analyzing image data received from the LA, and generates event information related to the event. In S102, the event information generator 420 transmits the generated event information to the message broker device 500 of the topic related to the event information.

[0154] For example, when the event information generating unit 420 obtains a newly recognized human image as the object detection information, it generates event information having a topic of "people counting." Also, for example, when the event information generating unit 420 obtains a human image detected in a specific area to be monitored as the object detection information, it generates event information having a topic of "crime prevention." Also, for example, when the event information generating unit 420 obtains a human image detected in a store or shop area as the object detection information, it generates event information having a topic of "customer behavior analysis."

[0155] The event information may include information obtained by analysis in addition to the topic. For example, the event information having the topic "people count" may include the result of counting the number of people.

[0156] The data transmitter / receiver 410 transfers the object image data attached to the event information to the data hub node device 600 corresponding to the event information via the RDMA communication unit 430 (S103). In this case, the event information generator 420 includes the virtual memory address of the destination data hub node device 600 in the event information transmitted in S102.

[0157] In S104, the event information processing unit 710 of the AI ​​application node device 700 acquires event information from the event broker device 500. This event information is, for example, event information corresponding to a specific service provided by the AI ​​application node device 700.

[0158] If the event information is event information that should be processed, the event information processing unit 710 determines to process the event and requests processing from the data processing unit 720. For example, the event information processing unit 710 compares the previous event information with the current event information, and determines to process the event if there is a change in the information.

[0159] When processing an event, if image data is required along with the event information, the data processing unit 720 uses the address information included in the event information to obtain the image data corresponding to the event information from the data hub node device 600 and executes the processing (S105, S106).

[0160] A more specific configuration example will be described below.

[0161] <Example of connection configuration between local aggregation node (LA) and regional edge node (RE)> A connection configuration example between the local aggregation node (LA) and the regional edge node (RE) is the same as the connection configuration example in the first embodiment, as shown in Fig. 14. The operation is also basically the same as that explained in the first embodiment.

[0162] That is, the information communication device 100 in the LA has a function of a so-called proxy server, and enables RDMA communication on the network even if a smart camera or the like does not support RDMA.

[0163] As described above, the information communication device 100 in the LA is equipped with the smart NIC 11 that terminates the TCP service and writes it into the physical memory, and the RDMA-NIC 12 that supports RDMA and transfers data to the optical packet transponder 14. Image data sent from the smart camera is TCP-terminated in the information communication device 100, transferred to the virtual memory in the RDMA-NIC 12 via the physical memory in the smart NIC 11, and sent to the network side as an optical packet.

[0164] An edge node device 400 (corresponding to the information communication device 200 in the first embodiment) in the RE receives data from the LA, and performs various data processing to generate event information and so on.

[0165] <Example of connection configuration between Regional Edge Node (RE) and AI application node> Specific examples of the edge node device 400, message broker device 500, data hub node device 600, and AI application node device 700 will be described with reference to Fig. 21. Each device shown in Fig. 21 shows a configuration similar to the implementation of a memory card or the like in order to show the status of data stored in the memory area.

[0166] The edge node device 400 in the RE includes an RDMA-NIC 44 that receives data from the LA, a central memory card 43, a CPU card 42, and an XPU card 41 (such as a GPU card) for various data processing.

[0167] When the edge node device 400 receives data from the LA, it writes the data to the physical memory of the central memory card 43 via the RDMA-NIC 44. The data is stored in the physical memory of, for example, the XPU card 41 by DMA transfer. In this case, assuming that the target data is image data captured by a camera, the XPU (for example, a GPU) assembles the image data in the physical memory into an image and performs image analysis.

[0168] Here, analysis is performed to determine the number of people appearing in the image, customer behavior analysis, and whether there are any people behaving strangely for crime prevention purposes. Existing technology can be used for the analysis method.

[0169] The GPU also analyzes the data and generates event information corresponding to the analyzed image. The event information includes the address information of the memory stored in the data hub node device 600 to which the corresponding image data is to be sent.

[0170] The event information may be generated by a CPU. Fig. 21 shows an example in which the event information is generated by a CPU.

[0171] The event information generator 420 (corresponding to the above-mentioned GPU, CPU, and program) in the edge node device 400 of the RE transmits event information generated by image analysis to the message broker device 500 corresponding to the event information. The event information does not have to be transmitted by RDMA, and may be transmitted by a method such as TCP / IP. In addition, the image data is transmitted by the RDMA-NIC 44 to the data hub node device 600 corresponding to the event information.

[0172] Regarding the determination of the destination data hub node device 600 corresponding to the event information, for example, a table is prepared in the edge node device 400 that stores optical path addresses corresponding to the event information, and the data transmitter / receiver 410 determines the destination data hub node device 600 by referring to the table.

[0173] The data hub node device 600 includes a central memory card 61 and an RDMA-NIC 62. The RDMA-NIC 62 of the data hub node device 600 receives image data for each specific event from multiple REs and stores the data in a memory area corresponding to the RE (region). In the data hub node device 600, the RDMA-NIC 62 also reads data from the physical memory and transmits the data to the AI ​​application node device 700.

[0174] The message broker device 500 receives event information from the edge node device 400 of the RE, and transmits the event information to the AI ​​application node device 700 corresponding to the event information.

[0175] The AI ​​application node device 700 is a device that obtains information on, for example, congestion status and number of people from various image data and provides services such as predicting congestion in a restaurant and managing taxi dispatches. As shown in Fig. 21, the configuration of the AI ​​application node device 700 is similar to the configuration of the edge node device 400, and includes an XPU card 71, a CPU card 72, a central memory card 73, and an RDMA-NIC 74.

[0176] 21 shows one XPU card, but this is just an example. By providing multiple XPU cards, one or multiple XPU pools as described above may be configured.

[0177] The AI ​​application node device 700 stores in advance which event information to acquire, and based on the stored information, queries the address of the message broker device 500 corresponding to the relevant event information as to whether or not new event information is available.

[0178] For example, if the AI ​​application node device 700 remembers to acquire event information on the number of people and customer trend analysis, the AI ​​application node device 700 queries the message broker device 500A related to the number of people and the message broker device 500B related to the customer trend analysis for an update of the image data (i.e., an update of the event information).

[0179] In response to an inquiry from the AI ​​application node device 700, if there is updated event information, the message broker device 500 transmits the event information it holds to the AI ​​application node device 700 that originated the inquiry.

[0180] The AI ​​application node device 700, for example, compares the currently acquired event information with previously received event information, and if there is a difference, executes event processing. At this time, it acquires image data corresponding to the difference from the data hub node device 600 in which the image data is stored.

[0181] The event information includes address information of the memory where the image data is stored, so that the AI ​​application node device 700 can access the specific area of ​​the memory of the data hub node device 600 where the image data is stored based on the address information.

[0182] In the AI ​​application node device 700, the RDMA-NIC 74 writes the image data received from the data hub node device 600 to the physical memory of the central memory card 73. The image data is sent to, for example, the XPU card 71 for image analysis processing. In addition, for example, the CPU performs processing to utilize the analysis results.

[0183] <Effects of the second embodiment> According to the technology of the second embodiment, an AI application node device can obtain only the information necessary depending on the service it wishes to provide, making it possible to easily provide a wide variety of optional services.

[0184] In addition, when RDMA is used to send and receive data, the CPU load is reduced, enabling data transfer to be performed quickly and with low latency.

[0185] (Hardware configuration example) The information communication devices 100, 200, edge node device 400, message broker device 500, data hub node device 600, and AI application node device 700 described in the first and second embodiments can all be realized by, for example, having a computer execute a program. This computer may be a physical computer or a virtual machine on the cloud. The information communication devices 100, 200, edge node device 400, message broker device 500, data hub node device 600, and AI application node device 700 are collectively referred to as "devices."

[0186] That is, the device can be realized by executing a program corresponding to the processing performed by the device, using hardware resources such as a CPU, XPU, RDMA-NIC, and memory mounted on a computer. The program can be recorded on a computer-readable recording medium (such as a portable memory) and stored or distributed. The program can also be provided via a network such as the Internet or email.

[0187] Fig. 22 is a diagram showing an example of the hardware configuration of the computer. The computer in Fig. 22 has a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU (or XPU) 1004, an interface device 1005 (e.g., RDMA-NIC), a display device 1006, an input device 1007, an output device 1008, and the like, all of which are connected to each other via a bus B. Note that some of these devices may not be provided. For example, if no display is performed, the display device 1006 may not be provided.

[0188] The program for realizing the processing on the computer is provided by a recording medium 1001 such as a CD-ROM or a memory card. When the recording medium 1001 storing the program is set in the drive device 1000, the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000. However, the program does not necessarily have to be installed from the recording medium 1001, but may be downloaded from another computer via a network. The auxiliary storage device 1002 stores the installed program as well as necessary files, data, etc.

[0189] The memory device 1003 reads out and stores the program from the auxiliary storage device 1002 when an instruction to start the program is received. The CPU (XPU) 1004 realizes the functions related to the device in accordance with the program stored in the memory device 1003. The interface device 1005 is used as an interface for connecting to a network. The display device 1006 displays a GUI (Graphical User Interface) or the like according to a program. The input device 1007 is composed of a keyboard and mouse, buttons, a touch panel, or the like, and is used to input various operational instructions. The output device 1008 outputs the results of calculations.

[0190] (Summary of the embodiment) This specification describes at least the devices, methods, programs, etc. described in the following sections in accordance with the first and second embodiments.

[0191] <Items corresponding to the first embodiment> (Section 1) An information communication device that aggregates data transmitted from a plurality of terminals and transmits the data to a receiving side, A determination means operating in a first layer for determining an update size of a memory area used to hold the data based on information about the data transmitted from the plurality of terminals; a setting means for setting a bandwidth of a second layer network path required for communication with the receiving side based on the update size and the data update rate; An information and communication device comprising: (Section 2) The determining means determines the update size based on the number of the plurality of terminals and the amount of data transmitted from each terminal at the update rate. 2. An information communication device according to claim 1. (Section 3) The determining means reserves a memory area at least twice as large as the update size as the memory area. 3. An information communication device according to claim 1 or 2. (Section 4) RDMA communication means for performing communication in the network path by RDMA 4. The information communication device according to any one of claims 1 to 3, further comprising: (Section 5) The RDMA communication means transmits data based on an RDMA READ operation executed by the receiving node device. 5. An information communication device according to claim 4. (Section 6) In the node device on the receiving side, a plurality of memory areas of the update size are secured according to a retention time of the data received from the information communication device, and the RDMA communication means rotates the memory area in the node device on the receiving side where the data is stored. 6. An information communication device according to claim 4 or 5. (Section 7) An information communication method executed in an information communication device that aggregates data transmitted from a plurality of terminals and transmits the data to a receiving side, comprising: A step by a determination means operating in a first layer determining an updated size of a memory area used to hold the data based on information about the data transmitted from the plurality of terminals; setting a bandwidth of a second layer network path required for communication with the receiving side based on the update size and the data update rate; An information communication method comprising: (Section 8) A program for causing a computer to function as each of the means in the information communication device according to any one of claims 1 to 6.

[0192] <Items corresponding to the second embodiment> (Section 1) an event information generating device comprising: a generating means for receiving data collected from a plurality of terminals, generating event information from the data, and transmitting the generated event information to a broker device; and a transmitting means for transmitting data corresponding to the event information to a data hub node device corresponding to the event information generated by the generating means among a plurality of data hub node devices different for each event information; a data processing device comprising: an acquisition means for acquiring event information corresponding to a specific service from said broker device; and a processing means for acquiring data corresponding to the event information from a data hub node device storing the data based on the event information acquired by said acquisition means, and executing a process using the data; A data processing system comprising: (Section 2) The event information includes address information of a memory for storing data corresponding to the event information. 2. The data processing system of claim 1. (Section 3) The generating means generates the event information by performing image analysis on the collected data. 3. A data processing system according to claim 1 or 2. (Section 4) The event information generating device transmits data to the data hub node device using RDMA, and the data processing device receives data from the data hub node device using RDMA. A data processing system according to any one of claims 1 to 3. (Section 5) an event information generating device comprising: a generating means for receiving data collected from a plurality of terminals, generating event information from the data, and transmitting the generated event information to a broker device; and a transmitting means for transmitting data corresponding to the event information to a data hub node device corresponding to the event information generated by the generating means among a plurality of data hub node devices different for each event information; a data hub node device including: a receiving means for receiving the data corresponding to the event information generated by the generating means; and a transmitting means for transmitting the data to a data processing device that has acquired the event information; A data providing system comprising: (Section 6) A generating means for receiving data collected from a plurality of terminals, generating event information from the data, and transmitting the generated event information to a broker device; a transmitting means for transmitting data corresponding to the event information to a data hub node device corresponding to the event information generated by said generating means, among a plurality of data hub node devices different for each event information; An event information generating device comprising: (Section 7) An acquisition means for acquiring event information corresponding to a specific service from a broker device; a processing means for acquiring data corresponding to the event information from a data hub node device storing the data based on the event information acquired by the acquiring means, and for executing a process using the data; A data processing device comprising: (Section 8) In the data processing device, a pool of processors constituting the processing means is provided, and the pool or a part of the pool is assigned to a user. 8. A data processing device according to claim 7. (Section 9) A data processing method executed in a data processing system having an event information generating device and a data processing device, comprising: a generation step in which the event information generation device receives data collected from a plurality of terminals, generates event information from the data, and transmits the generated event information to a broker device; a transmitting step of the event information generating device transmitting data corresponding to the event information to a data hub node device corresponding to the event information generated in the generating step, among a plurality of data hub node devices different for each event information; an acquisition step in which the data processing device acquires event information corresponding to a specific service from the broker device; a processing step of said data processing device acquiring data corresponding to the event information from a data hub node device storing the data based on the event information acquired in said acquiring step, and executing a process using the data; A data processing method comprising: (Section 10) A program for causing a computer to function as each of the means in the event information generating device according to claim 6. (Section 11) A program for causing a computer to function as each of the means in the data processing device according to claim 7 or 8.

[0193] Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and variations are possible within the scope of the gist of the present invention described in the claims. [Explanation of symbols]

[0194] LA Local Aggregation Node RE Regional Edge Node AP App Node MB Message Broker Node DB Data Hub Node 100 Information and communication devices 110 Data transmission unit 120 Control section 130 RDMA communication unit 200 Information and communication devices 210 Data receiving unit 220 Control section 230 RDMA communication unit 250 Operating System 300 Optical Network 400 Edge node device 410 Data transmission and reception unit 420 Event Information Generation Unit 430 RDMA communication unit 440 Control Unit 500 Message broker device 510 Message Receiving Unit 520 Message storage section 530 Message Delivery Department 600 Data Hub Node Equipment 610 Data transmission and reception unit 620 RDMA communication unit 630 Control Unit 700 AI application node device 710 Event Information Processing Unit 720 Data Processing Unit 730 RDMA communication unit 740 Control Unit 1000 Drive Device 1001 Recording media 1002 Auxiliary storage 1003 Memory device 1004 CPU 1005 Interface device 1006 Display device 1007 Input Device 1008 Output device

Claims

1. An information communication device that aggregates data transmitted from a plurality of terminals and transmits the data to a receiving side, A determination means operating in a first layer for determining an updated size of a memory area used to hold the data based on information about the data transmitted from the plurality of terminals; a setting means for setting a bandwidth of a second layer network path required for communication with the receiving side based on the update size and the data update rate; Equipped with The determining means creates a necessary number of memory areas according to the data transmitted from the plurality of terminals. Information and communications equipment.

2. The determining means divides the necessary number of memory areas into a plurality of memory areas and operates them in parallel in order to realize a transfer speed set with the receiving side. The information communication device according to claim 1 .

3. The determining means determines the update size based on the number of the plurality of terminals and the amount of data transmitted from each terminal at the update rate.

3. The information communication device according to claim 1 or 2.

4. The determining means reserves a memory area at least twice as large as the update size as the memory area.

4. An information communication device according to claim 1.

5. An information communication device that aggregates data transmitted from a plurality of terminals and transmits the data to a receiving side, A determination means operating in a first layer for determining an updated size of a memory area used to hold the data based on information about the data transmitted from the plurality of terminals; a setting means for setting a bandwidth of a second layer network path required for communication with the receiving side based on the update size and the data update rate; an RDMA communication means for performing communication in the network path by RDMA; An information and communication device comprising:

6. The RDMA communication means transmits data based on an RDMA READ operation executed by the receiving node device. The information communication device according to claim 5.

7. In the receiving node device, a plurality of memory areas of the update size are secured according to a retention time of the data received from the information communication device, and the RDMA communication means rotates the memory area in the receiving node device where the data is stored.

7. An information communication device according to claim 5 or 6.

8. An information communication method executed in an information communication device that aggregates data transmitted from a plurality of terminals and transmits the data to a receiving side, comprising: determining an updated size of a memory area used to hold the data based on information about the data transmitted from the plurality of terminals, the determining means operating in the first layer; setting a bandwidth of a second layer network path required for communication with the receiving side based on the update size and the data update rate; Equipped with The determining means creates a necessary number of memory areas according to the data transmitted from the plurality of terminals. Information and communication methods.

9. A program for causing a computer to function as each of the means in the information communication device according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Data buffer device and data server system

    JP1997218749A

  • Information processor, information processing method, and data transfer unit

    JP2009070012A

  • Bandwidth management device

    WO2015071960A1