Data transmission method and computing node

By using the computing interconnected CXL device in the computer cluster, the first computing node stores the target data in the data space and stores the notification message in the message space. The second computing node reads the target data according to the notification message, solving the data in the computer cluster The problem of low transmission efficiency achieves efficient data transmission.

CN119496792APending Publication Date: 2025-02-21XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311057705.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-21
Publication Date
2025-02-21

AI Technical Summary

Technical Problem

Data transmission efficiency between different computing nodes in computer clusters is low, especially when the data is large, insufficient Internet bandwidth leads to large transmission delays.

Method used

By computing the interconnected CXL device, the first computing node stores the target data in the data space and stores the notification message corresponding to the target data in the message space. The second computing node reads the target data from the data space according to the notification message, and achieves the goal Decoupling of data and notification messages.

Benefits of technology

It improves data transmission efficiency in computer clusters, reduces transmission delay, and avoids data transmission bottlenecks caused by insufficient Internet bandwidth.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119496792A_ABST
    Figure CN119496792A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method and a computing node. The method is applied to a first computing node of a computer cluster, the computer cluster comprises a plurality of computing nodes, a storage node and computing interconnection CXL equipment, the plurality of computing nodes are connected with the storage node through the CXL equipment, and the storage node comprises a message space and a data space. The method comprises the steps that a first computing node stores target data in a first storage position through CXL equipment, the first computing node is any computing node in a plurality of computing nodes, and a data space comprises the first storage position; the first computing node stores a notification message corresponding to the target data in a second storage position through the CXL equipment; the notification message is used for notifying the second computing node that the target data is stored in the first storage position, the second computing node is any computing node except the first computing node in the plurality of computing nodes, and the message space comprises a second storage position. Through the method, the data transmission efficiency in the computer cluster can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present application relate to the technical field of computing devices, and in particular, to a data transmission method and a computing node. Background Art

[0002] A computer cluster is a computer system consisting of a group of computing nodes. The computing nodes in a computer cluster can transmit data to each other. For example, a computer cluster can be a training cluster for artificial intelligence (AI).

[0003] Currently, data can be transmitted between different computing nodes in a computer cluster via the Internet. However, when the data to be transmitted is large, insufficient bandwidth resources on the Internet will affect the data transmission efficiency, resulting in low data transmission efficiency and large transmission delay between computing nodes, leading to low data transmission efficiency in the computer cluster. Summary of the invention

[0004] The embodiment of the present application provides a data transmission method and a computing node, wherein the method can improve the data transmission efficiency in a computer cluster.

[0005] In a first aspect, an embodiment of the present application provides a data transmission method, which is applied to a first computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node through the CXL device, and the storage node includes a message space and a data space, wherein the method includes:

[0006] The first computing node stores the target data in a first storage location through the CXL device, wherein the first computing node is any computing node among the plurality of computing nodes, and the data space includes the first storage location;

[0007] The first computing node stores the notification message corresponding to the target data in a second storage location through the CXL device;

[0008] The notification message is used to inform the second computing node that the target data is stored in the first storage location, the second computing node is any computing node among the multiple computing nodes except the first computing node, and the message space includes the second storage location.

[0009] In the above scheme, the first computing node can store the target data in the first storage location through the CXL device, and can store the notification message corresponding to the target data in the second storage location through the CXL device. So that the second computing node can obtain the notification message from the second storage location through the CXL device, and can read the target data from the first storage location through the CXL device according to the notification message. Through the above method, the first computing node can transmit the target data and the notification message corresponding to the target data to the second computing node through the CXL device, respectively, so as to realize the decoupling of the target data and the notification message, and improve the data transmission efficiency in the computer cluster.

[0010] In a possible implementation, the message space includes a plurality of message bits, each message bit is used to store a notification message; and the method further includes:

[0011] The first computing node obtains first description information of the message space, the first description information including the number of available message bits and the position of each available message bit, the available message bit being a message bit in the plurality of message bits that does not store a notification message;

[0012] The first computing node determines the second storage location according to the first description information, where the second storage location is a location of any one of the available message bits.

[0013] In the above solution, the first computing node can determine the second storage location in all message bits in the message space, so that the utilization rate of the message bits in the computer cluster is high.

[0014] In a possible implementation, the message space includes a plurality of message bits, each message bit is used to store a notification message; and the method further includes:

[0015] The first computing node determines a message position to be selected corresponding to the second computing node;

[0016] The first computing node obtains second description information of the message bit to be selected, where the second description information includes the number of idle message bits and the position of each idle message bit, where the idle message bit is a message bit in the message bit to be selected that does not store a notification message;

[0017] The first computing node determines the second storage location according to the second description information, where the second storage location is the location of any one of the idle message bits.

[0018] In the above solution, the first computing node can determine the second storage location only in the message position to be selected, so that the second storage location can be determined faster.

[0019] In a possible implementation, the CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device;

[0020] The storing, by the CXL device, a notification message corresponding to the target data in a second storage location includes:

[0021] The first computing node sends a third storage request to the multi-host CXL device, the third storage request including location information of the second storage location and the notification message;

[0022] The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.

[0023] In the above solution, the CXL device may be a multi-host CXL device, and the first computing node may store the notification message corresponding to the target data through the multi-host CXL device, thereby improving the storage efficiency of the notification message.

[0024] In a possible implementation, the CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device;

[0025] The storing, by the CXL device, a notification message corresponding to the target data in a second storage location includes:

[0026] The first computing node sends a fourth storage request to the CXL switching device, wherein the fourth storage request includes location information of the second storage location and the notification message;

[0027] The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.

[0028] In the above solution, the CXL device may be a CXL switching device, and the first computing node may store the notification message corresponding to the target data through the CXL switching device, thereby improving the storage efficiency of the notification message.

[0029] In a possible implementation, the method further includes:

[0030] The first computing node determines a candidate storage node, where the candidate storage node includes the data space;

[0031] The first computing node determines a target storage node among the candidate storage nodes according to the data size of the target data, and determines the first storage location in the data space of the target storage node, and the remaining storage space of the data space of the target storage node is greater than or equal to the data size of the target data.

[0032] In the above solution, the first computing node can determine the first storage location in the candidate storage nodes, thereby achieving the purpose of determining the first storage location.

[0033] In a possible implementation, the CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device;

[0034] The storing, by the CXL device, the target data in the first storage location comprises:

[0035] The first computing node sends a first storage request to the multi-host CXL device, the first storage request including location information of the first storage location and the target data;

[0036] The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.

[0037] In the above solution, the CXL device may be a multi-host CXL device, and the first computing node may store the target data through the multi-host CXL device, thereby improving data storage efficiency.

[0038] In a possible implementation, the CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device;

[0039] The storing, by the CXL device, the target data in the first storage location comprises:

[0040] The first computing node sends a second storage request to the CXL switching device, wherein the second storage request includes location information of the first storage location and the target data;

[0041] The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.

[0042] In the above solution, the CXL device may be a CXL switching device, and the first computing node may store the target data through the CXL switching device, thereby improving data storage efficiency.

[0043] In a second aspect, an embodiment of the present application provides a data transmission method, which is applied to a second computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node through the CXL device, and the storage node includes a message space and a data space, wherein the method includes:

[0044] A second computing node obtains a notification message from a second storage location through the CXL device, the notification message being used to inform the second computing node that the target data is stored in a first storage location, the first storage location being located in the data space, the second storage location being located in the message space, and the plurality of computing nodes including the second computing node;

[0045] The second computing node reads the target data from the first storage location through the CXL device according to the notification message.

[0046] In the above solution, the second computing node can receive the notification message sent by the first computing node through the CXL device, and can quickly read the target data through the CXL device according to the notification message. Through the above method, the decoupling of the target data and the notification message is achieved, and the data transmission efficiency in the computer cluster is improved.

[0047] In a possible implementation, the method further includes:

[0048] The second computing node sends a response message to the first computing node through the CXL device, where the response message includes a read result of the target data, where the read result is a read success or a read failure.

[0049] In the above solution, the second computing node can send the read result of the target data to the first computing node, thereby enabling the first computing node to obtain the read result of the target data.

[0050] In a possible implementation, the method further includes:

[0051] The spatial position of the message space in the storage node sent by the receiving management node.

[0052] In the above solution, the second computing node can also receive the spatial position of the message space in the storage node, thereby achieving the purpose of determining the spatial position of the message space.

[0053] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message; and the second computing node obtains the notification message from the second storage location through the CXL device, including:

[0054] The second computing node acquires first description information of the message space, where the first description information includes the number of unread messages;

[0055] When the number of the unread messages is greater than zero, the second computing node obtains a notification message from a second storage location through the CXL.

[0056] In the above solution, the second storage location can be any message bit in the message space, so that the utilization rate of the message bits in the computer cluster is higher.

[0057] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message; and the second computing node obtains the notification message from the second storage location through the CXL device, including:

[0058] The second computing node acquires second description information, where the second description information includes the number of unread messages at the to-be-selected message position corresponding to the second computing node;

[0059] When the number of the unread messages is greater than zero, the second computing node obtains a notification message from a second storage location through the CXL.

[0060] In the above solution, a corresponding message position to be selected may be set for the second computing node, and the second storage location may be any message position to be selected, so that the second computing node can obtain the notification message faster.

[0061] In one possible implementation,

[0062] The CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; or,

[0063] The CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device.

[0064] In the above solution, data transmission can be performed through multiple host CXL devices / CXL switching devices, thereby improving data transmission efficiency.

[0065] In a third aspect, an embodiment of the present application provides a data transmission device, which is applied to a first computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node through the CXL device, and the storage node includes a message space and a data space, and the data transmission device includes: a processing module, wherein:

[0066] The processing module is used to store target data in a first storage location through the CXL device, wherein the first computing node is any computing node among the plurality of computing nodes, and the data space includes the first storage location;

[0067] The processing module is further used for storing, through the CXL device, a notification message corresponding to the target data in a second storage location;

[0068] The notification message is used to inform the second computing node that the target data is stored in the first storage location, the second computing node is any computing node among the multiple computing nodes except the first computing node, and the message space includes the second storage location.

[0069] In the above scheme, the first computing node can store the target data in the first storage location through the CXL device, and can store the notification message corresponding to the target data in the second storage location through the CXL device. So that the second computing node can obtain the notification message from the second storage location through the CXL device, and can read the target data from the first storage location through the CXL device according to the notification message. Through the above scheme, the first computing node can transmit the target data and the notification message corresponding to the target data to the second computing node through the CXL device, respectively, so as to realize the decoupling of the target data and the notification message, and improve the data transmission efficiency in the computer cluster.

