A GPGPU-based MPI collective communication transmission system and method

By introducing GPGPU parallel processing capabilities into the MPI communication node and combining the resource management of the arbitration unit, the performance bottlenecks of MPI communication in collective communication scenarios and the problem of excessive CPU load is solved, and efficient data transmission and processing is achieved.

CN118838721BActive Publication Date: 2025-02-18YUANQIXIN (SHANDONG) SEMICONDUCTOR TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411320317.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-23
Publication Date
2025-02-18
Estimated Expiration
2044-09-23

AI Technical Summary

Technical Problem

The current MPI communication mechanism performs poorly in collective communication scenarios and occupies a large amount of CPU resources, affecting the CPU's ability to perform other computing tasks.

Method used

Adopting the MPI collective communication transmission system based on GPGPU, the coordinated work of the arbitration unit and the GPGPU can perform parallel decompression and calculation of data to reduce CPU load, and design a variety of data transmission optimization solutions such as binary multiplication, reduced binary multiplication and data multiplication. Transfer communication transmission mode.

Benefits of technology

It significantly improves the parallelism and efficiency of data processing, reduces the workload of CPU, and improves the efficiency of MPI collective communication data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118838721B_ABST
    Figure CN118838721B_ABST
Patent Text Reader

Abstract

The present invention discloses a GPGPU-based MPI collective communication transmission system and method, which belongs to the field of MPI communication transmission technology and is used to solve the technical problem that the current MPI communication mechanism has poor performance in collective communication scenarios, occupies a large amount of CPU resources, and affects the ability of the CPU to perform other computing tasks. The method includes: the MPI communication node includes at least one arbitration unit and several general graphics processing units GPGPU, which are used to parallel process the compressed data sent by the MPI communication network; the arbitration unit is respectively connected to the several general graphics processing units GPGPU; the arbitration unit is used to monitor the resource usage and computing resource margin of each GPGPU, and allocate GPGPU for the received compressed data; the general graphics processing unit GPGPU includes an MPI information processing module, which is used to parallel process the received compressed data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of MPI communication transmission technology, and in particular to a GPGPU-based MPI collective communication transmission system and method. Background Art

[0002] With the advent of the information age, the scale and diversity of data have shown exponential growth. In this context, the traditional centralized computing architecture has gradually shown its inadequacy in processing large-scale data sets due to its inherent limitation of centralized computing power. In order to meet this challenge, the distributed computing architecture came into being and quickly developed into a mainstream computing paradigm, becoming an effective means to meet the challenges of big data.

[0003] However, distributed computing architectures face significant challenges in achieving efficient data transmission. As a response strategy, the Message Passing Interface (MPI) protocol is designed to optimize the data exchange process in distributed computing environments. MPI provides a primary communication mechanism for data storage and interaction between distributed computing nodes through high-level abstractions built on top of existing network communication protocols.

[0004] Although MPI communication plays a key role in the field of distributed computing, it still has some limitations when dealing with large-scale data transmission. On the one hand, current MPI communication nodes mainly rely on the CPU to perform operations such as data compression, decompression, and migration. In small-scale data transmission scenarios, this dependence is acceptable, but when faced with large-scale data sets, a large amount of CPU resources are used for information processing, which significantly affects its ability to perform other computing tasks. On the other hand, the current MPI communication mechanism shows high efficiency when processing point-to-point communication, but its performance is not ideal in collective communication scenarios, which has become a performance bottleneck in the distributed computing framework. Summary of the invention

[0005] The embodiment of the present invention provides a GPGPU-based MPI collective communication transmission system and method, which is used to solve the following technical problems: the current MPI communication mechanism has unsatisfactory performance in collective communication scenarios, occupies a large amount of CPU resources, and affects the CPU's ability to perform other computing tasks.

[0006] The embodiment of the present invention adopts the following technical solutions:

[0007] On the one hand, an embodiment of the present invention provides an MPI collective communication transmission system based on GPGPU, the system comprising an MPI communication network and a plurality of MPI communication nodes, the MPI communication network being communicatively connected to the plurality of MPI communication nodes respectively;

[0008] The MPI communication node is used to perform parallel processing on the compressed data sent by the MPI communication network;

[0009] The MPI communication node includes at least one arbitration unit and a plurality of general purpose graphics processing units GPGPU;

[0010] The arbitration unit is communicatively connected with the plurality of general purpose graphics processing units GPGPU respectively;

[0011] The arbitration unit is used to monitor the resource usage and computing resource margin of each GPGPU and allocate a GPGPU for the received compressed data;

[0012] The general purpose graphics processing unit GPGPU includes an MPI information processing module for performing parallel processing on the received compressed data.

[0013] On the other hand, an embodiment of the present invention further provides a GPGPU-based MPI collective communication transmission method, which is applied to the GPGPU-based MPI collective communication transmission system, and the method includes:

[0014] The arbitration unit receives the compressed data sent by the MPI communication network, and determines a target GPGPU based on the data volume of the compressed data and the required computing resources;

[0015] The target GPGPU performs data parallel decompression and data parallel calculation on the compressed data to obtain a parallel calculation result;

[0016] The target GPGPU performs parallel compression on the parallel computing results to obtain MPI processing data and transmits the data back to the MPI communication network.