[0070] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;

[0071] The processing module is further used to obtain first description information of the message space, wherein the first description information includes the number of available message bits and the position of each available message bit, wherein the available message bit is a message bit in which no notification message is stored among the multiple message bits;

[0072] The processing module is further configured to determine the second storage location according to the first description information, where the second storage location is a location of any one of the available message bits.

[0073] In the above solution, the processing module can determine the second storage location in all message bits in the message space, so that the utilization rate of the message bits in the computer cluster is high.

[0074] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;

[0075] The processing module is further used to determine the to-be-selected message position corresponding to the second computing node;

[0076] The processing module is further used to obtain second description information of the message bit to be selected, wherein the second description information includes the number of idle message bits and the position of each idle message bit, and the idle message bit is a message bit in the message bit to be selected that does not store a notification message;

[0077] The processing module is further configured to determine the second storage location according to the second description information, where the second storage location is the location of any one of the idle message bits.

[0078] In the above solution, the processing module can determine the second storage position only in the message position to be selected, so that the second storage position can be determined faster.

[0079] In a possible implementation, the CXL device is a multi-host CXL device, the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; the processing module is specifically configured to:

[0080] sending a third storage request to the multi-host CXL device, the third storage request including location information of the second storage location and the notification message;

[0081] The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.

[0082] In the above solution, the CXL device may be a multi-host CXL device, and the processing module may store the notification message corresponding to the target data through the multi-host CXL device, thereby improving the storage efficiency of the notification message.

[0083] In a possible implementation, the CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device; and the processing module is specifically configured to:

[0084] sending a fourth storage request to the CXL switching device, the fourth storage request including the location information of the second storage location and the notification message;

[0085] The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.

[0086] In the above solution, the CXL device may be a CXL switching device, and the processing module may store the notification message corresponding to the target data through the CXL switching device, thereby improving the storage efficiency of the notification message.

[0087] In a possible implementation, the processing module is further configured to:

[0088] Determine a storage node to be selected, wherein the storage node to be selected includes the data space;

[0089] According to the data size of the target data, a target storage node is determined among the candidate storage nodes, and the first storage location is determined in the data space of the target storage node, and the remaining storage space of the data space of the target storage node is greater than or equal to the data size of the target data.

[0090] In the above solution, the processing module can determine the first storage location in the candidate storage node, thereby achieving the purpose of determining the first storage location.

[0091] In a possible implementation, the CXL device is a multi-host CXL device, the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; the processing module is specifically configured to:

[0092] sending a first storage request to the multi-host CXL device, the first storage request including location information of the first storage location and the target data;

[0093] The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.

[0094] In the above solution, the CXL device may be a multi-host CXL device, and the processing module may store the target data through the multi-host CXL device, thereby improving data storage efficiency.

[0095] In a possible implementation, the CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device; and the processing module is specifically configured to:

[0096] sending a second storage request to the CXL switch device, wherein the second storage request includes location information of the first storage location and the target data;

[0097] The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.

[0098] In the above solution, the CXL device may be a CXL switching device, and the processing module may store the target data through the CXL switching device, thereby improving data storage efficiency.

[0099] In a fourth aspect, an embodiment of the present application provides a data transmission device, which is applied to a second computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node through the CXL device, wherein the storage node includes a message space and a data space, and the data transmission device includes: an acquisition module and a processing module, wherein:

[0100] The acquisition module is used to acquire a notification message from a second storage location through the CXL device, the notification message is used to inform the second computing node that the target data is stored in a first storage location, the first storage location is located in the data space, the second storage location is located in the message space, and the plurality of computing nodes include the second computing node;

[0101] The processing module is configured to read target data from the first storage location through the CXL device according to the notification message.

[0102] In the above solution, the second computing node can receive the notification message sent by the first computing node through the CXL device, and can quickly read the target data through the CXL device according to the notification message. Through the above solution, the decoupling of the target data and the notification message is achieved, and the data transmission efficiency in the computer cluster is improved.

[0103] In a possible implementation, the data transmission device further includes a sending module, wherein:

[0104] The sending module is used to send a response message to the first computing node through the CXL device, where the response message includes a reading result of the target data, where the reading result is a reading success or a reading failure.

[0105] In the above solution, the second computing node can send the read result of the target data to the first computing node, thereby enabling the first computing node to obtain the read result of the target data.

[0106] In a possible implementation, the processing module is further configured to:

[0107] The spatial position of the message space in the storage node sent by the receiving management node.

[0108] In the above solution, the second computing node can also receive the spatial position of the message space in the storage node, thereby achieving the purpose of determining the spatial position of the message space.

[0109] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message; and the acquisition module is specifically used to:

[0110] Acquire first description information of the message space, where the first description information includes the number of unread messages;

[0111] When the number of the unread messages is greater than zero, a notification message is acquired from a second storage location through the CXL.

[0112] In the above solution, the second storage location can be any message bit in the message space, so that the utilization rate of the message bits in the computer cluster is higher.

[0113] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message; and the acquisition module is specifically used to:

[0114] Acquire second description information, where the second description information includes the number of unread messages at the to-be-selected message position corresponding to the second computing node;

[0115] When the number of the unread messages is greater than zero, a notification message is acquired from a second storage location through the CXL.

[0116] In the above solution, a corresponding message position to be selected may be set for the second computing node, and the second storage location may be any message position to be selected, so that the second computing node can obtain the notification message faster.

[0117] In one possible implementation,

[0118] The CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; or,

[0119] The CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device.

[0120] In the above solution, data transmission can be performed through multiple host CXL devices / CXL switching devices, thereby improving data transmission efficiency.

[0121] In a fifth aspect, an embodiment of the present application provides a computing node, comprising: a processor, and a memory communicatively connected to the processor;

[0122] The memory stores computer-executable instructions;

[0123] The processor executes the computer-executable instructions stored in the memory to implement the method described in any one of the first aspect or the second aspect.

[0124] In the above scheme, notification messages corresponding to target data and target data can be transmitted between computing nodes through CXL devices, thereby decoupling target data and notification messages, improving the reading and writing efficiency of target data, and improving the data transmission efficiency in computer clusters.

[0125] In a fifth aspect, an embodiment of the present application provides a management node, including: a processor, and a memory communicatively connected to the processor;

[0126] The memory stores computer-executable instructions;

[0127] The processor executes computer-executable instructions stored in the memory to determine a spatial location of a message space in a storage node and send the spatial location to a plurality of computing nodes.

[0128] In the above solution, the management node can determine and send the spatial location of the message space to multiple computing nodes, so that the multiple computing nodes can obtain the spatial location of the message space.

[0129] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, they are used to implement the method as described in any one of the first aspect or the second aspect.

[0130] In the above scheme, notification messages corresponding to target data and target data can be transmitted between computing nodes through CXL devices, thereby decoupling target data and notification messages, improving the reading and writing efficiency of target data, and improving the data transmission efficiency in computer clusters.

[0131] In a seventh aspect, an embodiment of the present application provides a computer program product, including a computer program, which, when executed by a computer, implements the method described in any one of the first aspect or the second aspect.

[0132] In the above scheme, notification messages corresponding to target data and target data can be transmitted between computing nodes through CXL devices, thereby decoupling target data and notification messages, improving the reading and writing efficiency of target data, and improving the data transmission efficiency in computer clusters. BRIEF DESCRIPTION OF THE DRAWINGS

[0133] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.

[0134] Figure 1 A schematic diagram of a cluster architecture provided for an embodiment of the present application;

[0135] Figure 2 A schematic diagram of connections between computing nodes in a cluster provided in an embodiment of the present application;

[0136] Figure 3 A schematic diagram of the architecture of a computer cluster provided in an embodiment of the present application;

[0137] Figure 4 A schematic diagram of the speed of reading and writing data through a CXL device provided in an embodiment of the present application;

[0138] Figure 5 A flowchart of a data transmission method provided in an embodiment of the present application;

[0139] Figure 6 A schematic diagram of address mapping of a message space provided in an embodiment of the present application;

[0140] Figure 7 A schematic diagram of a message space provided in an embodiment of the present application;

[0141] Figure 8 A schematic diagram of another message space provided in an embodiment of the present application;

[0142] Fig. 9 A schematic diagram of another message space provided in an embodiment of the present application;

[0143] Fig.10 A schematic diagram of the structure of a computer cluster provided in an embodiment of the present application;

[0144] Fig.11 A flowchart of another data transmission method provided in an embodiment of the present application;

[0145] Fig.12 A schematic diagram of a data transmission process provided in an embodiment of the present application;

[0146] Fig.13 A schematic diagram of the structure of another computer cluster provided in an embodiment of the present application;

[0147] Fig.14 A flowchart of another data transmission method provided in an embodiment of the present application;

[0148] Fig.15 Another data transmission process diagram provided in an embodiment of the present application;

[0149] Fig.16 A schematic diagram of the structure of a data transmission device provided in an embodiment of the present application;

[0150] Fig.17 A schematic diagram of the structure of another data transmission device provided in an embodiment of the present application;

[0151] Fig.18 A schematic diagram of the structure of another data transmission device provided in an embodiment of the present application;

[0152] Fig.19 A schematic diagram of the structure of a computing node provided in an embodiment of the present application. DETAILED DESCRIPTION

[0153] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the embodiments of the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the embodiments of the present application as detailed in the appended claims.

[0154] To facilitate understanding, first combine Figure 1 , taking the AI ​​training cluster as an example, the application scenarios involved in the embodiments of the present application are explained.

[0155] Figure 1 A schematic diagram of a cluster architecture provided in an embodiment of the present application. Figure 1 As shown, the cluster can be, for example, an AI training cluster, or, of course, other functional clusters. The following description takes the cluster as an AI training cluster as an example. The AI ​​training cluster 100 can include multiple computing nodes, and the multiple computing nodes can be, for example, computing node A101, computing node B102, computing node C103, computing node D104, and computing node E105.

[0156] The computing node A 101 , the computing node B 102 , the computing node C 103 , the computing node D 104 , and the computing node E 105 may be connected to each other via wired or wireless means.

[0157] Any computing node in the AI ​​training cluster 100 can exchange information with the remaining computing nodes. For example, computing node A101 can exchange information with computing node B102, computing node C103, computing node D104, or computing node E105. The information can be data or messages.

[0158] The data may be the job data that needs to be transmitted between computing nodes. For example, in an AI training cluster, the data may be the training data transmitted between computing nodes.

[0159] The message may be a message corresponding to the data, and the message may describe the storage address of the data, etc. For example, the data is training data transmitted between computing nodes, and the message may include the storage address of the data, etc. The message may include a notification message or a response message.