[0017] In a feasible implementation manner, the arbitration unit receives the compressed data sent by the MPI communication network, and determines the target GPGPU based on the data volume of the compressed data and the required computing resources, specifically including:

[0018] The arbitration unit identifies the data volume and required computing resources of the compressed data, and selects a first batch of GPGPUs whose unused resources are greater than or equal to the data volume; selects a second batch of GPGPUs whose computing resource margins are greater than or equal to the required computing resources from the first batch of GPGPUs, and uses the second batch of GPGPUs as the target GPGPUs;

[0019] If there is more than one target GPGPU, the arbitration unit determines the target GPGPU with the largest computing resource margin as the final target GPGPU.

[0020] In a feasible implementation manner, the target GPGPU performs data parallel decompression and data parallel calculation on the compressed data to obtain a parallel calculation result, specifically including:

[0021] The target GPGPU splits the compressed data according to the total number of threads included to obtain a plurality of compressed data packets, and distributes the plurality of compressed data packets to different threads for parallel decompression;

[0022] The target GPGPU aggregates the decompressed data of each thread to obtain decompressed MPI communication data, and extracts required auxiliary computing data according to the decompressed MPI communication data;

[0023] The target GPGPU splits the MPI communication data and the auxiliary computing data according to the total number of threads, and distributes them to different threads for parallel computing; and summarizes the computing results of each thread to obtain the parallel computing results.

[0024] In a feasible implementation manner, extracting the required auxiliary computing data according to the decompressed MPI communication data specifically includes:

[0025] The target GPGPU determines whether it is necessary to extract auxiliary computing data from other GPGPUs or CPUs of the current MPI communication node according to the decompressed MPI communication data;

[0026] If necessary, the built-in direct memory access engine DMA is used to read the auxiliary computing data from the memory unit of the corresponding CPU or GPGPU.

[0027] In a feasible implementation manner, the target GPGPU performs parallel compression on the parallel computing result to obtain MPI processing data and transmits the data back to the MPI communication network, specifically including:

[0028] The target GPGPU splits the parallel computing result according to the total number of threads included to obtain a plurality of computing result data packets; and distributes the plurality of computing result data packets to different threads for parallel compression;

[0029] The target GPGPU aggregates the compressed calculation result data of each thread to obtain the MPI processing data, and sends the data back to the arbitration unit;

[0030] The arbitration unit transmits the MPI processing data back to the MPI communication network.

[0031] In a feasible implementation manner, the method further includes:

[0032] The MPI communication node obtains a data transmission computing instruction in the MPI communication network; wherein the data transmission computing instruction at least includes: a many-to-many data transmission computing instruction, a many-to-one data transmission computing instruction, and a one-to-many data transmission computing instruction;

[0033] The MPI communication node obtains the corresponding data transmission optimization plan according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization plan; wherein the data transmission optimization plan at least includes: a binary multiplication communication transmission mode, a reduced binary multiplication communication transmission mode and a data multiplication transmission communication transmission mode.

[0034] In a feasible implementation manner, the MPI communication node obtains a corresponding data transmission optimization scheme according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization scheme, specifically including:

[0035] When multiple MPI communication nodes need to send data and write the data calculation results back to the multiple MPI communication nodes, the binary multiplication communication transmission mode is adopted:

[0036] The multiple MPI communication nodes obtain the many-to-many data transmission calculation instruction in the MPI communication network, extract the data to be sent from their own memory units, and input the data to be sent into their own GPGPUs for parallel processing, obtain first calculation result data and send it to the MPI communication network;

[0037] The multiple MPI communication nodes are matched in pairs to form a plurality of MPI communication node combinations; and the first calculation result data corresponding to the MPI communication node combination is obtained in the MPI communication network, and the data is merged; the merged data is input into the GPGPU of the own for parallel processing to obtain the second calculation result data;

[0038] The plurality of MPI communication node combinations continue to perform pairwise matching until all data are merged into a set of data to obtain final merged data; the final merged data is input into the GPGPU of each MPI communication node for parallel processing to obtain MPI merged processing data, and an end signal is sent to the MPI communication network.

[0039] In a feasible implementation manner, the MPI communication node obtains a corresponding data transmission optimization scheme according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization scheme, specifically including:

[0040] When multiple MPI communication nodes need to send data and write the data calculation results back to a target MPI communication node, the reduced binary multiplication communication transmission mode is adopted:

[0041] The multiple MPI communication nodes obtain the many-to-one data transmission computing instruction in the MPI communication network, and determine their own data node type in the instruction; wherein the data node type is a data sending node or a data receiving node;

[0042] The multiple MPI communication nodes respectively extract the data to be sent from their own memory units, and input the data to be sent into their own GPGPUs for parallel processing to obtain first calculation result data;

[0043] The data sending node sends the first calculation result data to the MPI communication network, while the data receiving node does not send the data;

[0044] The multiple MPI communication nodes are matched in pairs to form a plurality of MPI communication node combinations; if the MPI communication node combination includes a data receiving node, the data receiving node is determined as the data merging processing node of the MPI communication node combination; if the MPI communication node combination does not include a data receiving node, an MPI communication node is randomly determined as the data merging processing node of the MPI communication node combination;