[0160] The computing node may be a computing device that can perform data read and write operations. For example, the computing node may be a server, a laptop computer, a desktop computer, a tablet computer, a single-chip microcomputer, a multimedia player, an artificial intelligence device, a wearable device, an Internet of Things device, or a virtual reality / augmented reality / mixed reality device.

[0161] Currently, data and messages between computing nodes in a cluster are transmitted through the Internet. Figure 2 As shown, Figure 2 A schematic diagram of the connection between computing nodes in a cluster provided in an embodiment of the present application. Figure 2 , the AI ​​training cluster 100 may include computing node A 101 , computing node B 102 , computing node C 103 , computing node D 104 , computing node E 105 , and an Internet link 106 .

[0162] It should be noted that the Internet link 106 can be in wired or wireless form. Figure 2 The Internet link 106 is only described as a wired form, which does not constitute a limitation to the embodiments of the present application.

[0163] Computing node A101, computing node B102, computing node C103, computing node D104, and computing node E105 can all be connected to Internet link 106. In other words, computing node A101, computing node B102, computing node C103, computing node D104, and computing node E105 can be connected via Internet link 106. Data can be transmitted between computing nodes via Internet link 106, and messages can be transmitted via Internet link 106.

[0164] Illustratively, computing node A101 may transmit data to computing node B102, computing node C103, computing node D104, or computing node E105 via Internet link 106, and computing node A101 may also transmit messages to computing node B102, computing node C103, computing node D104, or computing node E105 via Internet link 106.

[0165] However, during the above information interaction process, if the data transmitted between computing nodes is large, insufficient bandwidth resources of the Internet will affect the data transmission efficiency, resulting in low data transmission efficiency and large transmission delay between computing nodes, leading to low data transmission efficiency in the computer cluster.

[0166] In view of this, an embodiment of the present application provides a computer cluster and a data transmission method applied to the computer cluster to solve the problems of low data transmission efficiency and large transmission delay between computing nodes.

[0167] like Figure 3 As shown, Figure 3 A schematic diagram of the architecture of a computer cluster provided in an embodiment of the present application. Figure 3The computer cluster may include multiple computing nodes, storage nodes, and CXL links. The multiple computing nodes may be computing node 1, computing node 2, computing node 3, ..., and computing node N. The number of storage nodes may be one or more. The multiple may be two or more. Figure 3 Taking multiple storage nodes as an example for description, the multiple storage nodes may be storage node 1, storage node 2, ... and storage node M. Among them, M and N may be the same, or M and N may be different, which is not limited in the embodiment of the present application.

[0168] Multiple computing nodes and multiple storage nodes may be connected to the CXL link, that is, multiple computing nodes and multiple storage nodes may be connected via the CXL link.

[0169] The computer cluster may be a computer cluster that needs to perform large data transmission. For example, the computer cluster may be an AI training cluster, a distributed database, or other types of clusters.

[0170] The computing node may be a computing device that can perform data read and write operations. For example, the computing node includes but is not limited to a server, a laptop computer, a desktop computer, a tablet computer, a single-chip microcomputer, a multimedia player, an artificial intelligence device, a wearable device, an Internet of Things device, or a virtual reality / augmented reality / mixed reality device, a mobile phone, and other computing devices.

[0171] The storage node may be a device with storage function. For example, the storage node may include dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), solid state disk (SSD), and persistent memory (PMEM). The storage node may also be a network card, a graphics processing unit (GPU) card, a field programmable gate array (FPGA) card, or other devices with storage function and supporting CXL technology.

[0172] The CXL link may include at least one CXL device, which may be a multi-host CXL device or a CXL switch device.

[0173] In some embodiments, when the CXL device may be a multi-host CXL device, the storage node may include a DRAM, SDRAM, SSD, PMEM, or a Dual Inline Memory Modules (DIMM) memory module.

[0174] When the CXL device can be a CXL switching device, the storage node can include a controller and a memory, wherein the controller can include a memory expansion (CXL memory expander) chip, a CXL memory controller (CXL memory expandercontroller), or a CXL memory pooling (CXL memory expander pooling) chip, and the memory can include DRAM, SDRAM, SSD, PMEM or DIMM memory stick. It can be understood that the present application does not limit the specific structure of the storage node, as long as the computing node can use the storage space of the storage node through the CXL device.

[0175] The multi-host CXL device may include multiple compute node interfaces and one or more storage node interfaces. For any one of the compute node interfaces, the multi-host CXL device may be connected to a compute node via the compute node interface. For any one of the storage node interfaces, the multi-host CXL device may be connected to a storage node via the storage node interface.

[0176] The multi-host CXL device may include, for example, a multi-host CXL memory expander chip, a multi-host CXL memory expander controller, or a CXL memory expander pooling chip.

[0177] The CXL switch device may include one or more computing node interfaces and / or one or more storage node interfaces. For any computing node interface, the multi-host CXL device may be connected to a computing node via the computing node interface. For any storage node interface, the multi-host CXL device may be connected to a storage node via the storage node interface.

[0178] Optionally, the CXL switching device may further include one or more device interfaces. For any device interface, the CXL switching device may be connected to another CXL switching device via the device interface.

[0179] The CXL switching device may be, for example, a CXL switch, which may include a CXL switch chip.

[0180] Optionally, the computer cluster may further include a management node. The management node may include a node running a management program (fabric manager, FM). The FM may be a program for managing the storage space of the storage nodes in the computer cluster.

[0181] In one example, the management node may be an independent node independent of the computing node, the storage node, and the CXL link. Figure 3 As shown, the management node can be connected to the storage nodes and the computing nodes through CXL links.

[0182] For example, the management node may be an ARM (Advanced RISC (Reduced Instruction Set Computer) Machine) processor, a BMC or other processors, and the FM runs on the processor.

[0183] In another exemplary embodiment, FM can also be a program that can run on any computing node, any storage node or CXL device in the computer cluster. If FM runs on any computing node, the computing node can be a management node. If FM runs on any storage node, the storage node can be a management node. If FM runs on a CXL device, the CXL device can be a management node.

[0184] It should be noted that the embodiments of the present application do not limit the specific operating position of the FM. Figure 3 The management node is merely described by way of example and does not constitute a limitation on the management node.

[0185] In the above computer cluster, the CXL device reads and writes data at a relatively fast speed. Figure 4 As shown, Figure 4 A schematic diagram of the speed of reading and writing data through a CXL device provided in an embodiment of the present application. Figure 4 , Figure 4 The horizontal axis represents the operation mode of the data, which can be read and write; Figure 4 The vertical axis represents the speed of operations on data.

[0186] like Figure 4 As shown in Figure 1, the speed of reading data through CXL devices can reach 23.8GB / S, and the speed of writing data can reach 12GB / S. Currently, the speed of reading and writing data through the Internet is about 3GB / S. It can be seen that the speed of reading and writing data through CXL devices is much higher than the speed of reading and writing data through the Internet.

[0187] It should be noted that Figure 4The minimum read and write speeds that can be achieved when reading and writing data through the CXL device are only exemplified. In actual implementation, the speed of reading data and the speed of writing data of the CXL device may be faster when the type of the CXL device is different. Figure 4 It does not limit the speed at which the CXL device can read or write data.

[0188] In the data transmission method applied to the above-mentioned computer cluster provided in the embodiment of the present application, the computing nodes in the computer cluster can store the data or messages that need to be transmitted to another computing node in the CXL device, that is, the computing nodes in the computer cluster can transmit data and messages through the CXL device. Since the speed of reading and writing data through the CXL device is much higher than the speed of reading and writing data through the Internet, the data transmission method provided in the embodiment of the present application makes the data transmission speed between the computing nodes faster, and can avoid the data transmission being limited by the Internet bandwidth, improves the data transmission efficiency in the computer cluster, and can further improve the working efficiency of the computer cluster. For example, taking the computer cluster as an AI training cluster as an example, when the data transmission efficiency of the AI ​​training cluster is improved, the training speed of the AI ​​training cluster can also be improved.

[0189] The technical solutions of the embodiments of the present application are described in detail with specific embodiments below. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.

[0190] Figure 5 A flow chart of a data transmission method provided in an embodiment of the present application. Figure 5 , the method may include:

[0191] S501 . A first computing node stores target data in a first storage location through a CXL device.

[0192] The data transmission method provided in this embodiment can be applied to Figure 3 The computer cluster shown includes multiple computing nodes, storage nodes, and a CXL link. The CXL link may include one or more CXL devices.

[0193] Multiple computing nodes are connected to storage nodes through CXL devices, and the storage nodes include message space and data space.

[0194] The data space can be part or all of the storage space on the storage node. The data space can be used to store data exchanged between computing nodes.

[0195] The message space may be part or all of the storage space on the storage node. The message space may be used to store notification messages corresponding to the data.

[0196] The first computing node may be any computing node among the multiple computing nodes.

[0197] The first storage location may be a storage location in the data space.

[0198] In this embodiment, the first computing node may store the target data in the first storage location by using a storage instruction (Store) through a CXL device.

[0199] Specifically, the first computing node may send the target data to the CXL device, and request the CXL device to store the target data in the first storage location.

[0200] Optionally, before the first computing node stores the target data in the first storage location, it may also determine the first storage location in the data space.

[0201] In this embodiment, the number of storage nodes may be one or more, wherein a plurality means two or more than two.

[0202] In an example, the number of storage nodes may be one, and the one storage node may include a data space and a message space. That is, the data space may be part of the storage space on the one storage node.

[0203] In another example, there may be multiple storage nodes. For any storage node, all or part of the storage space on the storage node may be data space. The message space and the data space may be located in the same storage node or in different storage nodes.

[0204] In this embodiment, the first storage location may be used to store the target data. Therefore, the first computing node may determine the first storage location in the data space according to the size of the target data.

[0205] Specifically, the first computing node determines a candidate storage node, which includes a data space; the first computing node determines a target storage node among the candidate storage nodes based on the data size of the target data, and determines a first storage location in the data space of the target storage node, and the remaining storage space of the data space of the target storage node is greater than or equal to the data size of the target data.

[0206] In this embodiment, the first computing node determines the target storage node from the candidate storage nodes according to the data size of the target data, and determines the first storage location in the data space of the target storage node, including at least the following two situations:

[0207] Case 1: The first computing node can determine the target storage node from all candidate storage nodes;

[0208] Case 2: The first computing node can determine the target storage node from some of the candidate storage nodes.

[0209] The above two situations are explained below respectively.

[0210] In case 1, the number of storage nodes may be one or more, and the storage nodes include candidate storage nodes, and the number of candidate storage nodes may also be one or more. The first computing node may determine an available storage node from the candidate storage nodes, and determine a target storage node from the available storage nodes. The available storage node may be a candidate storage node whose remaining storage space in the data space is greater than or equal to the data size of the target data.

[0211] Exemplarily, assuming that the computer cluster includes one storage node, and the one storage node includes a data space and a message space, then the one storage node is a candidate storage node. Assuming that the remaining storage space in the data space of the candidate storage node is larger than the data size of the target data, the first computing node may determine the candidate storage node as an available storage node, and may determine the available storage node as a target storage node.

[0212] It should be noted that, if there are multiple available storage nodes, the first computing node may determine a storage node as a target storage node from the multiple available storage nodes according to a first preset method.

[0213] The first preset method can be set according to actual needs, and this embodiment does not limit this. For example, the first preset method can be to determine the storage node with the smallest remaining storage space of the data space among multiple available storage nodes as the target storage node, so that the size of the remaining storage space of the target storage node data space can be closest to the size of the target data, and the available storage nodes can be reasonably used to avoid wasting the available storage nodes with larger remaining storage space of the data space; or, determine the storage node closest to the first computing node among multiple available storage nodes as the target storage node, so that the storage path of the target data can be the shortest and the storage speed can be the fastest.

[0214] After determining the target storage node, the first computing node may determine the first storage location in the remaining storage space of the data space in the target storage node according to the method for determining the first storage location.

[0215] It should be noted that the method for determining the first storage location can be set according to actual needs, and this embodiment does not limit this. For example, the first computing node can determine the continuous storage space starting from the minimum storage address in the remaining storage space of the data space and having a storage space size equal to the data size of the target data as the first storage location.

[0216] In case 1, any storage node to be selected in the computer cluster can be used as the target storage node, so that the utilization rate of the storage nodes in the computer cluster is higher.

[0217] In case 2, the number of storage nodes may be one or more, and the number of storage nodes to be selected may also be one or more. The first computing node may determine an available storage node from the storage nodes to be selected, and determine a target storage node from the available storage nodes. The available storage node may be a storage node to be selected whose remaining storage space in the data space is greater than or equal to the data size of the target data.

[0218] Specifically, the first computing node can obtain storage configuration information corresponding to the first computing node, the storage configuration information includes node information of a preset storage node corresponding to the first computing node, and a preset storage area in the preset storage node, and the selected storage node includes the preset storage node; the first computing node determines the target storage node in the preset storage node and determines the first storage location in the preset storage area of ​​the target storage node according to the data size of the target data and the storage configuration information, and the remaining storage space of the preset storage area of ​​the target storage node is greater than or equal to the data size of the target data.

[0219] The preset storage area in the preset storage node may be a storage area allocated to the first computing node among the plurality of storage nodes to be selected. The first computing node may store data in the preset storage area in the preset storage node.

[0220] The node information of the preset storage node may include: a node identifier of the preset storage node, etc.

[0221] It should be noted that, for any preset storage node, the preset storage area in the preset storage node may be a storage area allocated to the first computing node by the computer cluster during the initial configuration process; or, the preset storage area in the preset storage node may be a storage area allocated to the first computing node by the computer cluster based on the needs of the first computing node.

[0222] In this manner, the first computing node may determine a preset storage node whose remaining preset storage space is greater than or equal to the data size of the target data as the target storage node.

[0223] It should be noted that if there are multiple preset storage nodes whose remaining preset storage space is greater than or equal to the data size of the target data, the first computing node can determine a preset storage node as the target storage node from multiple qualified preset storage nodes according to the second preset method.

[0224] The second preset method can be set according to actual needs, and this embodiment does not limit this. For example, the second preset method can be to determine the storage node with the smallest remaining preset storage space in the data space among multiple preset storage nodes that meet the conditions as the target storage node; or to determine the storage node closest to the first computing node among multiple preset storage nodes that meet the conditions as the target storage node, etc.

[0225] After determining the target storage node, the first computing node may determine the first storage location in the remaining preset storage space of the target storage node according to the method for determining the first storage location.

[0226] It should be noted that the method for determining the first storage location can be set according to actual needs, and this embodiment does not limit this. For example, the first computing node can determine the continuous preset storage space starting from the minimum storage address in the remaining preset storage space and having a storage space size equal to the data size of the target data as the first storage location.

[0227] In the above method, a corresponding storage area can be allocated to the first computing node, and the first computing node can determine the target storage node and the first storage location in the corresponding storage area, avoiding the first computing node determining the target storage node and the first storage location among all the candidate storage nodes, so that the first computing node determines the target storage node and the first storage location faster, further improving the storage speed of the first computing node.

[0228] S502: The first computing node stores a notification message corresponding to the target data in a second storage location through a CXL device.

[0229] The second storage location may be a storage location in the message space.

[0230] In this embodiment, the first computing node may store the notification message in the second storage location by using a store instruction (Store) through the CXL device.

[0231] The notification message includes location information of the first storage location and an identifier of the second computing node, and the notification message is used to inform the second computing node that the target data is stored in the first storage location.

[0232] The second computing node is any computing node among the plurality of computing nodes except the first computing node. The number of the second computing nodes may be one or more.

[0233] The location information of the first storage location may include a node identifier of the target storage node, the first storage location, and the like.

[0234] The first storage location may be represented by a start storage address and an end storage address; or, the first storage location may be represented by a start storage address and a data size of the target data.

[0235] In an example, the content of the notification message may be as shown in Table 1-1:

[0236] Table 1-1

[0237]

[0238]

[0239] In another example, the notification message may further include more content, and the content included in the notification message may be as shown in Table 1-2:

[0240] Table 1-2

[0241]

[0242] As shown in Table 1-2, based on Table 1-1, the notification message may also include the location of the target storage node in the computer cluster, the node ID of the source computing node, the node ID of the target computing node, the timeout configuration, a timestamp or one or more of the message types, etc.

[0243] The node identifier of the source computing node may be the node identifier of the notification message sender, that is, the node identifier of the source computing node may be the node identifier of the first computing node. The node identifier of the source computing node may be used to indicate the source of the notification message.

[0244] The node identifier of the target computing node may be the node identifier of the notification message recipient, that is, the node identifier of the target computing node may be the node identifier of the second computing node.

[0245] The timestamp may be the time at which the first computing node sends the notification message.

[0246] The timeout configuration can be used to indicate the waiting time when reading the target data corresponding to the notification message.

[0247] It should be noted that when the second computing node reads the target data corresponding to the notification message according to the notification message, if the target data is not successfully read within the time indicated by the timeout configuration, the second computing node can stop reading the target data and return a response message of read failure to the first computing node.

[0248] Exemplarily, assuming that the waiting time indicated by the timeout configuration is 10s, if the second computing node successfully reads the target data within 10s, it can return a response message of successful reading to the first computing node; if the second computing node fails to successfully read the target data within 10s, it can return a response message of failed reading to the first computing node.

[0249] The message type can be a notification type message or a response type message.

[0250] Among them, the notification type message can be used to inform the computing node that receives the notification message of the storage location of the target data; the response type message can be used to reply the reading result of the target data to the computing node that sends the notification message.

[0251] It should be understood that the notification message sent by the first computing node to the second computing node may be a notification type message.

[0252] In this embodiment, the first computing node may send a notification message to the CXL device, and may request the CXL device to store the notification message in the second storage location.

[0253] The notification message is used to inform the second computing node that the target data is stored in the first storage location.

[0254] In this embodiment, in at least the following two situations, the first computing node may store the target data in the first storage location, and may store the notification message corresponding to the target data in the second storage location:

[0255] Case 1: The second computing node requests to obtain target data.

[0256] In this case, the second computing node may send a request message to the first computing node. The request message is used to request to obtain the target data. After receiving the request message, the first computing node may store the target data in the first storage location through the CXL device according to the request message, and may store a notification message corresponding to the target data in the second storage location to inform the second computing node that the target data is stored in the first storage location.

[0257] In this case, the number of the second computing node may be one.

[0258] Case 2: The first computing node actively stores the target data.

[0259] In this case, data can be shared between the first computing node and the second computing node. If the first computing node needs to update all or part of the shared data, the updated shared data (target data) can be stored in the first storage location, and a notification message corresponding to the target data can be stored in the second storage location to inform the second computing node that the target data is stored in the first storage location.

[0260] In this case, the number of the second computing nodes may be one or more.

[0261] Optionally, before storing the notification message in the second storage location, the first computing node may also determine a second storage location in the message space.

[0262] In this embodiment, when the computer cluster is initialized, the management node in the computer cluster can generate configuration information of the message space, so as to set the corresponding storage area in the storage node as the message space according to the configuration information. The configuration information of the message space may include the address of the message space, the size of the message space, etc.

[0263] Optionally, the management node may receive configuration information of the message space input by a technician through an input tool.

[0264] The input tool may be a command line tool (Command-line interface, Cli) or the like.

[0265] The configuration information of the message space may be input into the management node in the form of a command; or, the configuration information of the message space may be input into the management node in the form of a static file.

[0266] After the management node generates the configuration information of the message space, it can send the configuration information of the message space to other computing nodes in the computer cluster. Optionally, the management node can send the configuration information of the message space to other computing nodes by broadcasting or other message mechanisms.

[0267] In this embodiment, the address of the message space included in the configuration information may be the physical address of the message space. For any computing node in the computer cluster, after receiving the configuration information, the computing node may map the physical address of the message space to the process space to obtain the virtual address of the message space; the computing node may perform read and write operations in the message space according to the virtual address of the message space.

[0268] It should be understood that different computing nodes map to different virtual addresses, and computing nodes can obtain virtual addresses based on their own mappings to perform read and write operations on the message space. Figure 6 As shown, Figure 6 A schematic diagram of address mapping of a message space provided in an embodiment of the present application. Figure 6 , the computer cluster may include a storage node, a computing node 1 and a computing node 2.

[0269] The storage node may include a message space. The physical address of the message space may be represented by a starting physical address and an ending physical address of a storage area occupied by the message space.

[0270] like Figure 6 As shown, computing node 1 can map the physical address of the message space to virtual address P1, and computing node 2 can map the physical address of the message space to virtual address P2. In the specific implementation process, computing node 1 can perform read and write operations in the message space according to virtual address P1, and computing node 2 can perform read and write operations in the message space according to virtual address P2.

[0271] In this embodiment, the message space may be divided into a plurality of storage areas of equal size, each storage area may be a message bit. In other words, the message space may include a plurality of message bits. Figure 7 As shown, Figure 7 A schematic diagram of a message space provided in an embodiment of the present application. Figure 7 , the message space may include message bit 1, message bit 2, message bit 3, ..., and message bit K. Each message bit may be used to store a notification message.