[0045] The data merging processing node obtains the first calculation result data corresponding to the MPI communication node combination, and performs data merging; inputs the merged data into its own GPGPU for parallel processing to obtain the second calculation result data;

[0046] The data merging processing nodes continue to perform pairwise matching until all data are merged into a set of data to obtain final merged data; the final merged data is input into the GPGPU of the target MPI communication node for parallel processing to obtain MPI merged processing data, and an end signal is sent to the MPI communication network.

[0047] In a feasible implementation manner, the MPI communication node obtains a corresponding data transmission optimization scheme according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization scheme, specifically including:

[0048] When a target MPI communication node needs to send data and write the data calculation results back to multiple MPI communication nodes, the data multiplication transmission communication transmission mode is adopted:

[0049] The target MPI communication node randomly selects one of the remaining MPI communication nodes as a first data receiving node, and completes data transmission from the target MPI communication node to the first data receiving node;

[0050] The target MPI communication node and the first data receiving node are both used as new data sending nodes, and two of the remaining MPI communication nodes are randomly selected as second data receiving nodes to complete the data sending from the data sending node to the second data receiving node; the above process is repeated by analogy until the data is sent to all designated MPI communication nodes.

[0051] Compared with the prior art, the MPI collective communication transmission system and method based on GPGPU provided by the embodiment of the present invention has the following beneficial effects:

[0052] The solution proposed in the present invention firstly integrates a general-purpose graphics processing unit (GPGPU) as the core of the MPI communication node, which significantly improves the parallelism and efficiency of data processing. The parallel computing capability of GPGPU is used to efficiently perform data compression and decompression tasks, greatly improving the computational efficiency of these operations. In addition, the independent scheduling, computing and caching units of GPGPU enable data transmission and processing tasks to be independently executed without the CPU, greatly reducing the CPU's workload, thereby allowing the CPU to focus more on its computational tasks. At the same time, for different types of MPI collective communication modes, this solution designs a special data transmission optimization strategy. For many-to-many, many-to-one and one-to-many collective communication modes, binary multiplication, reduced binary multiplication and communication transmission modes based on data multiplication transmission are proposed respectively. While ensuring the data transmission of a single communication node, the data merging and transmission process is carefully designed and optimized, thereby improving the efficiency of MPI collective communication data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0053] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the prior art descriptions. Obviously, the drawings described below are only some embodiments recorded in the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work. In the drawings:

[0054] Figure 1 This is a schematic diagram of the MPI communication node architecture with CPU as the core;

[0055] Figure 2 A schematic diagram of the architecture of an MPI collective communication transmission system based on GPGPU provided by an embodiment of the present invention;

[0056] Figure 3A flow chart of a GPGPU-based MPI collective communication transmission method provided by an embodiment of the present invention;

[0057] Figure 4 A schematic diagram of a binary multiplication communication transmission mode provided by an embodiment of the present invention;

[0058] Figure 5 A schematic diagram of a reduced binary multiplication communication transmission mode provided by an embodiment of the present invention;

[0059] Figure 6 A schematic diagram of a data multiplication communication transmission mode provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0060] In order to enable those skilled in the art to better understand the technical solutions in the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of this specification, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present invention.

[0061] Under the framework of the MPI communication protocol, data processing and transmission within an MPI communication node usually involves the collaborative work of multiple computing units. Specifically, each MPI communication node consists of a set of central processing units (CPUs) and multiple sets of graphics processing units (GPUs), which jointly participate in data processing and transmission tasks. During the communication process between nodes, data is transmitted and interacted through the MPI communication network.

[0062] Figure 1 This is a schematic diagram of the MPI communication node architecture with CPU as the core. In the traditional MPI communication architecture, Figure 1 As shown in the figure, the CPU plays a key role in receiving, decompressing, forwarding to the GPU, and collecting, compressing, and sending data. Specifically, the CPU first receives the compressed data from the MPI communication network, then decompresses it, and distributes the decompressed data to each GPU for further processing. After the processing is completed, the GPU sends the result data back to the CPU, which then compresses the data and sends it back to the MPI communication network. In this process, the operations of receiving, sending, decompressing, and compressing data are all controlled by the CPU, resulting in a large workload on the CPU.

[0063] Although this CPU-based communication mode can meet the needs in some cases, the bottleneck effect of the CPU gradually emerges when facing large-scale data transmission and processing tasks, limiting the scalability and performance of the entire system. Therefore, in order to improve the data processing capability and transmission efficiency of MPI communication nodes, the present invention proposes an MPI communication node construction scheme with general-purpose graphics processing unit GPGPU as the core.

[0064] Figure 2 A schematic diagram of the architecture of an MPI collective communication transmission system based on GPGPU provided by an embodiment of the present invention is shown in FIG. Figure 2 As shown, in the solution of the present invention, a dedicated arbitration module and an MPI information processing module inside the GPGPU are constructed to ensure that the GPGPU efficiently undertakes the tasks of data receiving, decompressing, forwarding to other GPUs, and data collection, compression, and sending that the original CPU needs to undertake.

[0065] Specifically, the MPI communication node is used to perform parallel processing on compressed data sent by the MPI communication network. The MPI communication node includes at least one arbitration unit and several general purpose graphics processing units GPGPU, and the arbitration unit is respectively connected to the several general purpose graphics processing units GPGPU.