[0272] In this embodiment, for any message bit, the position of the message bit, whether the message bit stores a notification message, etc., can be recorded in the description information of the message space. The description information of the message space can be stored in the message space.

[0273] In this embodiment, the first computing node may determine an idle message bit among the multiple message bits as the second storage location.

[0274] In this embodiment, the first computing node determines the second storage location in multiple message bits, including at least the following two situations:

[0275] Case 1: The first computing node determines the second storage location according to the first description information of the message space;

[0276] Case 2: The first computing node determines the second storage location according to the second description information of the message bit to be selected.

[0277] In situation 1, the first computing node obtains first description information of the message space, the first description information includes the number of available message bits and the position of each available message bit, the available message bit is a message bit in which a notification message is not stored among multiple message bits; the first computing node determines a second storage position in the available message bits based on the first description information.

[0278] The position of the available message bit can be represented by the starting address of the available message bit. That is, the position of the available message bit can be the starting address of the available message bit.

[0279] like Figure 8 As shown, Figure 8A schematic diagram of another message space provided in an embodiment of the present application. Figure 8 , the message space may include multiple message bits and first description information.

[0280] The plurality of message bits may be, for example, message bit 1 , message bit 2 , message bit 3 , message bit 4 , and message bit 5 .

[0281] The first description information includes: 2 available message bits, the positions of the available message bits are start address 1 and start address 2. Figure 8 As shown, the starting address of message bit 1 is starting address 1, and the starting address of message bit 2 is starting address 2. Therefore, it can be seen that the message space includes 2 available message bits, and the 2 available message bits can be message bit 1 and message bit 2.

[0282] In case 1, if the number of available message bits is one, the first computing node can determine the available message bit as the second storage location; if the number of available message bits is multiple, the first computing node can determine the second storage location among the multiple available message bits according to a third preset method.

[0283] It should be noted that the third preset mode can be set according to actual needs, and this embodiment does not limit this. For example, the first computing node can determine the available message bit with the smallest starting storage address as the second storage location.

[0284] In case 1, any message bit in the computer cluster can be used as the second storage location, so that the utilization rate of the message bits in the computer cluster is high.

[0285] In situation 2, the first computing node determines the message bit to be selected corresponding to the second computing node; the first computing node obtains second description information of the message bit to be selected, the second description information includes the number of idle message bits and the position of each idle message bit, the idle message bit is a message bit in the message bit to be selected that does not store a notification message; the first computing node determines the second storage location based on the second description information.

[0286] The message bit to be selected may be a message bit allocated to the second computing node among a plurality of available message bits. Any computer point in the computer cluster except the second computing node may store the notification message to be sent to the second computing node in the message bit to be selected.

[0287] The position of the idle message bit can be represented by the starting address of the idle message bit. In other words, the position of the idle message bit can be the starting address of the idle message bit.

[0288] In this embodiment, during the initial configuration of the computer cluster, the computer cluster may allocate a message position to be selected for the second computing node; or, when any computer point in the computer cluster other than the second computing node sends a notification message to the second computing node for the first time, the computer cluster may allocate a message position to be selected for the second computing node.

[0289] like Fig. 9 As shown, Fig. 9 A schematic diagram of another message space provided in an embodiment of the present application. Fig. 9 , the message space may include multiple message bits and second description information.

[0290] The plurality of message bits may be, for example, message bit 1, message bit 2, message bit 3, . . . and message bit K.

[0291] The plurality of message bits may include a to-be-selected message bit corresponding to the second computing node. The to-be-selected message bit may be, for example, message bit 1, message bit 2, and message bit 3.

[0292] The second description information includes: 1 idle message bit, the position of the idle message bit is the starting address 1. Fig. 9 As shown, the starting address of message bit 1 is starting address 1. Therefore, it can be known that the message bits to be selected include 1 idle message bit, and the 1 idle message bit can be message bit 1.

[0293] In situation 2, if the number of idle message bits is one, the first computing node can determine the idle message bit as the second storage location; if the number of idle message bits is multiple, the first computing node can determine the second storage location among the multiple idle message bits according to a fourth preset method.

[0294] It should be noted that the fourth preset mode can be set according to actual needs, and this embodiment does not limit this. For example, the first computing node can determine the idle message bit with the smallest starting storage address as the second storage location.

[0295] In case 2, a message position to be selected can be allocated to the second computing node, and the notification message that the second computing node needs to receive can be stored in the message position to be selected. When the second computing node obtains the notification message, it can only obtain it from the message position to be selected, which avoids the second computing node obtaining the notification message from all message positions, so that the second computing node obtains the notification message faster, further improving the data reading speed of the second computing node and improving the data transmission efficiency of the computer cluster.

[0296] S503: The second computing node obtains a notification message from the message space through the CXL device.

[0297] In this embodiment, for the two situations in which the first computing node determines the second storage location, the second computing node obtains the notification message from the message space through the CXL device. There are at least the following two situations:

[0298] Case 1: The second computing node obtains notification messages from all message positions in the message space;

[0299] Case 2: The second computing node obtains the notification message from the candidate message position in the message space.

[0300] In case 1, the second computing node may obtain first description information of the message space through the CXL device, and the first description information may include the number of unread messages and the positions of message bits corresponding to the unread messages; when the number of unread messages is greater than zero, the second computing node may obtain the notification message from the second storage location through the CXL device.

[0301] Specifically, when the number of unread messages is greater than zero, the second computing node can traverse the message bits corresponding to the unread messages through the CXL device, and can obtain the node identifier of the target computing node included in each unread message. If the node identifier of the target computing node is consistent with the node identifier of the second computing node, the second computing node can read the corresponding notification message through the CXL device.

[0302] In situation 2, the second computing node can obtain the second description information of the message position to be selected, and the second description information includes the number of unread messages in the message position to be selected, and the position of the message position corresponding to the unread message; when the number of unread messages is greater than zero, the second computing node obtains the notification message from the second storage location through CXL.

[0303] Specifically, when the number of unread messages is greater than zero, the second computing node may determine that the unread messages are notification messages, and may read the notification messages through the CXL device.

[0304] S504 : The second computing node reads target data from the first storage location through the CXL device according to the notification message.

[0305] After obtaining the notification message, the second computing node may parse the content included in the notification message and read the target data at the first storage location according to the content included in the notification message.

[0306] Optionally, the second computing node may use a read instruction (Load) to read target data from a target storage location of a target storage node.

[0307] It should be noted that if the first computing node sends target data to the second computing node via an Internet link, the target data transmission process can be as follows: first, the first computing node can transfer the target data from the hard disk of the first computing node to the memory of the first computing node; second, the first computing node can transfer the target data from the memory of the first computing node to the network card of the first computing node.

[0308] Correspondingly, the second computing node can read the target data from the network card of the first computing node through the network card of the second computing node; secondly, the second computing node can transfer the target data from the network card of the second computing node to the memory of the second computing node, and can read and transfer the target data from the memory of the second computing node to the hard disk of the second computing node.

[0309] Therefore, it can be seen that the target data needs to be transmitted multiple times, and each transmission requires the reading and writing of the target data. Therefore, when transmitting data (target data) through the Internet link, on the one hand, the data needs to be read and written multiple times, which makes the data transmission rate low; on the other hand, the data reading and writing speed is limited by the Internet bandwidth resources. If the bandwidth is small, the data transmission efficiency will be low.

[0310] In the data transmission method provided in this embodiment, the first computing node can store the target data in the first storage location of the target storage node through the CXL device, which can realize the rapid transmission of the target data, and can write a notification message in the message space through the CXL device to notify the second computing node that the target data is stored in the first storage location. The second computing node quickly reads the target data from the first storage location of the target storage node through the CXL device according to the notification message. On the one hand, there is no need to perform data reading and writing operations during the transmission of data (target data) from the first computing node to the second computing node, that is, there is no need to copy data, which improves the data transmission efficiency and reduces the data reading and writing costs; on the other hand, the data reading and writing speed through the CXL device is fast and is not limited by the Internet bandwidth, which further improves the transmission efficiency of notification messages and data.

[0311] It is understandable that the second computing node can obtain the notification message sent by the first computing device through the CXL device, and can quickly read the target data at the target storage location of the target storage node through the CXL device according to the notification message. Through the above method, the decoupling of the target data and the notification message is achieved, and the data transmission efficiency in the computer cluster is improved.

[0312] It is understandable that the second computing node can complete the corresponding cluster task according to the read target data.

[0313] S505 . The second computing node sends a response message to the first computing node through the CXL device. The response message includes a read result of the target data. The read result is a read success or a read failure.

[0314] Correspondingly, the first computing node can obtain the response message sent by the second computing node through the CXL device.

[0315] Optionally, if the read result is a read failure, the response message may further include the reason for the read failure.

[0316] It should be understood that the message type of the response message may be a response-type message.

[0317] In this embodiment, when the second computing node sends a response message to the first computing node through the CXL device, a third storage location may be determined in the message space, and the response message may be stored in the third storage location through the CXL device.

[0318] It should be noted that the process by which the second computing node determines the third storage location is consistent with the process by which the first computing node determines the second storage location, and for details, please refer to S503; the process by which the second computing node stores the response message in the third storage location is consistent with the process by which the first computing node stores the notification message in the second storage location, and for specific implementation methods, please refer to S504, which will not be repeated here.

[0319] In the data transmission method provided in this embodiment, the first computing node can store the target data in the first storage location through the CXL device, and can store the notification message corresponding to the target data in the second storage location through the CXL device. The second computing node can obtain the notification message from the second storage location through the CXL device, and can read the target data from the first storage location through the CXL device according to the notification message. In the above method, the first computing node can transmit the target data and the notification message corresponding to the target data to the second computing node through the CXL device, respectively, so as to realize the decoupling of the target data and the notification message, and improve the data transmission efficiency in the computer cluster.

[0320] It is understandable that in other embodiments, the data transmission method may also include only Figure 5 Alternatively, the data transmission method may also include only Figure 5 S503 and S504 in.

[0321] The following will expand the CXL link, introduce various implementations of the CXL link, and based on the various implementations of the CXL link, introduce data transmission methods corresponding to the various implementations.

[0322] For example, the CXL link may include at least one CXL device. The CXL device may be a multi-host CXL device, or the CXL device may be a CXL switch device.

[0323] Next, combine Figure 10-Figure 15 , respectively, a data transmission method in a computer cluster when the CXL device is a multi-host CXL device and when the CXL device is a CXL switching device is described.

[0324] Next, combine Figure 10-12 , a case where the CXL device is a multi-host CXL device is described.

[0325] First, combine Fig.10 , when the CXL device is a multi-host CXL device, the structure of the computer cluster is described.

[0326] Fig.10 A schematic diagram of the structure of a computer cluster provided in an embodiment of the present application. Fig.10 , the computer cluster may include multiple storage nodes, multiple computing nodes, and multiple host CXL devices. The multiple storage nodes may be storage node 1, storage node 2, ..., and storage node M. The multiple computing nodes may be computing node 1, computing node 2, ..., and computing node N. Among them, M and N may be the same, or M and N may be different, which is not limited in this embodiment. Of course, in other embodiments, the number of storage nodes may be one, and the number of computing nodes may be two or more.

[0327] The number of the multi-host CXL devices may be one or more, and the multiple computing nodes are connected to the multiple storage nodes via the one or more multi-host CXL devices.

[0328] When there are multiple multi-host CXL devices, the multi-host CXL devices may be directly or indirectly connected to each other. For example, for any two multi-host CXL devices, the two multi-host CXL devices may be directly connected via connection interfaces on the CXL devices; or the two multi-host CXL devices may be respectively connected to the same computing node to achieve indirect connection between the two multi-host CXL devices.

[0329] When the number of multi-host CXL devices is one, such as Fig.10 As shown, Fig.10 For example, a multi-host CXL device is used for description. Each storage node can be connected to the multi-host CXL device, and each computing node can be connected to the multi-host CXL device. In other words, multiple storage nodes and multiple computing nodes can be connected via the multi-host CXL device.

[0330] For any computing node, the computing node may communicate with one or more other computing nodes in the computer cluster through the multi-host CXL device; or the computing node may communicate with a storage node in the computer cluster through the multi-host CXL device.

[0331] It should be noted that Fig.10 Examples in Figure 3 Based on the embodiment, the case where the CXL device is a multi-host CXL device is further described. Fig.10 For other information about compute nodes, storage nodes, and CXL links, see Figure 3 , which will not be elaborated here.

[0332] Secondly, combined Fig.11 , a data transmission method in a computer cluster is described when the CXL device is a multi-host CXL device.

[0333] Fig.11 A flowchart of another data transmission method provided in an embodiment of the present application. Fig.11 , the method may include:

[0334] S1101. A first computing node determines a first storage location in a data space.

[0335] In this embodiment, the first computing node may be Fig.10 Any computing node in, that is, the first computing node can be any computing node among computing node 1, computing node 2, . . . and computing node N.

[0336] It should be noted that the specific implementation method of S1101 can refer to S501 and will not be repeated here.

[0337] S1102 : A first computing node stores target data in a first storage location through a multi-host CXL device.

[0338] In this embodiment, the first computing node sends a first storage request to the multi-host CXL device, the first storage request including location information of the first storage location and target data; wherein the first storage request is used to request the multi-host CXL device to store the target data in the first storage location.

[0339] Specifically, the first computing node may request the multi-host CXL device to store the target data in the first storage location.

[0340] It should be noted that since the speed of reading and writing data through a multi-host CXL device is much faster than the speed of reading and writing data through an Internet link, and the target data is generally large-scale big data, this embodiment avoids storing the target data through an Internet link, thereby avoiding the bandwidth resources of the Internet link from affecting the transmission efficiency of the target data.

[0341] S1103. The first computing node determines a second storage location in the message space.

[0342] S1104: The first computing node stores a notification message corresponding to the target data in a second storage location through the multi-host CXL device.

[0343] In this embodiment, the first computing node sends a third storage request to the multi-host CXL device, the third storage request including location information of the second storage location and a notification message; wherein the third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.

[0344] Specifically, the first computing node may request the multi-host CXL device to store the notification message in the second storage location.

[0345] In this embodiment, the target data and the notification message corresponding to the target data can be transmitted through the multi-host CXL device, so as to avoid the transmission speed of the target data and the notification message being limited by the Internet bandwidth resources.

[0346] It should be noted that the specific implementation method of S1103-S1104 can be found in S503-S504 and will not be repeated here.

[0347] S1105 . The second computing node obtains a notification message from the message space through the multi-host CXL device.

[0348] In this embodiment, the second computing node can be Fig.10 Any one or more computing nodes except the first computing node.

[0349] For example, Fig.10 For example, assuming that the first computing node is computing node 1, the second computing node can be any one or more computing nodes among computing node 2, computing node 3, ... and computing node N.

[0350] The specific implementation method of the second computing node obtaining the notification message may refer to S505.

[0351] S1106 . The second computing node reads target data from the first storage location through the multi-host CXL device according to the notification message.

[0352] In this embodiment, the second computing node may parse the content of the notification message to obtain the first storage location of the target data, and may read the target data at the first storage location through the multi-host CXL device.

[0353] Optionally, the second computing node may send a read request to the multi-host CXL device, and the read request may include the first storage location. The multi-host CXL device may obtain the target data from the first storage location according to the read request. After the multi-host CXL device obtains the target data, the second computing node may read the target data from the multi-host CXL device, and may process a corresponding cluster task in the computer cluster according to the target data.

[0354] S1107 . The second computing node sends a response message to the first computing node through the multi-host CXL device. The response message includes a read result of the target data. The read result is a read success or a read failure.

[0355] In this embodiment, when the second computing node sends a response message to the first computing node through the multi-host CXL device, a third storage location may be determined in the message space, and the response message may be stored in the third storage location through the multi-host CXL device.

[0356] It should be noted that the process by which the second computing node determines the third storage location is consistent with the process by which the first computing node determines the second storage location, and for details, please refer to S503; the process by which the second computing node stores the response message in the third storage location is consistent with the process by which the first computing node stores the notification message in the second storage location, and for specific implementation methods, please refer to S504, which will not be repeated here.

[0357] In the data transmission method provided in this embodiment, the first computing node can store the target data in the first storage location through the multi-host CXL device, and can store the notification message corresponding to the target data in the second storage location through the multi-host CXL device. The second computing node can obtain the notification message from the second storage location through the multi-host CXL device, and can read the target data from the first storage location through the multi-host CXL device according to the notification message. In the above method, data (target data) and messages (notification messages and response messages) can be transmitted between the first computing node and the second computing node respectively through the multi-host CXL device. Through the above method, the decoupling of data (target data) and messages can be achieved. In addition, the speed of reading and writing data through the multi-host CXL device is relatively high, and the reading and writing of data through the multi-host CXL device is not limited by the Internet bandwidth. Therefore, the data transmission method provided in the embodiment of the present application can improve the data transmission efficiency in the computer cluster.

[0358] Finally, combine Fig.12, through a specific example, the data transmission process in the computer cluster when the CXL device is a multi-host CXL device is explained.

[0359] Fig.12 A data transmission flow diagram provided in this embodiment of the present application. Fig.12 The computer cluster may include storage node 1, storage node 2, storage node 3, a multi-host CXL device, computing node 1, computing node 2, computing node 3, and computing node 4.

[0360] Storage Node 1, Storage Node 2, Storage Node 3, Compute Node 1, Compute Node 2, Compute Node 3, and Compute Node 4 may all be connected to a multi-host CXL device.

[0361] Assume that the first computing node is computing node 1, the second computing node is computing node 4, storage node 1 includes a message space, and storage node 1, storage node 2, and storage node 3 include a data space (not shown in the figure).

[0362] Assume that the first computing node determines the first storage location as storage location 1 in storage node 2; and the first computing node determines the second storage location in the message space (not shown in the figure). Then the target data transmission process can be:

[0363] First, computing node 1 can store target data in storage location 1 of storage node 2 through the multi-host CXL device; computing node 1 can store a notification message corresponding to the target data in the second storage location in the message space through the multi-host CXL device. Secondly, computing node 4 can obtain the notification message from the second storage location through the multi-host CXL device, and can parse the notification message to obtain storage location 1 (first storage location); computing node 4 can read the target data from storage location 1 of storage node 2 through the multi-host CXL device.

[0364] Optionally, in other embodiments, the number of the second computing nodes may be multiple. If the number of the second computing nodes is multiple, the first computing node may transmit a notification message to each second computing node through the multi-host CXL device, so that each second computing node may obtain target data through the multi-host CXL device according to the notification message.

[0365] Next, combine Figure 13-Figure 15 , a case where a CXL link includes at least one CXL device, and the CXL device is a CXL switching device is described.

[0366] First, combine Fig.13 , the structure of the computer cluster is described when the CXL device is a CXL switching device.

[0367] Fig.13 This is a schematic diagram of another computer cluster structure provided in the embodiment of the present application. Fig.13 The computer cluster may include multiple computing nodes, CXL switching devices, and storage nodes. For example, the multiple computing nodes may be H1, H2, H3, H4, H5, H6, H7, H8, and H9. The number of storage nodes may be one or more. Fig.13 Taking multiple storage nodes as an example for description, the multiple storage nodes may be D1, D2, D3, D4, D5, D6 and D7.

[0368] It should be noted that the number of CXL switching devices may be one or more. When the number of CXL switching devices is multiple, for example, the multiple CXL switching devices may be CXL switching device 1, CXL switching device 2, CXL switching device 3, CXL switching device 4, and CXL switching device 5. All CXL switching devices in the computer cluster may be interconnected. The interconnection may be a direct connection, or the interconnection may be an indirect connection. For example, CXL switching device 1 may be directly connected to CXL switching device 4, and CXL switching device 1 may also be indirectly connected to CXL switching device 5 through CXL switching device 4.

[0369] Each computing node may be connected to at least one CXL switch device. For example, H1 may be connected to CXL switch device 1.

[0370] Each storage node may be connected to a CXL switch device. For example, D1 may be connected to CXL switch device 4.

[0371] Each CXL switch device may be connected to at least one computing node and / or storage node.

[0372] It should be noted that Fig.13 The structure of the computer cluster is only exemplified and does not constitute a limitation on the structure of the computer cluster. The position of each computing node and each storage node in the computer cluster can be set according to actual needs, the number of storage devices and CXL switching devices in the computer cluster can be one or more, and the number of computing nodes / storage nodes connected to each CXL switching device can also be one or more, and each computing node can also be connected to one or more CXL switching devices, which is not limited in this embodiment.

[0373] For any computing node, the computing node can communicate with one or more other computing nodes in the computer cluster through the CXL switching device; or the computing node can communicate with a storage node in the computer cluster through the CXL switching device.

[0374] It should be noted that Fig.13Examples in Figure 3 Based on the embodiment, the case where the CXL device is a CXL switching device is further described. Fig.13 For other information about compute nodes, storage nodes, and CXL links, see Figure 3 , which will not be elaborated here.