[0066] The arbitration unit is used to monitor the resource usage and computing resource margin of each GPGPU and allocate GPGPU for the received compressed data. The general graphics processing unit GPGPU includes an MPI information processing module for parallel processing of the received compressed data.

[0067] In view of the above-mentioned GPGPU-based MPI collective communication transmission system, the present invention proposes a corresponding GPGPU-based MPI collective communication transmission method, such as Figure 3 As shown, the method specifically includes steps S101-S103:

[0068] S101. An arbitration unit receives compressed data sent by an MPI communication network, and determines a target GPGPU based on the data volume of the compressed data and required computing resources.

[0069] Specifically, the arbitration unit identifies the amount of compressed data and the required computing resources, and selects the first batch of GPGPUs whose unused resources are greater than or equal to the amount of data. From the first batch of GPGPUs, the second batch of GPGPUs whose computing resource margin is greater than or equal to the required computing resources are selected, and the second batch of GPGPUs are used as target GPGPUs. If there is more than one target GPGPU, the arbitration unit determines the target GPGPU with the largest computing resource margin as the final target GPGPU.

[0070] As a feasible implementation, the compressed data received from the MPI communication network is first sent to the arbitration unit. In the arbitration unit, a monitoring mechanism for the resource usage and computing resource margin of each GPGPU is designed to dynamically determine the GPGPU that is most suitable for executing data processing tasks according to the size of the incoming data. Through this dynamic allocation strategy, the arbitration unit optimizes the resource allocation and load balancing within the MPI communication node to prevent a single GPGPU from being stalled due to excessive load, ensuring efficient use of resources.

[0071] S102: The target GPGPU performs data-parallel decompression and data-parallel calculation on the compressed data to obtain a parallel calculation result.

[0072] Specifically, the target GPGPU splits the compressed data according to the total number of threads included to obtain a number of compressed data packets, and distributes the several compressed data packets to different threads for parallel decompression.

[0073] Furthermore, the decompressed data of each thread is aggregated to obtain the decompressed MPI communication data, and the required auxiliary computing data is extracted based on the decompressed MPI communication data, specifically including: the target GPGPU determines whether it is necessary to extract auxiliary computing data from other GPGPUs or CPUs in the current MPI communication node based on the decompressed MPI communication data; if necessary, the built-in direct memory access engine DMA is used to read the auxiliary computing data from the memory unit of the corresponding CPU or GPGPU.

[0074] Furthermore, the target GPGPU splits the MPI communication data and the auxiliary computing data according to the total number of threads, and distributes them to different threads for parallel computing; and summarizes the computing results of each thread to obtain the parallel computing results.

[0075] As a feasible implementation method, the data is sent to the selected target GPGPU. Inside the GPGPU, the present invention constructs and designs an MPI information processing module that conforms to the concurrency characteristics of the GPGPU, which is responsible for performing operations such as data decompression, receiving and distributing, computing and compressing. The design of this module allows the data to be split into a corresponding number of data packets according to the number of threads of the GPGPU, and each thread independently processes a data packet, thereby achieving parallel processing.

[0076] In the data decompression processing stage, the received MPI communication network data will be split according to the number of GPGPU threads and assigned to the corresponding threads for decompression operations, thereby completing the decompression task within one processing cycle.

[0077] In the data receiving and distributing processing stage, it is determined whether it is necessary to extract the stored data from other GPGPUs or CPUs in the MPI communication node based on the decompressed data information. If necessary, the built-in direct memory access engine DMA is used to directly read the required data from the memory unit in the corresponding CPU or GPGPU without the intervention of the CPU and GPGPU, thereby ensuring that the ongoing work tasks of other CPUs and GPGPUs are not disturbed.

[0078] In the data calculation and processing stage, the calculation and processing are performed based on the decompressed data and the auxiliary calculation data retrieved from the MPI communication node. The design of this process also uses the parallel processing capability of GPGPU to split the data transmitted by the MPI communication network and the data in the MPI communication node into a corresponding number of data packets and assign them to threads, so as to complete the calculation task within one processing cycle.

[0079] S103, the target GPGPU performs parallel compression on the parallel computing results, obtains MPI processing data and transmits it back to the MPI communication network.

[0080] Specifically, the target GPGPU splits the parallel computing results according to the total number of threads included to obtain a number of computing result data packets; and distributes the several computing result data packets to different threads for parallel compression.

[0081] Furthermore, the target GPGPU aggregates the compressed calculation result data of each thread to obtain MPI processing data, and sends it back to the arbitration unit. The arbitration unit transmits the MPI processing data back to the MPI communication network.

[0082] As a feasible implementation, in the final data compression processing stage, the calculation result data will be compressed and the compressed data will be sent back to the arbitration module. This process also makes full use of the high concurrency of GPGPU, splits the calculation result data according to the number of GPGPU threads, and assigns it to the corresponding threads for compression, thereby completing the data compression task within one processing cycle.

[0083] After completing all processing, the target GPGPU sends the processed MPI data information back to the arbitration module, which finally sends it back to the MPI communication network, thus completing the entire data transmission and processing flow of the MPI communication node with GPGPU as the core.