[0375] Secondly, combined Fig.14 , a data transmission method in a computer cluster is described when the CXL device is a CXL switching device.

[0376] Fig.14 A flowchart of another data transmission method provided in an embodiment of the present application. Fig.14 , the method may include:

[0377] S1401. A first computing node determines a first storage location in a data space.

[0378] In this embodiment, the first computing node may be Fig.13 Any computing node, that is, the first computing node can be any computing node among H1, H2, H3, H4, H5, H6, H7, H8 and H9.

[0379] It should be noted that the specific implementation method of S1401 can be found in S501 and will not be repeated here.

[0380] S1402: The first computing node stores target data in a first storage location through a CXL switching device.

[0381] In this embodiment, the first computing node may send a second storage request to the CXL switch device, the second storage request including location information of the first storage location and target data. The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.

[0382] Optionally, the first computing node may send the second storage request to a first CXL switching device to which the first computing node is directly connected.

[0383] In this embodiment, the target storage node may be directly connected to the first CXL switch device; or, the target storage node may not be directly connected to the first CXL switch device.

[0384] In a possible implementation, if the target storage node is directly connected to the first CXL switch device, the first CXL switch device may store the target data in the first storage location of the target storage node according to the second storage request.

[0385] In another possible implementation, if the target storage node is not directly connected to the first CXL switch device, but the CXL switch device directly connected to the target storage node is directly connected to the first CXL switch device, in this implementation, the first CXL switch device may forward the second storage request to the CXL switch device directly connected to the target storage node, so that the CXL switch device directly connected to the target storage node stores the target data in the first storage location of the target storage node.

[0386] In another possible implementation, if the target storage node is not directly connected to the first CXL switch device, and the CXL switch device directly connected to the target storage node is not directly connected to the first CXL switch device, in this embodiment, the first CXL switch device may forward the second storage request to the CXL switch device directly connected to the target storage node through at least one other CXL switch device, so that the CXL switch device directly connected to the target storage node stores the target data in the first storage location of the target storage node.

[0387] It should be noted that since the speed of reading and writing data through the CXL switching device is much faster than the speed of reading and writing data through the Internet link, and the target data is generally large-scale big data, this embodiment avoids storing the target data through the Internet link, thereby avoiding the bandwidth resources of the Internet link from affecting the transmission efficiency of the target data.

[0388] S1403. The first computing node determines a second storage location in the message space.

[0389] S1404: The first computing node stores a notification message corresponding to the target data in a second storage location through the CXL switching device.

[0390] In this embodiment, the first computing node sends a fourth storage request to the CXL switch device, the fourth storage request including location information of the second storage location and a notification message; wherein the fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.

[0391] Optionally, the first computing node may send a fourth storage request to a first CXL switch device to which the first computing node is directly connected.

[0392] In this embodiment, the storage node where the second storage location is located may be directly connected to the first CXL switch device; or, the storage node where the second storage location is located may not be directly connected to the first CXL switch device.

[0393] In a possible implementation, if the storage node where the second storage location is located is directly connected to the first CXL switch device, the first CXL switch device may store the notification message in the second storage location according to the fourth storage request.

[0394] In another possible implementation, if the storage node where the second storage location is located is not directly connected to the first CXL switch device, but the CXL switch device directly connected to the storage node where the second storage location is located is directly connected to the first CXL switch device, in this embodiment, the first CXL switch device may forward the fourth storage request to the CXL switch device directly connected to the storage node where the second storage location is located, so that the CXL switch device directly connected to the storage node where the second storage location is located stores the notification message in the second storage location.

[0395] In another possible implementation, if the storage node where the second storage location is located is not directly connected to the first CXL switch device, and the CXL switch device directly connected to the storage node where the second storage location is located is not directly connected to the first CXL switch device, in this manner, the first CXL switch device may forward the fourth storage request to the CXL switch device directly connected to the storage node where the second storage location is located through at least one other CXL switch device, so that the CXL switch device directly connected to the storage node where the second storage location is located stores the notification message in the second storage location.

[0396] In this embodiment, the target data and the notification message corresponding to the target data can be transmitted through the CXL switching device, so as to avoid the transmission speed of the target data and the notification message being limited by the Internet bandwidth resources.

[0397] It should be noted that the specific implementation method of S1403-S1404 can be found in S503-S504 and will not be repeated here.

[0398] S1405: The second computing node obtains a notification message from the message space through the CXL switching device.

[0399] In this embodiment, the second computing node may be any computing node in the computer cluster except the first computing node.

[0400] For example, Fig.13 For example, the second computing node can be Fig.13 Any one or more computing nodes except the first computing node. Assuming that the first computing node is H1, the second computing node can be any one or more computing nodes among H1, H2, H3, H4, H5, H6, H7, H8 and H9.

[0401] The specific implementation method of the second computing node obtaining the notification message may refer to S505.

[0402] S1406: The second computing node reads target data from the first storage location through the CXL switch device according to the notification message.

[0403] In this embodiment, the second computing node may parse the content of the notification message to obtain the first storage location, and may read the target data at the first storage location through the CXL switch device.

[0404] Optionally, the second computing node may send a read request to a CXL switch device directly connected to the second computing node, and the read request may include the first storage location. The CXL switch device directly connected to the second computing node may directly or indirectly obtain the target data from the first storage location according to the read request. After the CXL switch device directly connected to the second computing node obtains the target data, the second computing node may read the target data from the CXL switch device directly connected to the second computing node, and may process the corresponding cluster task in the computer cluster according to the target data.

[0405] S1407: The second computing node sends a response message to the first computing node through the CXL switch device. The response message includes a read result of the target data. The read result is a read success or a read failure.

[0406] In this embodiment, when the second computing node sends a response message to the first computing node through the CXL switch device, a third storage location may be determined in the message space, and the response message may be stored in the third storage location through the CXL switch device.

[0407] It should be noted that the process by which the second computing node determines the third storage location is consistent with the process by which the first computing node determines the second storage location, and for details, please refer to S503; the process by which the second computing node stores the response message in the third storage location is consistent with the process by which the first computing node stores the notification message in the second storage location, and for specific implementation methods, please refer to S504, which will not be repeated here.

[0408] The data transmission method provided in this embodiment is that the first computing node can store the target data in the first storage location through the CXL switching device, and can store the notification message corresponding to the target data in the second storage location through the CXL switching device. The second computing node can obtain the notification message from the second storage location through the CXL switching device, and can read the target data from the first storage location through the CXL switching device according to the notification message. In the above method, data (target data) and messages (notification messages and response messages) can be transmitted between the first computing node and the second computing node respectively through the CXL switching device. Through the above method, the decoupling of data (target data) and messages can be achieved. In addition, the speed of reading and writing data through the CXL switching device is relatively high, and the reading and writing of data through the CXL switching device is not limited by the Internet bandwidth. Therefore, the data transmission method provided in the embodiment of the present application can improve the data transmission efficiency in the computer cluster.

[0409] Finally, combine Fig.15 , through a specific example, the data transmission process in the computer cluster when the CXL device is a CXL switching device is explained.

[0410] Fig.15 Another data transmission flow diagram provided in this embodiment of the present application. Fig.15 ,exist Fig.13 Based on this, it is assumed that the first computing node is H1, the second computing node is H8, the storage node D6 includes a message space, and the storage nodes D1, D2, D3, D4, D5, D6 and D7 include a data space (not shown in the figure).

[0411] Assume that the first computing node determines the first storage location as storage location 1 in D7; and the first computing node determines the second storage location in the message space (not shown in the figure). Then the target data transmission process can be:

[0412] First, H1 may send a second storage request to CXL switch device 1. CXL switch device 1 may forward the second storage request to CXL switch device 3 through CXL switch device 2, so that CXL switch device 3 can store the target data in storage location 1 of D2 according to the second storage request. Second, H1 may send a fourth storage request to CXL switch device 1. CXL switch device 1 may forward the second storage request to CXL switch device 5 through CXL switch device 2, so that CXL switch device 5 can store the notification message in the second storage location of the message space according to the fourth storage request. Second, H8 may obtain the notification message from the second storage location through switch device 5, switch device 2, and switch device 3, and may parse the notification message to obtain storage location 1 (first storage location). Finally, H8 may read the target data from storage location 1 of D7 through CXL switch device 3.

[0413] Optionally, in other embodiments, the number of the second computing nodes may be multiple. If the number of the second computing nodes is multiple, the first computing node may broadcast a notification message to the multiple second computing nodes through the CXL switching device, so that each second computing node may obtain the target data through the CXL switching device according to the notification message.

[0414] Fig.16 A schematic diagram of a data transmission device provided in an embodiment of the present application. The data transmission device 10 is applied to a first computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node via the CXL device, wherein the storage node includes a message space and a data space, and wherein the data transmission device 10 includes: a processing module 11, wherein:

[0415] The processing module 11 is used for storing target data in a first storage location through the CXL device, wherein the first computing node is any computing node among the plurality of computing nodes, and the data space includes the first storage location;

[0416] The processing module 11 is further configured to store the notification message corresponding to the target data in a second storage location through the CXL device;

[0417] The notification message is used to inform the second computing node that the target data is stored in the first storage location, the second computing node is any computing node among the multiple computing nodes except the first computing node, and the message space includes the second storage location.

[0418] The data transmission device provided in this embodiment can be used to execute the data transmission method performed by the first computing node in the above method embodiment. Its implementation principle and technical effects are similar and will not be described in detail here.

[0419] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;

[0420] The processing module 11 is further used to obtain first description information of the message space, wherein the first description information includes the number of available message bits and the position of each available message bit, wherein the available message bit is a message bit in which no notification message is stored among the multiple message bits;

[0421] The processing module 11 is further configured to determine the second storage location according to the first description information, where the second storage location is a location of any one of the available message bits.

[0422] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;

[0423] The processing module 11 is also used to determine the to-be-selected message position corresponding to the second computing node;

[0424] The processing module 11 is further used to obtain second description information of the message bit to be selected, wherein the second description information includes the number of idle message bits and the position of each idle message bit, and the idle message bit is a message bit in the message bit to be selected that does not store a notification message;

[0425] The processing module 11 is further configured to determine the second storage location according to the second description information, where the second storage location is the location of any one of the idle message bits.

[0426] In a possible implementation, the CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; the processing module 11 is specifically configured to:

[0427] sending a third storage request to the multi-host CXL device, the third storage request including location information of the second storage location and the notification message;

[0428] The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.

[0429] In a possible implementation, the CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device; the processing module 11 is specifically configured to:

[0430] sending a fourth storage request to the CXL switching device, the fourth storage request including the location information of the second storage location and the notification message;

[0431] The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.

[0432] In a possible implementation, the processing module 11 is further configured to:

[0433] Determine a storage node to be selected, wherein the storage node to be selected includes the data space;

[0434] According to the data size of the target data, a target storage node is determined among the candidate storage nodes, and the first storage location is determined in the data space of the target storage node, and the remaining storage space of the data space of the target storage node is greater than or equal to the data size of the target data.

[0435] In a possible implementation, the CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; the processing module 11 is specifically configured to:

[0436] sending a first storage request to the multi-host CXL device, the first storage request including location information of the first storage location and the target data;

[0437] The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.

[0438] In a possible implementation, the CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device; the processing module 11 is specifically configured to:

[0439] sending a second storage request to the CXL switch device, wherein the second storage request includes location information of the first storage location and the target data;

[0440] The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.

[0441] The data transmission device provided in this embodiment can be used to execute the data transmission method performed by the first computing node in the above method embodiment. Its implementation principle and technical effects are similar and will not be described in detail here.

[0442] Fig.17 A schematic diagram of another data transmission device provided in an embodiment of the present application. The data transmission device 20 is applied to a second computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node via the CXL device, wherein the storage node includes a message space and a data space, and wherein the data transmission device 20 includes: an acquisition module 21 and a processing module 22, wherein:

[0443] The acquisition module 21 is used to acquire a notification message from a second storage location through the CXL device, the notification message is used to inform the second computing node that the target data is stored in a first storage location, the first storage location is located in the data space, the second storage location is located in the message space, and the plurality of computing nodes include the second computing node;

[0444] The processing module 22 is configured to read target data from the first storage location through the CXL device according to the notification message.

[0445] The data transmission device provided in this embodiment can be used to execute the data transmission method executed by the second computing node in the above method embodiment. Its implementation principle and technical effects are similar and will not be described in detail here.

[0446] Fig.18 A schematic diagram of the structure of another data transmission device provided in an embodiment of the present application. Fig.17 On the basis of, the data transmission device 20 may further include a sending module 23, wherein:

[0447] The sending module 23 is used to send a response message to the first computing node through the CXL device, where the response message includes a read result of the target data, where the read result is a read success or a read failure.

[0448] In a possible implementation, the processing module 22 is further configured to:

[0449] The spatial position of the message space in the storage node sent by the receiving management node.

[0450] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message; the acquisition module 21 is specifically used to:

[0451] Acquire first description information of the message space, where the first description information includes the number of unread messages;

[0452] When the number of the unread messages is greater than zero, a notification message is acquired from a second storage location through the CXL.

[0453] In a possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message; the acquisition module 21 is specifically used to:

[0454] Acquire second description information, where the second description information includes the number of unread messages at the to-be-selected message position corresponding to the second computing node;

[0455] When the number of the unread messages is greater than zero, a notification message is acquired from a second storage location through the CXL.

[0456] In one possible implementation,

[0457] The CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; or,

[0458] The CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device.

[0459] The data transmission device provided in this embodiment can be used to execute the data transmission method executed by the second computing node in the above method embodiment. Its implementation principle and technical effects are similar and will not be described in detail here.

[0460] Fig.19 Schematic diagram of a computing node provided in an embodiment of the present application. The computing node may be a first computing node. The computing node may also be a second computing node. Fig.19 As shown, the computing node 30 may include: a processor 31 and a memory 32, wherein the processor 31 and the memory 32 can communicate; exemplarily, the processor 31 and the memory 32 communicate via a communication bus 33, the memory 32 is used to store computer execution instructions, and the processor 31 is used to call the computer execution instructions in the memory to execute the data transmission method shown in any of the above method embodiments.

[0461] Optional, Fig.16 Processing module 11, Fig.17 The acquisition module 21 and the processing module 22, and Fig.18 The sending module 23 can be implemented by the processor 31.

[0462] Optionally, the computing node 30 may further include a communication interface, which may include a transmitter and / or a receiver.

[0463] Optionally, the computing node 30 may further include a network card, and the processor is communicatively connected to the network card; the processor may be communicatively connected to an Internet link via the network card.

[0464] Optionally, the processor may be a central processing unit (CPU), a graphics processing unit (GPU), other general-purpose processors, a digital signal processor (DSP), or an application-specific integrated circuit (ASIC). A general-purpose processor may be a microprocessor or the processor may be any conventional processor. The steps of the method disclosed in the embodiments of the present application may be directly implemented as a hardware processor, or may be implemented as a combination of hardware and software modules in the processor.

[0465] The embodiment of the present application provides a meter management node, comprising: a processor, and a memory communicatively connected to the processor;

[0466] The memory stores computer-executable instructions;

[0467] The processor executes computer-executable instructions stored in the memory to determine a spatial location of a message space in a storage node and send the spatial location to a plurality of computing nodes.

[0468] An embodiment of the present application provides a computer-readable storage medium, on which computer-executable instructions are stored; the computer-executable instructions are used to implement the data transmission method described in any of the above embodiments.

[0469] An embodiment of the present application provides a computer program product, which includes a computer program. When the computer program is executed, the computer executes the above-mentioned data transmission method.

[0470] All or part of the steps of implementing the above-mentioned method embodiments can be completed by hardware related to program instructions. The aforementioned program can be stored in a readable memory. When the program is executed, the steps of the above-mentioned method embodiments are executed; and the aforementioned memory (storage medium) includes: read-only memory (English: read-only memory, abbreviated: ROM), RAM, flash memory, hard disk, solid state drive, magnetic tape (English: magnetic tape), floppy disk (English: floppy disk), optical disc (English: optical disc) and any combination thereof.

[0471] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable terminal device to generate a machine, so that the instructions executed by the processing unit of the computer or other programmable terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0472] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0473] These computer program instructions can also be loaded onto a computer or other programmable terminal device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0474] Obviously, those skilled in the art can make various changes and modifications to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the embodiments of the present application are also intended to include these modifications and variations.

[0475] In the embodiments of the present application, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "include one..." do not exclude the existence of other identical elements in the process, method, article or device including the element. The term "or" and its variations may refer to "and / or". In the embodiments of the present application, the terms "first", "second", etc. are used to distinguish similar objects, and do not have to be used to describe a specific order or sequence. In the embodiments of the present application, "multiple" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that there may be three relationships, for example, A and / or B, which may represent: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the objects associated before and after are in an "or" relationship.

[0476] After considering the invention disclosed in the specification and practice, those skilled in the art will easily think of other embodiments of the present application. The embodiments of the present application are intended to cover any variation, use or adaptive change of the embodiments of the present application, which follows the general principles of the embodiments of the present application and includes common knowledge or conventional technical means in the technical field that are not disclosed in the embodiments of the present application.

Claims

1. A data transmission method, characterized in that: The method is applied to a first computing node of a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node via the CXL device, and the storage node includes a message space and a data space. The first computing node stores the target data in a first storage location through the CXL device, wherein the first computing node is any computing node among the plurality of computing nodes, and the data space includes the first storage location; The first computing node stores the notification message corresponding to the target data in a second storage location through the CXL device; The notification message is used to inform the second computing node that the target data is stored in the first storage location, the second computing node is any computing node among the multiple computing nodes except the first computing node, and the message space includes the second storage location.

2. The method according to claim 1, characterized in that The message space includes a plurality of message bits, each of which is used to store a notification message; and the method further includes: The first computing node obtains first description information of the message space, the first description information including the number of available message bits and the position of each available message bit, the available message bit being a message bit in the plurality of message bits that does not store a notification message; The first computing node determines the second storage location according to the first description information, where the second storage location is a location of any one of the available message bits.

3. The method according to claim 1, characterized in that The message space includes a plurality of message bits, each of which is used to store a notification message; and the method further includes: The first computing node determines a message position to be selected corresponding to the second computing node; The first computing node obtains second description information of the message bit to be selected, where the second description information includes the number of idle message bits and the position of each idle message bit, where the idle message bit is a message bit in the message bit to be selected that does not store a notification message; The first computing node determines the second storage location according to the second description information, where the second storage location is the location of any one of the idle message bits.

4. The method according to claim 2 or 3, characterized in that: The CXL device is a multi-host CXL device, and the plurality of computing nodes and the storage node are respectively connected to the multi-host CXL device; The storing, by the CXL device, a notification message corresponding to the target data in a second storage location includes: The first computing node sends a third storage request to the multi-host CXL device, the third storage request including location information of the second storage location and the notification message; The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.

5. The method according to claim 2 or 3, characterized in that: The CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device; The storing, by the CXL device, a notification message corresponding to the target data in a second storage location includes: The first computing node sends a fourth storage request to the CXL switching device, wherein the fourth storage request includes location information of the second storage location and the notification message; The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.

6. The method according to any one of claims 1 to 5, characterized in that: The CXL device is a CXL switching device, and the plurality of computing nodes are connected to the storage node via the CXL switching device; The storing, by the CXL device, the target data in the first storage location comprises: The first computing node sends a second storage request to the CXL switching device, wherein the second storage request includes location information of the first storage location and the target data; The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.

7. A data transmission method, characterized in that: A second computing node applied to a computer cluster, wherein the computer cluster includes a plurality of computing nodes, a storage node, and a computing interconnect CXL device, wherein the plurality of computing nodes are connected to the storage node via the CXL device, and wherein the storage node includes a message space and a data space, wherein the method includes: A second computing node obtains a notification message from a second storage location through the CXL device, the notification message being used to inform the second computing node that target data is stored in a first storage location, the first storage location being located in the data space, the second storage location being located in the message space, and the plurality of computing nodes including the second computing node; The second computing node reads the target data from the first storage location through the CXL device according to the notification message.

8. The method according to claim 7, characterized in that The message space includes a plurality of message bits, each of which is used to store a notification message; the second computing node obtains the notification message from the second storage location through the CXL device, including: The second computing node acquires first description information of the message space, where the first description information includes the number of unread messages; When the number of the unread messages is greater than zero, the second computing node obtains a notification message from a second storage location through the CXL.

9. The method according to claim 7, characterized in that: The message space includes a plurality of message bits, each of which is used to store a notification message; and the second computing node obtains the notification message from the second storage location through the CXL device, including: The second computing node acquires second description information, where the second description information includes the number of unread messages at the to-be-selected message position corresponding to the second computing node; When the number of the unread messages is greater than zero, the second computing node obtains a notification message from a second storage location through the CXL.

10. A computing node, characterized in that: include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to implement the method according to any one of claims 1 to 9.