[0084] Furthermore, based on the MPI communication architecture provided by the present invention, in view of the problem that the current MPI communication mechanism has unsatisfactory performance in collective communication scenarios, the present invention proposes a variety of data transmission optimization solutions based on the MPI collective communication mode, specifically including:

[0085] The MPI communication node obtains data transmission computing instructions in the MPI communication network; wherein the data transmission computing instructions at least include: many-to-many data transmission computing instructions, many-to-one data transmission computing instructions and one-to-many data transmission computing instructions.

[0086] The MPI communication node obtains the corresponding data transmission optimization plan according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization plan; wherein the data transmission optimization plan at least includes: binary multiplication communication transmission mode, reduced binary multiplication communication transmission mode and data multiplication transmission communication transmission mode.

[0087] As a feasible implementation method, the first type of data transmission optimization solution is for many-to-many MPI collective communication mode, that is, when multiple MPI communication nodes need to send data, the data calculation results also need to be written back to multiple MPI communication nodes. At this time, the binary multiplication communication transmission mode is adopted:

[0088] Multiple MPI communication nodes obtain many-to-many data transmission calculation instructions in the MPI communication network, extract the data to be sent from their own memory units, and input the data to be sent into their own GPGPUs for parallel processing, obtain the first calculation result data and send it to the MPI communication network.

[0089] Then, multiple MPI communication nodes are matched in pairs to form several MPI communication node combinations; and first calculation result data corresponding to the MPI communication node combination is obtained in the MPI communication network, and data is merged; the merged data is input into its own GPGPU for parallel processing to obtain second calculation result data;

[0090] Next, several MPI communication node combinations continue to match each other until all data are merged into a set of data to obtain the final merged data; the final merged data is input into the GPGPU of each MPI communication node for parallel processing to obtain MPI merged processing data, and an end signal is sent to the MPI communication network.

[0091] In one embodiment, Figure 4 A schematic diagram of a binary multiplication communication transmission mode provided by an embodiment of the present invention, such as Figure 4 As shown, the present invention proposes a binary multiplication type many-to-many collective communication transmission mode. Taking 4 MPI communication nodes need to send data and 4 MPI communication nodes need to receive data as an example, the specific implementation process of the binary multiplication type many-to-many collective communication transmission mode is as follows:

[0092] First, the four MPI communication nodes obtain the many-to-many data transmission calculation instructions from the MPI communication network and start to extract data from their corresponding memory units, that is, Figure 2 As shown in the first stage, the data extracted by the four MPI communication nodes are D1\D2\D3\D4 respectively, which are converted into D1'\D2'\D3'\D4' after compression and sent to the MPI communication network.

[0093] Then, the four MPI communication nodes are matched in pairs to perform data merging and processing operations, namely, Figure 2 As shown in the second stage, MPI communication node 1 and MPI communication node 2 match, that is, MPI communication node 1 receives D2' data transmitted in the network, and MPI communication node 2 receives D1' data transmitted in the network; MPI communication node 3 and MPI communication node 4 match. After receiving the data in the network, the four MPI communication nodes decompress and combine with their own data maintained in the first stage for merging processing, and then send it to the MPI communication network through the compression module. After the second stage of processing, the data maintained by MPI communication node 1 and MPI communication node 2 are the same, which is D1+D2, and the data sent to the network are also the same, which is (D1+D2)'; the data maintained by MPI communication node 3 and MPI communication node 4 are the same, which is D3+D4, and the data sent to the network are also the same, which is (D3+D4)'.

[0094] Finally, Figure 2 As shown in the third stage, the matching result of MPI communication node 1-2 matches that of MPI communication node 3-4, that is, MPI communication node 1 receives network data from MPI communication node 3 (or MPI communication node 4), MPI communication node 3 receives network data from MPI communication node 1 (or MPI communication node 2), and the same is true for MPI communication nodes 2 and 4. After receiving the data from the network, the four MPI communication nodes also decompress and combine with the data maintained in their own stage 2 for merging processing operations. If the specified operation has been completed, an end signal is sent to the network.

[0095] It should be noted that although the matching methods of the four MPI communication nodes in this embodiment are 1-2 and 3-4, this is only an example and not a fixed matching method. This solution supports customized matching of MPI communication nodes according to parameters such as transmission distance.

[0096] As a feasible implementation, the second type of data transmission optimization scheme is for the many-to-one MPI collective communication mode, that is, multiple MPI communication nodes need to send data, but the data calculation results only need to be written back to one MPI communication node. In this case, the reduced binary multiplication communication transmission mode is adopted:

[0097] A plurality of MPI communication nodes obtain many-to-one data transmission computing instructions in the MPI communication network, and determine their own data node type in the instructions; wherein the data node type is a data sending node or a data receiving node.

[0098] Then, multiple MPI communication nodes extract the data to be sent from their own memory units respectively, and input the data to be sent into their own GPGPUs for parallel processing to obtain the first calculation result data. The data sending node sends the first calculation result data to the MPI communication network, while the data receiving node does not send it.

[0099] Furthermore, multiple MPI communication nodes are matched in pairs to form several MPI communication node combinations; if the MPI communication node combination includes a data receiving node, the data receiving node is determined as the data merging processing node of the MPI communication node combination; if the MPI communication node combination does not include a data receiving node, an MPI communication node is randomly determined as the data merging processing node of the MPI communication node combination.

[0100] Then, the data merging processing node obtains the first calculation result data corresponding to the MPI communication node combination, and performs data merging; the merged data is input into its own GPGPU for parallel processing to obtain the second calculation result data.

[0101] Then the data merging processing nodes continue to match each other until all the data are merged into a set of data to obtain the final merged data; the final merged data is input into the GPGPU of the target MPI communication node for parallel processing to obtain MPI merged processing data, and an end signal is sent to the MPI communication network.

[0102] In one embodiment, Figure 5 A schematic diagram of a reduced binary multiplication communication transmission mode provided by an embodiment of the present invention is shown in FIG. Figure 5 As shown in the figure, taking the case where 4 MPI communication nodes need to send data and 1 node needs to receive data as an example, the specific implementation process of the reduced binary multiplication many-to-one collective communication transmission mode is as follows:

[0103] First, the four MPI communication nodes obtain many-to-one data transmission calculation instructions from the MPI communication network, and determine whether they are data sending nodes or data receiving nodes, and then start to extract data from their corresponding memory units, that is, Figure 3As shown in the first stage. Taking MPI communication node 1 as the data receiving node and MPI communication nodes 2, 3, and 4 as the data sending nodes as an example, the data extracted by the three MPI data sending communication nodes are D2\D3\D4, which are converted into D2'\D3'\D4' after compression and sent to the MPI communication network. The data extracted by the data receiving node is D1, but it is not sent to the MPI communication network.

[0104] Then, the four MPI communication nodes are matched in pairs to perform data merging and processing operations, that is, Figure 3 As shown in the second stage. It is also assumed that MPI communication node 1 matches MPI communication node 2, and MPI communication node 3 matches MPI communication node 4. Because the MPI collective communication mode is a many-to-one data transmission mode, only one of the matching MPI communication node pairs needs to receive data. It is worth noting that since MPI communication node 1 is the set data receiving node, MPI communication node pair 1-2 is fixed as communication node 2 sending data to communication node 1, and there is no set data receiving node in MPI communication node pair 3-4. Therefore, a relatively idle communication node can be selected as the data receiving node according to the MPI communication node calculation task load, assuming that communication node 3 receives data.

[0105] In the second stage of the reduced binary multiplication many-to-one collective communication transmission mode, after determining the data receiving node in the MPI communication node pair, the data sending node in the MPI communication node pair can end the process work, that is, MPI communication nodes 2 and 4 can end the process work and perform other tasks, and MPI communication nodes 1 and 3 continue to perform subsequent many-to-one collective communication transmission tasks. Among them, because MPI communication node 1 is a set data receiving node, its data after merging needs to be written into the corresponding GPGPU unit, but does not need to be sent to the MPI network. MPI communication node 3 is an intermediate data transmission communication node, so its data after merging does not need to be written into the corresponding GPGPU unit, but needs to be sent to the MPI network.

[0106] Finally, in the third stage of the reduced binary multiplication many-to-one collective communication transmission mode, the remaining MPI communication node 1 and MPI communication node 3 are matched. After sending the data, MPI communication node 3 ends the process work and performs other work. After receiving the network data, MPI communication node 1 merges the data with the data it maintains, stores it in the corresponding memory unit, and sends an end signal to the MPI network.

[0107] As a feasible implementation method, the third type of data transmission optimization scheme is for one-to-many MPI collective communication mode, that is, an MPI communication node needs to send data, but the data calculation results need to be written back to multiple MPI communication nodes. In this case, the data multiplication transmission communication transmission mode is adopted:

[0108] The target MPI communication node randomly selects one of the remaining MPI communication nodes as the first data receiving node, and completes data transmission from the target MPI communication node to the first data receiving node.

[0109] Then, the target MPI communication node and the first data receiving node are both used as new data sending nodes, and two of the remaining MPI communication nodes are randomly selected as second data receiving nodes to complete the data transmission from the data sending node to the second data receiving node. The above process is analogous until the data is sent to all designated MPI communication nodes.

[0110] In one embodiment, Figure 6 A schematic diagram of a data multiplication transmission communication transmission mode provided by an embodiment of the present invention, such as Figure 6 As shown in the figure, taking 8 MPI communication nodes that need to receive data and 1 node that needs to send data as an example, the specific implementation process of the one-to-many collective communication transmission mode based on data multiplication transmission is as follows:

[0111] First, assuming that MPI communication node 1 is a data sending node, in the first stage of a one-to-many collective communication transmission mode based on data multiplication transmission, the node first selects one from the remaining 7 data receiving communication nodes as the first stage data receiving node. Taking MPI communication node 2 as an example, data transmission from MPI communication node 1 to MPI communication node 2 is completed.

[0112] Then, in the second stage of the one-to-many collective communication transmission mode based on data multiplication transmission, since MPI communication nodes 1 and 2 already have data, 2 are selected from the remaining 6 data receiving MPI communication nodes as the data receiving nodes of the second stage, assuming they are MPI communication nodes 3 and 4, then MPI communication nodes 1 and 2 send data to MPI communication nodes 3 and 4 respectively.

[0113] Finally, in the third stage of the one-to-many collective communication transmission mode based on data multiplication transmission, since MPI communication nodes 1, 2, 3, and 4 already have data, and the remaining MPI data receiving communication nodes are less than or equal to 4, MPI communication nodes 1, 2, 3, and 4 can directly send data to the remaining nodes, thus completing the entire one-to-many MPI collective communication function.

[0114] It should be noted that the examples and matching methods listed in the above embodiments are only examples for facilitating the understanding of the present solution and are not intended to limit the implementation methods of the present solution.

[0115] The present invention proposes a GPGPU-based MPI collective communication transmission system and method. First, in view of the problem that the current MPI communication node mainly relies on the CPU to process data, an MPI communication node with GPGPU as the core is constructed. On the one hand, the powerful parallel computing capability of GPGPU is fully utilized to efficiently perform compression and decompression computing tasks and improve the efficiency of data compression computing; on the other hand, the independent scheduling, computing, and caching units of GPGPU are utilized to make it independent of the CPU to perform work tasks, greatly reducing the CPU workload, so that the CPU can focus more on the computing tasks it is good at. In view of the problem that the current MPI communication mechanism has unsatisfactory performance in the collective communication scenario, the present invention designs a data transmission optimization scheme based on the MPI collective communication mode, divides the MPI collective communication mode into three categories, namely, many-to-many data transmission, many-to-one data transmission, and one-to-many data transmission, and proposes corresponding binary multiplication type, reduced binary multiplication type, and communication transmission optimization schemes based on data multiplication transmission, respectively, to improve the MPI collective communication transmission efficiency under the premise of ensuring that the network transmission of a single communication node is within a reasonable range.

[0116] Each embodiment of the present invention is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device, equipment, and non-volatile computer storage medium embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments.

[0117] The above describes specific embodiments of the present invention. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or sequential order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0118] The above description is only an embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the embodiments of the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the embodiments of the present invention should be included in the protection scope of the present invention.

Claims

1. A GPGPU-based MPI collective communication transmission system, the system comprising an MPI communication network and a plurality of MPI communication nodes, the MPI communication network being communicatively connected to the plurality of MPI communication nodes, characterized in that: The MPI communication node is used to perform parallel processing on the compressed data sent by the MPI communication network; The MPI communication node includes at least one arbitration unit and a plurality of general purpose graphics processing units GPGPU; The arbitration unit is communicatively connected with the plurality of general purpose graphics processing units GPGPU respectively; The arbitration unit is used to monitor the resource usage and computing resource margin of each GPGPU and allocate a GPGPU for the received compressed data, specifically including: The arbitration unit identifies the data volume and required computing resources of the compressed data, and selects a first batch of GPGPUs whose unused resources are greater than or equal to the data volume; from the first batch of GPGPUs, selects a second batch of GPGPUs whose computing resource margin is greater than or equal to the required computing resources, and uses the second batch of GPGPUs as target GPGPUs; if there is more than one target GPGPU, the arbitration unit determines the target GPGPU with the largest computing resource margin as the final target GPGPU; The general purpose graphics processing unit GPGPU includes an MPI information processing module for parallel processing of the received compressed data, specifically including: The target GPGPU splits the compressed data according to the total number of threads included to obtain a number of compressed data packets, and distributes the several compressed data packets to different threads for parallel decompression; the target GPGPU summarizes the decompressed data of each thread to obtain decompressed MPI communication data, and extracts the required auxiliary computing data based on the decompressed MPI communication data; the target GPGPU splits the MPI communication data and the auxiliary computing data according to the total number of threads, and distributes them to different threads for parallel computing; and summarizes the computing results of each thread to obtain the parallel computing results.

2. A GPGPU-based MPI collective communication transmission method, applied to a GPGPU-based MPI collective communication transmission system as claimed in claim 1, characterized in that: The method comprises: The arbitration unit receives the compressed data sent by the MPI communication network, and determines the target GPGPU based on the data volume of the compressed data and the required computing resources, specifically including: The arbitration unit identifies the data volume and required computing resources of the compressed data, and selects a first batch of GPGPUs whose unused resources are greater than or equal to the data volume; from the first batch of GPGPUs, selects a second batch of GPGPUs whose computing resource margin is greater than or equal to the required computing resources, and uses the second batch of GPGPUs as the target GPGPUs; if there is more than one target GPGPU, the arbitration unit determines the target GPGPU with the largest computing resource margin as the final target GPGPU; The target GPGPU performs data parallel decompression and data parallel calculation on the compressed data to obtain a parallel calculation result, specifically including: The target GPGPU splits the compressed data according to the total number of threads included to obtain a plurality of compressed data packets, and respectively distributes the plurality of compressed data packets to different threads for parallel decompression; the target GPGPU aggregates the decompressed data of each thread to obtain decompressed MPI communication data, and extracts required auxiliary computing data according to the decompressed MPI communication data; the target GPGPU splits the MPI communication data and the auxiliary computing data according to the total number of threads, and distributes them to different threads for parallel computing; and aggregates the computing results of each thread to obtain the parallel computing result; The target GPGPU performs parallel compression on the parallel computing results to obtain MPI processing data and transmits the data back to the MPI communication network.

3. The MPI collective communication transmission method based on GPGPU according to claim 2, characterized in that: According to the decompressed MPI communication data, the required auxiliary computing data is extracted, specifically including: The target GPGPU determines whether it is necessary to extract auxiliary computing data from other GPGPUs or CPUs of the current MPI communication node according to the decompressed MPI communication data; If necessary, the built-in direct memory access engine DMA is used to read the auxiliary computing data from the memory unit of the corresponding CPU or GPGPU.

4. The MPI collective communication transmission method based on GPGPU according to claim 2, characterized in that: The target GPGPU performs parallel compression on the parallel computing result to obtain MPI processing data and transmits the data back to the MPI communication network, specifically including: The target GPGPU splits the parallel computing result according to the total number of threads included to obtain a plurality of computing result data packets; and distributes the plurality of computing result data packets to different threads for parallel compression; The target GPGPU aggregates the compressed calculation result data of each thread to obtain the MPI processing data, and sends the data back to the arbitration unit; The arbitration unit transmits the MPI processing data back to the MPI communication network.

5. The MPI collective communication transmission method based on GPGPU according to claim 2, characterized in that: The method further comprises: The MPI communication node obtains a data transmission computing instruction in the MPI communication network; wherein the data transmission computing instruction at least includes: a many-to-many data transmission computing instruction, a many-to-one data transmission computing instruction, and a one-to-many data transmission computing instruction; The MPI communication node obtains the corresponding data transmission optimization plan according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization plan; wherein the data transmission optimization plan at least includes: a binary multiplication communication transmission mode, a reduced binary multiplication communication transmission mode and a data multiplication transmission communication transmission mode.

6. The MPI collective communication transmission method based on GPGPU according to claim 5, characterized in that: The MPI communication node obtains a corresponding data transmission optimization scheme according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization scheme, specifically including: When multiple MPI communication nodes need to send data and write the data calculation results back to the multiple MPI communication nodes, the binary multiplication communication transmission mode is adopted: The multiple MPI communication nodes obtain the many-to-many data transmission calculation instruction in the MPI communication network, extract the data to be sent from their own memory units, and input the data to be sent into their own GPGPUs for parallel processing, obtain first calculation result data and send it to the MPI communication network; The multiple MPI communication nodes are matched in pairs to form a plurality of MPI communication node combinations; and the first calculation result data corresponding to the MPI communication node combination is obtained in the MPI communication network, and the data is merged; the merged data is input into the GPGPU of the own for parallel processing to obtain the second calculation result data; The plurality of MPI communication node combinations continue to perform pairwise matching until all data are merged into a set of data to obtain final merged data; the final merged data is input into the GPGPU of each MPI communication node for parallel processing to obtain MPI merged processing data, and an end signal is sent to the MPI communication network.

7. The MPI collective communication transmission method based on GPGPU according to claim 5, characterized in that: The MPI communication node obtains a corresponding data transmission optimization scheme according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization scheme, specifically including: When multiple MPI communication nodes need to send data and write the data calculation results back to a target MPI communication node, the reduced binary multiplication communication transmission mode is adopted: The multiple MPI communication nodes obtain the many-to-one data transmission computing instruction in the MPI communication network, and determine their own data node type in the instruction; wherein the data node type is a data sending node or a data receiving node; The multiple MPI communication nodes respectively extract the data to be sent from their own memory units, and input the data to be sent into their own GPGPUs for parallel processing to obtain first calculation result data; The data sending node sends the first calculation result data to the MPI communication network, while the data receiving node does not send the data; The multiple MPI communication nodes are matched in pairs to form a plurality of MPI communication node combinations; if the MPI communication node combination includes a data receiving node, the data receiving node is determined as the data merging processing node of the MPI communication node combination; if the MPI communication node combination does not include a data receiving node, an MPI communication node is randomly determined as the data merging processing node of the MPI communication node combination; The data merging processing node obtains the first calculation result data corresponding to the MPI communication node combination, and performs data merging; inputs the merged data into its own GPGPU for parallel processing to obtain the second calculation result data; The data merging processing nodes continue to perform pairwise matching until all data are merged into a set of data to obtain final merged data; the final merged data is input into the GPGPU of the target MPI communication node for parallel processing to obtain MPI merged processing data, and an end signal is sent to the MPI communication network.

8. The MPI collective communication transmission method based on GPGPU according to claim 5, characterized in that: The MPI communication node obtains a corresponding data transmission optimization scheme according to the data transmission calculation instruction, and performs MPI data calculation and transmission according to the data transmission optimization scheme, specifically including: When a target MPI communication node needs to send data and write the data calculation results back to multiple MPI communication nodes, the data multiplication transmission communication transmission mode is adopted: The target MPI communication node randomly selects one of the remaining MPI communication nodes as a first data receiving node, and completes data transmission from the target MPI communication node to the first data receiving node; The target MPI communication node and the first data receiving node are both used as new data sending nodes, and two of the remaining MPI communication nodes are randomly selected as second data receiving nodes to complete data transmission from the data sending node to the second data receiving node; The above process is repeated until the data is sent to all designated MPI communication nodes.

Citation Information

Patent Citations

  • NoC arbitration method based on global node information in GPGPU

    CN108199985A

  • Communication optimizations for distributed machine learning

    CN110135575A