Data transmission method and computing node
By using computing interconnected CXL devices in computer clusters, decoupling of data and notification messages between computing nodes is achieved, solving the problem of low data transmission efficiency in computer clusters and improving overall performance.
Patent Information
- Application Number
- PCT/CN2024/084761
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-21
- Filing Date
- 2024-03-29
- Publication Date
- 2025-02-27
AI Technical Summary
The data transmission efficiency between different computing nodes in a computer cluster is low, resulting in large transmission delays and affecting the overall performance of the computer cluster.
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, realizing the decoupling of the data and the notification message.
It improves the data transmission efficiency in the computer cluster, reduces the transmission delay, and enhances the overall performance of the computer cluster.
Smart Images

Figure CN2024084761_27022025_PF_FP_ABST
Abstract
Description
Data transmission method and computing node
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on August 21, 2023, with application number 202311057705.2 and application name “Data transmission method and computing node”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] 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
[0003] A computer cluster is a computer system consisting of a group of computing nodes. The computing nodes in a computer cluster can transfer data to each other. For example, a computer cluster can be used for artificial intelligence (AI) training.
[0004] Currently, data can be transmitted between different computing nodes in a computer cluster via the internet. However, when large amounts of data are being transmitted, insufficient internet bandwidth can affect data transmission efficiency, resulting in low data transmission efficiency and long transmission delays between computing nodes, leading to low data transmission efficiency within the computer cluster.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide a data transmission method and a computing node, which can improve the data transmission efficiency in a computer cluster.
[0007] In a first aspect, embodiments of the present application provide a data transmission method, applied to a first computing node in a computer cluster, the computer cluster comprising a plurality of computing nodes, a storage node, and a computing interconnect (CXL) device, the plurality of computing nodes being connected to the storage node via the CXL device, the storage node comprising a message space and a data space, the method comprising:
[0008] The first computing node stores target data in a first storage location via 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;
[0009] The first computing node stores the notification message corresponding to the target data in a second storage location via the CXL device;
[0010] 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.
[0011] In the above solution, a first computing node can store target data in a first storage location via a CXL device and can also store a notification message corresponding to the target data in a second storage location via the CXL device. A second computing node can then retrieve the notification message from the second storage location via the CXL device and read the target data from the first storage location via the CXL device based on the notification message. This method allows the first computing node to transmit the target data and the notification message corresponding to the target data to the second computing node via the CXL device, respectively. This decouples the target data and notification message, improving data transmission efficiency within the computer cluster.
[0012] In one possible implementation, the message space includes a plurality of message bits, each message bit being used to store a notification message; and the method further includes:
[0013] The first computing node obtains first description information of the message space, where the first description information includes the number of available message bits and the position of each available message bit, where the available message bit is a message bit in the plurality of message bits that does not store a notification message;
[0014] The first computing node determines the second storage location according to the first description information, where the second storage location is the location of any one of the available message bits.
[0015] 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.
[0016] In one possible implementation, the message space includes a plurality of message bits, each message bit being used to store a notification message; and the method further includes:
[0017] The first computing node determines a message bit to be selected corresponding to the second computing node;
[0018] 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;
[0019] 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.
[0020] In the above solution, the first computing node can determine the second storage location only in the message bits to be selected, so that the second storage location can be determined more quickly.
[0021] 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;
[0022] The storing, by the CXL device, the notification message corresponding to the target data in the second storage location includes:
[0023] The first compute 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;
[0024] The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.
[0025] 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.
[0026] In one possible implementation, the CXL device is a CXL switch device, and the plurality of computing nodes are connected to the storage node via the CXL switch device;
[0027] The storing, by the CXL device, the notification message corresponding to the target data in the second storage location includes:
[0028] The first computing node sends a fourth storage request to the CXL switch device, where the fourth storage request includes the location information of the second storage location and the notification message;
[0029] The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.
[0030] 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.
[0031] In a possible implementation, the method further includes:
[0032] The first computing node determines a candidate storage node, where the candidate storage node includes the data space;
[0033] The first computing node determines a target storage node among the selected storage nodes based on 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.
[0034] In the above solution, the first computing node can determine the first storage location among the candidate storage nodes, thereby achieving the purpose of determining the first storage location.
[0035] 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;
[0036] Storing the target data in the first storage location by the CXL device includes:
[0037] 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;
[0038] The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.
[0039] In the above solution, the CXL device may be a multi-host CXL device, and the first computing node may store target data through the multi-host CXL device, thereby improving data storage efficiency.
[0040] In one possible implementation, the CXL device is a CXL switch device, and the plurality of computing nodes are connected to the storage node via the CXL switch device;
[0041] Storing the target data in the first storage location by the CXL device includes:
[0042] The first computing node sends a second storage request to the CXL switch device, where the second storage request includes location information of the first storage location and the target data;
[0043] The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.
[0044] 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.
[0045] In a second aspect, an embodiment of the present application provides a data transmission method, applied to a second computing node in a computer cluster, wherein the computer cluster includes multiple computing nodes, a storage node, and a computing interconnect CXL device, wherein the multiple 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 method includes:
[0046] A second computing node obtains a notification message from a second storage location via 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;
[0047] The second computing node reads the target data from the first storage location through the CXL device according to the notification message.
[0048] In this solution, the second compute node can receive the notification message sent by the first compute node via the CXL device and, based on the notification message, quickly access the target data via the CXL device. This decouples the target data from the notification message, improving data transmission efficiency within the computer cluster.
[0049] In a possible implementation, the method further includes:
[0050] 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, where the read result is a read success or a read failure.
[0051] In the above solution, the second computing node can send the reading result of the target data to the first computing node, thereby enabling the first computing node to obtain the reading result of the target data.
[0052] In a possible implementation, the method further includes:
[0053] The spatial location of the message space in the storage node sent by the receiving management node.
[0054] 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.
[0055] In one possible implementation, the message space includes a plurality of message bits, each message bit 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:
[0056] The second computing node obtains first description information of the message space, where the first description information includes the number of unread messages;
[0057] When the number of the unread messages is greater than zero, the second computing node obtains the notification message from the second storage location through the CXL.
[0058] 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.
[0059] In one possible implementation, the message space includes a plurality of message bits, each message bit being used to store a notification message; and the second computing node obtaining the notification message from the second storage location through the CXL device includes:
[0060] The second computing node obtains second description information, where the second description information includes the number of unread messages in the to-be-selected message position corresponding to the second computing node;
[0061] When the number of the unread messages is greater than zero, the second computing node obtains the notification message from the second storage location through the CXL.
[0062] In the above solution, a corresponding message bit to be selected may be set for the second computing node, and the second storage location may be any message bit to be selected, so that the second computing node can obtain the notification message faster.
[0063] In one possible implementation,
[0064] 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
[0065] 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.
[0066] In the above solution, data transmission can be performed through multiple host CXL devices / CXL switching devices, thereby improving data transmission efficiency.
[0067] 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 multiple computing nodes, a storage node, and a computing interconnect CXL device, wherein the multiple 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 data transmission device includes: a processing module, wherein:
[0068] The processing module is configured to store target data in a first storage location via 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;
[0069] The processing module is further configured to store, via the CXL device, a notification message corresponding to the target data in a second storage location;
[0070] 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.
[0071] In the above solution, a first computing node can use a CXL device to store target data in a first storage location and a notification message corresponding to the target data in a second storage location. A second computing node can then use the CXL device to retrieve the notification message from the second storage location and, based on the notification message, read the target data from the first storage location using the CXL device. This solution allows the first computing node to transmit the target data and the notification message corresponding to the target data to the second computing node via the CXL device, respectively. This decouples the target data and notification message, improving data transmission efficiency within the computer cluster.
[0072] In one possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;
[0073] The processing module is further configured to obtain 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;
[0074] 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.
[0075] 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.
[0076] In one possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;
[0077] The processing module is further configured to determine a candidate message bit corresponding to the second computing node;
[0078] The processing module is further configured to obtain second description information of the message bit to be selected, the second description information including the number of idle message bits and the position of each idle message bit, the idle message bit being a message bit in the message bit to be selected that does not store a notification message;
[0079] 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.
[0080] In the above solution, the processing module can determine the second storage location only in the message bits to be selected, so that the second storage location can be determined more quickly.
[0081] 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:
[0082] sending a third storage request to the multi-host CXL device, the third storage request including the location information of the second storage location and the notification message;
[0083] The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.
[0084] 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.
[0085] In a possible implementation, the CXL device is a CXL switch device, and the plurality of computing nodes are connected to the storage node via the CXL switch device; the processing module is specifically configured to:
[0086] sending a fourth storage request to the CXL switch device, the fourth storage request including the location information of the second storage location and the notification message;
[0087] The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.
[0088] 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.
[0089] In a possible implementation, the processing module is further configured to:
[0090] Determining a candidate storage node, where the candidate storage node includes the data space;
[0091] 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.
[0092] 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.
[0093] 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:
[0094] 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;
[0095] The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.
[0096] In the above solution, the CXL device may be a multi-host CXL device, and the processing module may store target data through the multi-host CXL device, thereby improving data storage efficiency.
[0097] In a possible implementation, the CXL device is a CXL switch device, and the plurality of computing nodes are connected to the storage node via the CXL switch device; the processing module is specifically configured to:
[0098] 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;
[0099] The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.
[0100] 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.
[0101] 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 multiple computing nodes, a storage node, and a computing interconnect CXL device, wherein the multiple 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 data transmission device includes: an acquisition module and a processing module, wherein:
[0102] The acquisition module is configured to acquire, through the CXL device, a notification message from a second storage location, the notification message being configured 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;
[0103] The processing module is configured to read target data from the first storage location via the CXL device according to the notification message.
[0104] In this solution, the second compute node can receive the notification message sent by the first compute node via the CXL device and, based on the notification message, quickly access the target data via the CXL device. This solution decouples the target data from the notification message, improving data transmission efficiency within the computer cluster.
[0105] In a possible implementation, the data transmission device further includes a sending module, wherein:
[0106] The sending module is configured 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.
[0107] In the above solution, the second computing node can send the reading result of the target data to the first computing node, thereby enabling the first computing node to obtain the reading result of the target data.
[0108] In a possible implementation, the processing module is further configured to:
[0109] The spatial location of the message space in the storage node sent by the receiving management node.
[0110] 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.
[0111] 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 is specifically configured to:
[0112] Acquire first description information of the message space, where the first description information includes the number of unread messages;
[0113] When the number of unread messages is greater than zero, a notification message is acquired from a second storage location via the CXL.
[0114] 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.
[0115] 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 is specifically configured to:
[0116] Acquire second description information, where the second description information includes the number of unread messages in the to-be-selected message position corresponding to the second computing node;
[0117] When the number of unread messages is greater than zero, a notification message is acquired from a second storage location via the CXL.
[0118] In the above solution, a corresponding message bit to be selected may be set for the second computing node, and the second storage location may be any message bit to be selected, so that the second computing node can obtain the notification message faster.
[0119] In one possible implementation,
[0120] 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
[0121] 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.
[0122] In the above solution, data transmission can be performed through multiple host CXL devices / CXL switching devices, thereby improving data transmission efficiency.
[0123] 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;
[0124] The memory stores computer-executable instructions;
[0125] 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.
[0126] In the above solution, 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 the computer cluster.
[0127] In a fifth aspect, an embodiment of the present application provides a management node, comprising: a processor, and a memory communicatively connected to the processor;
[0128] The memory stores computer-executable instructions;
[0129] The processor executes the 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.
[0130] In the above solution, the management node may determine and send the spatial location of the message space to the multiple computing nodes, so that the multiple computing nodes may obtain the spatial location of the message space.
[0131] 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.
[0132] In the above solution, 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 the computer cluster.
[0133] In a seventh aspect, an embodiment of the present application provides a computer program product, comprising a computer program, which, when executed by a computer, implements the method as described in any one of the first aspect or the second aspect.
[0134] In the above solution, 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 the computer cluster. BRIEF DESCRIPTION OF THE DRAWINGS
[0135] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. 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 any creative labor.
[0136] FIG1 is a schematic diagram of a cluster architecture provided in an embodiment of the present application;
[0137] FIG2 is a schematic diagram of connections between computing nodes in a cluster provided by an embodiment of the present application;
[0138] FIG3 is a schematic diagram of the architecture of a computer cluster provided in an embodiment of the present application;
[0139] FIG4 is a schematic diagram of the speed of reading and writing data through a CXL device provided in an embodiment of the present application;
[0140] FIG5 is a flow chart of a data transmission method provided in an embodiment of the present application;
[0141] FIG6 is a schematic diagram of address mapping of a message space provided in an embodiment of the present application;
[0142] FIG7 is a schematic diagram of a message space provided in an embodiment of the present application;
[0143] FIG8 is a schematic diagram of another message space provided in an embodiment of the present application;
[0144] FIG9 is a schematic diagram of another message space provided in an embodiment of the present application;
[0145] FIG10 is a schematic diagram of the structure of a computer cluster provided in an embodiment of the present application;
[0146] FIG11 is a flow chart of another data transmission method provided in an embodiment of the present application;
[0147] FIG12 is a schematic diagram of a data transmission process according to an embodiment of the present application;
[0148] FIG13 is a schematic diagram of the structure of another computer cluster provided in an embodiment of the present application;
[0149] FIG14 is a schematic flow chart of another data transmission method provided in an embodiment of the present application;
[0150] FIG15 is a schematic diagram of another data transmission process according to an embodiment of the present application;
[0151] FIG16 is a schematic structural diagram of a data transmission device provided in an embodiment of the present application;
[0152] FIG17 is a schematic structural diagram of another data transmission device provided in an embodiment of the present application;
[0153] FIG18 is a schematic structural diagram of another data transmission device provided in an embodiment of the present application;
[0154] FIG19 is a schematic diagram of the structure of a computing node provided in an embodiment of the present application. DETAILED DESCRIPTION
[0155] Exemplary embodiments are described in detail herein, with examples illustrated in the accompanying drawings. In the following description, when referring to the drawings, identical numbers in different figures represent identical or similar elements, unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all possible implementations consistent with the present invention. Rather, they are merely examples of apparatuses and methods consistent with certain aspects of the present invention, as detailed in the appended claims.
[0156] For ease of understanding, first, in conjunction with Figure 1, taking the AI training cluster as an example, the application scenarios involved in the embodiments of this application are explained.
[0157] Figure 1 is a schematic diagram of a cluster architecture provided in an embodiment of the present application. As shown in Figure 1, the cluster can be, for example, an AI training cluster, or, of course, other functional clusters. The following description takes the AI training cluster as an example. The AI training cluster 100 may include multiple computing nodes, such as computing node A 101, computing node B 102, computing node C 103, computing node D 104, and computing node E 105.
[0158] Computing node A 101 , computing node B 102 , computing node C 103 , computing node D 104 , and computing node E 105 may be connected to each other via a wired or wireless manner.
[0159] Any computing node in the AI training cluster 100 can exchange information with other computing nodes. For example, computing node A 101 can exchange information with computing node B 102, computing node C 103, computing node D 104, or computing node E 105. The information can be data or messages.
[0160] Data can be job data that needs to be transmitted between computing nodes. For example, in an AI training cluster, data can be training data transmitted between computing nodes.
[0161] The message can be a packet corresponding to the data, and the message can describe the storage address of the data, etc. For example, if the data is training data transmitted between computing nodes, the message can include the storage address of the data, etc. The message can include a notification message or a response message.
[0162] Computing nodes can be computing devices that can perform data read and write operations. For example, computing nodes can be servers, laptops, desktop computers, tablet computers, single-chip microcomputers, multimedia players, artificial intelligence devices, wearable devices, Internet of Things devices, or virtual reality / augmented reality / mixed reality devices.
[0163] Currently, data and messages between computing nodes in a cluster are transmitted over the Internet. As shown in Figure 2, Figure 2 is a schematic diagram of the connections between computing nodes in a cluster provided in an embodiment of the present application. Referring to Figure 2, 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 Internet link 106.
[0164] It should be noted that the Internet link 106 can be in wired or wireless form. FIG2 only illustrates the Internet link 106 as being in wired form, which does not constitute a limitation on the embodiments of the present application.
[0165] Computing node A 101, computing node B 102, computing node C 103, computing node D 104, and computing node E 105 can all be connected to Internet link 106. In other words, computing node A 101, computing node B 102, computing node C 103, computing node D 104, and computing node E 105 can be connected via Internet link 106. The computing nodes can transmit data and messages via Internet link 106.
[0166] 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.
[0167] However, during the above information interaction process, if the data transmitted between computing nodes is large, insufficient bandwidth resources on the Internet will affect the data transmission efficiency, resulting in low data transmission efficiency and long transmission delay between computing nodes, and thus low data transmission efficiency in the computer cluster.
[0168] In view of this, embodiments of the present application provide a computer cluster and a data transmission method applied to the computer cluster to solve the problems of low data transmission efficiency and long transmission delay between computing nodes.
[0169] As shown in Figure 3, Figure 3 is a schematic diagram of the architecture of a computer cluster provided in an embodiment of the present application. Referring to Figure 3, the 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. Among them, multiple means two or more. Figure 3 is illustrated by taking multiple storage nodes as an example, and 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, and this embodiment of the present application does not limit this.
[0170] Multiple computing nodes and multiple storage nodes may be connected to the CXL link. In other words, multiple computing nodes and multiple storage nodes may be connected via the CXL link.
[0171] The computer cluster may be a computer cluster that needs to transmit large amounts of data. For example, the computer cluster may be an AI training cluster, a distributed database, or other types of clusters.
[0172] Computing nodes can be computing devices that can perform data read and write operations. For example, computing nodes include, but are not limited to, servers, laptops, desktop computers, tablets, single-chip microcomputers, multimedia players, artificial intelligence devices, wearable devices, Internet of Things devices, virtual reality / augmented reality / mixed reality devices, mobile phones, and other computing devices.
[0173] Storage nodes can be devices with storage capabilities. For example, storage nodes can include dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), solid state disks (SSD), and persistent memory (PMEM). Storage nodes can also be network cards, graphics processing units (GPUs), field programmable gate arrays (FPGAs), or other devices with storage capabilities that support CXL technology.
[0174] A CXL link may include at least one CXL device, which may be a multi-host CXL device or a CXL switch device.
[0175] 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 Module (DIMM) memory module.
[0176] When the CXL device can be a CXL switching device, the storage node can include a controller and memory. The controller can include a CXL memory expander chip, a CXL memory expander controller, or a CXL memory expander pooling chip, and the memory can include DRAM, SDRAM, SSD, PMEM, or DIMM memory. It is understood that the embodiments of the present application do not limit the specific structure of the storage node, as long as the compute node can use the storage space of the storage node through the CXL device.
[0177] A multi-host CXL device can include multiple compute node interfaces and one or more storage node interfaces. For any compute node interface, the multi-host CXL device can connect to a compute node through the compute node interface. For any storage node interface, the multi-host CXL device can connect to a storage node through the storage node interface.
[0178] 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.
[0179] A CXL switch device can include one or more compute node interfaces and / or one or more storage node interfaces. For any compute node interface, a multi-host CXL device can connect to a compute node via the compute node interface. For any storage node interface, a multi-host CXL device can connect to a storage node via the storage node interface.
[0180] 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.
[0181] The CXL switching device may be, for example, a CXL switch, which may include a CXL switch chip.
[0182] Optionally, the computer cluster may further include a management node. The management node may include a node running a fabric manager (FM). The FM may be a program that manages the storage space of the storage nodes in the computer cluster.
[0183] In one example, the management node may be an independent node independent of the computing nodes, storage nodes, and CXL links. As shown in FIG3 , the management node may be connected to the storage nodes and computing nodes via CXL links.
[0184] 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.
[0185] In another example, the FM can also be a program that can run on any compute node, any storage node, or a CXL device in a computer cluster. If the FM runs on any compute node, the compute node can be the management node. If the FM runs on any storage node, the storage node can be the management node. If the FM runs on a CXL device, the CXL device can be the management node.
[0186] It should be noted that the embodiment of the present application does not limit the specific operating location of the FM. Figure 3 is only an example of the management node and does not constitute a limitation on the management node.
[0187] In the aforementioned computer cluster, CXL devices can read and write data at relatively high speeds. Figure 4 shows a schematic diagram of data read and write speeds using CXL devices, according to an embodiment of the present application. The horizontal axis of Figure 4 represents the data operation mode, which can be either read or write; the vertical axis of Figure 4 represents the data operation speed.
[0188] As shown in Figure 4, the data read speed through the CXL device can reach 23.8GB / s, and the data write speed can reach 12GB / s. Currently, the data read and write speed through the Internet is about 3GB / s. This shows that the data read and write speed through the CXL device is much higher than the data read and write speed through the Internet.
[0189] It should be noted that Figure 4 only illustrates the minimum read and write speeds achievable when reading and writing data through a CXL device. In actual implementation, the read and write speeds of a CXL device may be higher depending on the type of CXL device. Figure 4 does not limit the read and write speeds of a CXL device.
[0190] 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 computing nodes faster, and can avoid the data transmission being limited by the Internet bandwidth, thereby improving the data transmission efficiency in the computer cluster and further improving 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.
[0191] The following specific embodiments are used to describe the technical solutions of the embodiments of the present application in detail. 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.
[0192] FIG5 is a flow chart of a data transmission method provided in an embodiment of the present application. Referring to FIG5 , the method may include:
[0193] S501 : A first computing node stores target data in a first storage location via a CXL device.
[0194] The data transmission method provided in this embodiment can be applied to a computer cluster as shown in Figure 3 , which includes multiple computing nodes, storage nodes, and a CXL link. The CXL link may include one or more CXL devices.
[0195] Multiple computing nodes are connected to storage nodes through CXL devices. The storage nodes include message space and data space.
[0196] The data space can be part or all of the storage space on a storage node. The data space can be used to store data exchanged between computing nodes.
[0197] The message space can be part or all of the storage space on the storage node. The message space can be used to store notification messages corresponding to the data.
[0198] The first computing node may be any computing node among the multiple computing nodes.
[0199] The first storage location may be a storage location in the data space.
[0200] In this embodiment, the first computing node may store the target data in the first storage location by using a store instruction (Store) through the CXL device.
[0201] Specifically, the first computing node may send target data to the CXL device and request the CXL device to store the target data in the first storage location.
[0202] Optionally, before storing the target data in the first storage location, the first computing node may further determine the first storage location in the data space.
[0203] In this embodiment, the number of storage nodes may be one or more, wherein a plurality means two or more.
[0204] In one example, the number of storage nodes may be one, and the one storage node may include a data space and a message space. In other words, the data space may be part of the storage space on the one storage node.
[0205] 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 data space may be located on the same storage node or on different storage nodes.
[0206] 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.
[0207] 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.
[0208] In this embodiment, the first computing node determines the target storage node from the candidate storage nodes based on 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:
[0209] Case 1: The first computing node can determine the target storage node from all candidate storage nodes;
[0210] Case 2: The first computing node may determine the target storage node from some of the candidate storage nodes.
[0211] The above two situations are described below respectively.
[0212] In case 1, the number of storage nodes may be one or more, and the storage nodes include candidate storage nodes, which may also be one or more. The first computing node may determine available storage nodes from the candidate storage nodes, and determine a target storage node from the available storage nodes. The available storage nodes may be candidate storage nodes whose remaining storage space in the data space is greater than or equal to the data size of the target data.
[0213] For example, assuming that the computer cluster includes one storage node, and that 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 greater 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 the target storage node.
[0214] It should be noted that, if there are multiple available storage nodes, the first computing node may determine a storage node as the target storage node from the multiple available storage nodes according to a first preset method.
[0215] 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 in the data space among multiple available storage nodes as the target storage node. This can make the size of the remaining storage space of the target storage node's data space closest to the size of the target data, and can reasonably utilize the available storage nodes to avoid wasting the available storage nodes with larger remaining storage space in the data space; or, determine the storage node closest to the first computing node among multiple available storage nodes as the target storage node. This can make the storage path of the target data shortest and the storage speed fastest.
[0216] 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.
[0217] It should be noted that the method for determining the first storage location can be set according to actual needs and is not limited in this embodiment. For example, the first computing node can determine the first storage location as a 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.
[0218] In case 1, any candidate storage node 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.
[0219] In case 2, the number of storage nodes may be one or more, 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.
[0220] Specifically, the first computing node can obtain storage configuration information corresponding to the first computing node, the storage configuration information includes node information of the preset storage node corresponding to the first computing node, and the 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 based on 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.
[0221] The preset storage area in the preset storage node may be a storage area allocated to the first computing node among the multiple storage nodes to be selected. The first computing node may store data in the preset storage area in the preset storage node.
[0222] The node information of the preset storage node may include: a node identifier of the preset storage node, etc.
[0223] It should be noted that, for any preset storage node, the preset storage area in the preset storage node may be the 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 the storage area allocated to the first computing node by the computer cluster based on the needs of the first computing node.
[0224] 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.
[0225] 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.
[0226] The second preset method can be configured based on actual needs and is not limited in this embodiment. For example, the second preset method may include determining as the target storage node the storage node with the least remaining preset storage space in the data space among multiple qualified preset storage nodes; or determining as the target storage node the storage node closest to the first computing node among multiple qualified preset storage nodes.
[0227] 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.
[0228] It should be noted that the method for determining the first storage location can be set according to actual needs and is not limited in this embodiment. For example, the first computing node can determine the first storage location as a continuous preset storage space starting from the smallest storage address in the remaining preset storage space and having a storage space size equal to the data size of the target data.
[0229] 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.
[0230] S502: The first computing node stores a notification message corresponding to the target data in a second storage location through a CXL device.
[0231] The second storage location may be a storage location in the message space.
[0232] 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.
[0233] 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.
[0234] The second computing node is any computing node other than the first computing node among the plurality of computing nodes. The number of the second computing nodes may be one or more.
[0235] 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.
[0236] 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.
[0237] In one example, the notification message may include the content shown in Table 1-1:
[0238] Table 1-1
[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] 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 identifier of the source computing node, the node identifier of the target computing node, the timeout configuration, the timestamp or one or more of the message types, etc.
[0242] 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.
[0243] 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.
[0244] The timestamp may be the time at which the first computing node sends the notification message.
[0245] The timeout configuration can be used to indicate the waiting time when reading the target data corresponding to the notification message.
[0246] 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.
[0247] For example, 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.
[0248] The message type can be a notification type message or a response type message.
[0249] Among them, the notification type message can be used to inform the computing node receiving 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 sending the notification message.
[0250] 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.
[0251] 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.
[0252] The notification message is used to inform the second computing node that the target data is stored in the first storage location.
[0253] 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:
[0254] Case 1: The second computing node requests to obtain target data.
[0255] In this case, the second computing node can send a request message to the first computing node. The request message is used to request the target data. After receiving the request message, the first computing node can store the target data in the first storage location via the CXL device based on the request message and can also 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.
[0256] In this case, the number of the second computing node may be one.
[0257] Case 2: The first computing node actively stores the target data.
[0258] 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, it can store the updated shared data (target data) in the first storage location and 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.
[0259] In this case, the number of the second computing nodes may be one or more.
[0260] Optionally, before storing the notification message in the second storage location, the first computing node may further determine a second storage location in the message space.
[0261] In this embodiment, when the computer cluster is initialized, the management node in the computer cluster can generate configuration information for the message space, and according to the configuration information, set the corresponding storage area in the storage node as the message space. The configuration information of the message space may include the address of the message space, the size of the message space, etc.
[0262] Optionally, the management node may receive configuration information of the message space input by a technician through an input tool.
[0263] The input tool may be a command line tool (Command-line interface, Cli) or the like.
[0264] The configuration information of the message space may be input to the management node in the form of a command; or, the configuration information of the message space may be input to the management node in the form of a static file.
[0265] 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 through broadcast or other message mechanisms.
[0266] In this embodiment, the address of the message space included in the configuration information may be the physical address of the message space. Upon receiving the configuration information, any computing node in the computer cluster 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 then perform read and write operations in the message space based on the virtual address of the message space.
[0267] It should be understood that different compute nodes map to different virtual addresses. A compute node can perform read and write operations on the message space based on the virtual address it maps. As shown in Figure 6, Figure 6 is a schematic diagram of an address mapping of a message space provided in an embodiment of the present application. Referring to Figure 6, a computer cluster may include a storage node, compute node 1, and compute node 2.
[0268] The storage node may include a message space. The physical address of the message space may be represented by a start physical address and an end physical address of a storage area occupied by the message space.
[0269] As shown in Figure 6, 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 a specific implementation, computing node 1 can perform read and write operations in the message space based on virtual address P1, and computing node 2 can perform read and write operations in the message space based on virtual address P2.
[0270] In this embodiment, the message space can be divided into multiple storage areas of equal size, each of which can be a message bit. In other words, the message space can include multiple message bits. As shown in Figure 7, Figure 7 is a schematic diagram of a message space provided in an embodiment of the present application. Referring to Figure 7, the message space can include message bit 1, message bit 2, message bit 3, ..., and message bit K. Each message bit can be used to store a notification message.
[0271] 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.
[0272] In this embodiment, the first computing node may determine an idle message bit among the multiple message bits as the second storage location.
[0273] In this embodiment, the first computing node determines the second storage location from multiple message bits, including at least the following two situations:
[0274] Case 1: The first computing node determines the second storage location according to the first description information of the message space;
[0275] Case 2: The first computing node determines the second storage location according to the second description information of the message bit to be selected.
[0276] In case 1, the first computing node obtains first description information of the message space, which 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 location in the available message bit based on the first description information.
[0277] The position of the available message bit can be represented by the starting address of the available message bit. In other words, the position of the available message bit can be the starting address of the available message bit.
[0278] As shown in Figure 8, Figure 8 is a schematic diagram of another message space provided by an embodiment of the present application. Referring to Figure 8, the message space may include multiple message bits and first description information.
[0279] 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 .
[0280] The first description information includes: two available message bits, and the positions of the available message bits are start address 1 and start address 2. As shown in Figure 8, the start address of message bit 1 is start address 1, and the start address of message bit 2 is start address 2. Therefore, it can be seen that the message space includes two available message bits, and the two available message bits can be message bit 1 and message bit 2.
[0281] 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.
[0282] 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.
[0283] 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.
[0284] In case 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 the 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.
[0285] The message bit to be selected may be a message bit allocated to the second computing node among the plurality of available message bits. Any computer node in the computer cluster other than the second computing node may store a notification message to be sent to the second computing node in the message bit to be selected.
[0286] 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.
[0287] In this embodiment, during the initial configuration of the computer cluster, the computer cluster may allocate a message bit 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 bit to be selected for the second computing node.
[0288] As shown in Figure 9, Figure 9 is a schematic diagram of another message space provided by an embodiment of the present application. Referring to Figure 9, the message space may include multiple message bits and second description information.
[0289] The plurality of message bits may be, for example, message bit 1, message bit 2, message bit 3, . . . and message bit K.
[0290] The plurality of message bits may include a to-be-selected message bit corresponding to the second computing node, and the to-be-selected message bit may be, for example, message bit 1, message bit 2, and message bit 3.
[0291] The second description information includes: one idle message bit, and the position of the idle message bit is start address 1. As shown in Figure 9, the start address of message bit 1 is start address 1. Therefore, it can be seen that the message bits to be selected include one idle message bit, and the one idle message bit can be message bit 1.
[0292] In case 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 the fourth preset method.
[0293] 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.
[0294] In case 2, a candidate message bit 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 candidate message bit. When the second computing node obtains the notification message, it can only obtain it from the candidate message bit, avoiding the second computing node from obtaining the notification message from all message bits. This allows the second computing node to obtain the notification message faster, further improving the data reading speed of the second computing node and the data transmission efficiency of the computer cluster.
[0295] S503: The second computing node obtains a notification message from the message space through the CXL device.
[0296] 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:
[0297] Case 1: The second computing node obtains notification messages from all message bits in the message space;
[0298] Case 2: The second computing node obtains the notification message from the candidate message position in the message space.
[0299] In case 1, the second computing node can obtain first description information of the message space through the CXL device. The first description information may include the number of unread messages and the positions of the message bits corresponding to the unread messages. When the number of unread messages is greater than zero, the second computing node can obtain the notification message from the second storage location through the CXL device.
[0300] Specifically, when the number of unread messages is greater than zero, the second computing node can use the CXL device to iterate over the message bits corresponding to the unread messages and obtain the node identifier of the target computing node included in each unread message. If the node identifier of the target computing node matches the node identifier of the second computing node, the second computing node can read the corresponding notification message through the CXL device.
[0301] In case 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.
[0302] 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.
[0303] S504 : The second computing node reads target data from the first storage location through the CXL device according to the notification message.
[0304] After obtaining the notification message, the second computing node may parse the notification message to obtain the content included in the notification message, and may read the target data from the first storage location according to the content included in the notification message.
[0305] 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.
[0306] It should be noted that if the first computing node sends target data to the second computing node through an Internet link, the transmission process of the target data 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.
[0307] 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.
[0308] As can be seen, the target data needs to be transmitted multiple times, and each transmission requires the target data to be read and written. Therefore, when transmitting data (target data) over an Internet link, on the one hand, the data needs to be read and written multiple times, resulting in a low data transmission rate; on the other hand, the data reading and writing speed is limited by the Internet bandwidth resources. If the bandwidth is too small, the data transmission efficiency will be low.
[0309] In the data transmission method provided by 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 achieve 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. Based on the notification message, the second computing node quickly reads the target data from the first storage location of the target storage node through the CXL device. On the one hand, in the process of transmitting data (target data) from the first computing node to the second computing node, there is no need to perform data reading and writing operations, that is, there is no need to copy data, which improves data transmission efficiency and reduces 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.
[0310] As can be understood, the second computing node can receive the notification message sent by the first computing node via the CXL device and, based on the notification message, quickly access the target data from the target storage location on the target storage node via the CXL device. This method decouples the target data from the notification message, improving data transmission efficiency within the computer cluster.
[0311] It is understandable that the second computing node can complete the corresponding cluster task according to the read target data.
[0312] 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, where the read result is either a read success or a read failure.
[0313] Accordingly, the first computing node may obtain the response message sent by the second computing node through the CXL device.
[0314] Optionally, if the read result is a read failure, the response message may further include the reason for the read failure.
[0315] It should be understood that the message type of the response message may be a response-type message.
[0316] 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.
[0317] It should be noted that the process of the second computing node determining the third storage location is consistent with the process of the first computing node determining the second storage location, and can be specifically referred to in S503; the process of the second computing node storing the response message in the third storage location is consistent with the process of the first computing node storing the notification message in the second storage location, and the specific implementation method can be referred to in S504, which will not be repeated here.
[0318] In the data transmission method provided in this embodiment, a first computing node can store target data in a first storage location via a CXL device and can also store a notification message corresponding to the target data in a second storage location via the CXL device. A second computing node can retrieve the notification message from the second storage location via the CXL device and, based on the notification message, read the target data from the first storage location via the CXL device. In this method, the first computing node can transmit the target data and the notification message corresponding to the target data to the second computing node via the CXL device, respectively. This decouples the target data and notification message, improving data transmission efficiency within the computer cluster.
[0319] It is understandable that, in other embodiments, the data transmission method may also include only S501 and S502 in Figure 5. Alternatively, the data transmission method may also include only S503 and S504 in Figure 5.
[0320] The following will expand on the CXL link, introduce various implementations of the CXL link, and then introduce data transmission methods corresponding to the various implementations based on the various implementations of the CXL link.
[0321] For example, a CXL link may include at least one CXL device, which may be a multi-host CXL device, or a CXL switch device.
[0322] 10 to 15 , the 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 will be described respectively.
[0323] 10 to 12 , the case where the CXL device is a multi-host CXL device will be described.
[0324] First, referring to FIG. 10 , the structure of a computer cluster when the CXL device is a multi-host CXL device will be described.
[0325] Figure 10 is a schematic diagram of the structure of a computer cluster provided in an embodiment of the present application. Referring to Figure 10 , the computer cluster may include multiple storage nodes, multiple compute nodes, and multiple host CXL devices. The multiple storage nodes may be storage node 1, storage node 2, ..., and storage node M. The multiple compute nodes may be compute node 1, compute node 2, ..., and compute node N. M and N may be the same, or may be different, and this embodiment does not limit this. Of course, in other embodiments, the number of storage nodes may be one, and the number of compute nodes may be two or more.
[0326] 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.
[0327] When there are multiple multi-host CXL devices, the multi-host CXL devices can be connected directly or indirectly. For example, any two multi-host CXL devices can be directly connected via connection interfaces on the CXL devices; or, the two multi-host CXL devices can be connected to the same compute node to achieve an indirect connection between the two multi-host CXL devices.
[0328] When there is only one multi-host CXL device, as shown in Figure 10 (which uses one multi-host CXL device as an example), each storage node can be connected to the multi-host CXL device, and each compute node can be connected to the multi-host CXL device. In other words, multiple storage nodes and multiple compute nodes can be connected via the multi-host CXL device.
[0329] For any compute node, the compute node can communicate with one or more other compute nodes in the computer cluster through the multi-host CXL device; or the compute node can communicate with a storage node in the computer cluster through the multi-host CXL device.
[0330] It should be noted that the embodiment of Figure 10 further illustrates the case where the CXL device is a multi-host CXL device based on the embodiment of Figure 3. For other descriptions of the compute nodes, storage nodes, and CXL links in Figure 10, please refer to Figure 3 and will not be repeated here.
[0331] Next, with reference to FIG11 , a data transmission method in a computer cluster when the CXL device is a multi-host CXL device is described.
[0332] FIG11 is a flow chart of another data transmission method provided in an embodiment of the present application. Referring to FIG11 , the method may include:
[0333] S1101. A first computing node determines a first storage location in a data space.
[0334] In this embodiment, the first computing node may be any computing node in FIG. 10 , that is, the first computing node may be any computing node among computing node 1 , computing node 2 , . . . , and computing node N.
[0335] It should be noted that the specific implementation of S1101 can be found in S501 and will not be repeated here.
[0336] S1102 : A first computing node stores target data in a first storage location through a multi-host CXL device.
[0337] In this embodiment, the first computing node sends a first storage request to the multi-host CXL device. The first storage request includes location information of the first storage location and target data. The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.
[0338] Specifically, the first computing node may request the multi-host CXL device to store target data in the first storage location.
[0339] It should be noted that since the speed of reading and writing data through multi-host CXL devices is much faster than the speed of reading and writing data through Internet links, and the target data is generally large-scale large data, this embodiment avoids storing the target data through Internet links, thereby avoiding the bandwidth resources of the Internet links affecting the transmission efficiency of the target data.
[0340] S1103. The first computing node determines a second storage location in the message space.
[0341] 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.
[0342] In this embodiment, the first computing node sends a third storage request to the multi-host CXL device, where the third storage request includes location information of the second storage location and a 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.
[0343] Specifically, the first compute node may request the multi-host CXL device to store the notification message in the second storage location.
[0344] In this embodiment, the target data and the notification message corresponding to the target data can be transmitted through the multi-host CXL device, thereby preventing the transmission speed of the target data and the notification message from being limited by Internet bandwidth resources.
[0345] It should be noted that the specific implementation of S1103-S1104 can be found in S503-S504 and will not be repeated here.
[0346] S1105 : The second computing node obtains a notification message from the message space through the multi-host CXL device.
[0347] In this embodiment, the second computing node may be any one or more computing nodes except the first computing node in FIG. 10 .
[0348] Exemplarily, taking FIG. 10 as an example, assuming that the first computing node is computing node 1, the second computing node may be any one or more computing nodes among computing node 2, computing node 3, ... and computing node N.
[0349] The specific implementation method of the second computing node obtaining the notification message can be found in S505.
[0350] S1106 : The second computing node reads target data from the first storage location through the multi-host CXL device according to the notification message.
[0351] 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 from the first storage location through the multi-host CXL device.
[0352] Optionally, the second compute node may send a read request to the multi-host CXL device, where the read request may include the first storage location. The multi-host CXL device may retrieve the target data from the first storage location in response to the read request. After the multi-host CXL device retrieves the target data, the second compute node may read the target data from the multi-host CXL device and process a corresponding cluster task in the computer cluster based on the target data.
[0353] 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, where the read result is either a read success or a read failure.
[0354] 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.
[0355] It should be noted that the process of the second computing node determining the third storage location is consistent with the process of the first computing node determining the second storage location, and can be specifically referred to in S503; the process of the second computing node storing the response message in the third storage location is consistent with the process of the first computing node storing the notification message in the second storage location, and the specific implementation method can be referred to in S504, which will not be repeated here.
[0356] In the data transmission method provided by this embodiment, a first computing node can store target data in a first storage location through a multi-host CXL device, and can also store a notification message corresponding to the target data in a 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 based on 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 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 by the embodiment of the present application can improve the data transmission efficiency in a computer cluster.
[0357] Finally, with reference to FIG12 , the data transmission process in a computer cluster when the CXL device is a multi-host CXL device is described through a specific example.
[0358] FIG12 is a schematic diagram of a data transmission process according to an embodiment of the present application. Referring to FIG12 , a 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.
[0359] Storage node 1, storage node 2, storage node 3, compute node 1, compute node 2, compute node 3, and compute node 4 can all be connected to a multi-host CXL device.
[0360] 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).
[0361] Assume that the first computing node determines the first storage location to be 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:
[0362] First, compute node 1 can store target data at storage location 1 of storage node 2 via the multi-host CXL device. Compute node 1 can also store a notification message corresponding to the target data at the second storage location in the message space via the multi-host CXL device. Second, compute node 4 can retrieve the notification message from the second storage location via the multi-host CXL device and parse the notification message to obtain storage location 1 (the first storage location). Compute node 4 can also read the target data from storage location 1 of storage node 2 via the multi-host CXL device.
[0363] Optionally, in other embodiments, there may be multiple second computing nodes. If there are multiple second computing nodes, the first computing node may transmit a notification message to each second computing node via the multi-host CXL device, so that each second computing node obtains target data via the multi-host CXL device based on the notification message.
[0364] 13 to 15 , a description will be given of a case where a CXL link includes at least one CXL device, and the CXL device is a CXL switching device.
[0365] First, with reference to FIG13 , the structure of a computer cluster when the CXL device is a CXL switching device is described.
[0366] Figure 13 is a schematic diagram of the structure of another computer cluster provided in an embodiment of the present application. Referring to Figure 13 , the computer cluster may include multiple compute nodes, a CXL switch device, and storage nodes. For example, the multiple compute nodes may be H1, H2, H3, H4, H5, H6, H7, H8, and H9. The number of storage nodes may be one or more. Figure 13 uses multiple storage nodes as an example for illustration, and the multiple storage nodes may be D1, D2, D3, D4, D5, D6, and D7.
[0367] It should be noted that there may be one or more CXL switching devices. For example, when there are multiple CXL switching devices, 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 direct or indirect. For example, CXL switching device 1 may be directly connected to CXL switching device 4, or CXL switching device 1 may be indirectly connected to CXL switching device 5 via CXL switching device 4.
[0368] Each computing node can be connected to at least one CXL switch device. For example, H1 can be connected to CXL switch device 1.
[0369] Each storage node can be connected to a CXL switch device. For example, D1 can be connected to CXL switch device 4.
[0370] Each CXL switch device can be connected to at least one computing node and / or storage node.
[0371] It should be noted that Figure 13 merely illustrates the structure of a computer cluster and does not limit the structure of a computer cluster. The location of each compute node and each storage node in the computer cluster can be set according to actual needs. The number of storage devices and CXL switches in the computer cluster can be one or more, and each CXL switch can be connected to one or more compute nodes / storage nodes. Each compute node can also be connected to one or more CXL switches. This embodiment does not impose any limitations on this.
[0372] 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.
[0373] It should be noted that the embodiment of Figure 13 further illustrates the case where the CXL device is a CXL switching device based on the embodiment of Figure 3. Other descriptions of the computing nodes, storage nodes, and CXL links in Figure 13 can be found in Figure 3 and are not repeated here.
[0374] Next, with reference to FIG14 , a data transmission method in a computer cluster when the CXL device is a CXL switching device is described.
[0375] FIG14 is a flow chart of another data transmission method provided in an embodiment of the present application. Referring to FIG14 , the method may include:
[0376] S1401. A first computing node determines a first storage location in a data space.
[0377] In this embodiment, the first computing node can be any computing node in Figure 13, that is, the first computing node can be any computing node among H1, H2, H3, H4, H5, H6, H7, H8 and H9.
[0378] It should be noted that the specific implementation of S1401 can be found in S501 and will not be repeated here.
[0379] S1402: The first computing node stores target data in a first storage location through a CXL switching device.
[0380] 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, and instructing the CXL switch device to store the target data in the first storage location.
[0381] Optionally, the first computing node may send the second storage request to a first CXL switch device to which the first computing node is directly connected.
[0382] 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.
[0383] 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.
[0384] 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, 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.
[0385] 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, the first CXL switch device may forward the second storage request to the CXL switch device directly connected to the target storage node via 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.
[0386] It should be noted that since the speed of reading and writing data through CXL switching equipment is much faster than the speed of reading and writing data through Internet links, and the target data is generally large-scale large data, this embodiment avoids storing the target data through the Internet link, thereby avoiding the bandwidth resources of the Internet link affecting the transmission efficiency of the target data.
[0387] S1403. The first computing node determines a second storage location in the message space.
[0388] S1404: The first computing node stores the notification message corresponding to the target data in the second storage location through the CXL switching device.
[0389] In this embodiment, the first computing node sends a fourth storage request to the CXL switch device, where the fourth storage request includes location information of the second storage location and a notification message. The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.
[0390] 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.
[0391] 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.
[0392] 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.
[0393] 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, 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.
[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, and the CXL switch device directly connected to the storage node where the second storage location is located is also not directly connected to the first CXL switch device, 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 via 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.
[0395] In this embodiment, the target data and the notification message corresponding to the target data can be transmitted through the CXL switching device, thereby preventing the transmission speed of the target data and the notification message from being limited by Internet bandwidth resources.
[0396] It should be noted that the specific implementation of S1403-S1404 can be found in S503-S504 and will not be repeated here.
[0397] S1405: The second computing node obtains a notification message from the message space through the CXL switch device.
[0398] In this embodiment, the second computing node may be any computing node in the computer cluster except the first computing node.
[0399] For example, using FIG13 as an example, the second computing node may be any one or more computing nodes other than the first computing node in FIG13. Assuming that the first computing node is H1, the second computing node may be any one or more computing nodes among H1, H2, H3, H4, H5, H6, H7, H8, and H9.
[0400] The specific implementation method of the second computing node obtaining the notification message can be found in S505.
[0401] S1406 : The second computing node reads the target data from the first storage location through the CXL switch device according to the notification message.
[0402] 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 from the first storage location through the CXL switch device.
[0403] Optionally, the second computing node may send a read request to a CXL switch directly connected to the second computing node, where the read request may include the first storage location. The CXL switch directly connected to the second computing node may directly or indirectly retrieve the target data from the first storage location based on the read request. After the CXL switch directly connected to the second computing node retrieves the target data, the second computing node may read the target data from the CXL switch directly connected to the second computing node and process corresponding cluster tasks in the computer cluster based on the target data.
[0404] 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, where the read result is either a read success or a read failure.
[0405] In this embodiment, when the second computing node sends a response message to the first computing node through the CXL switch, 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.
[0406] It should be noted that the process of the second computing node determining the third storage location is consistent with the process of the first computing node determining the second storage location, and can be specifically referred to in S503; the process of the second computing node storing the response message in the third storage location is consistent with the process of the first computing node storing the notification message in the second storage location, and the specific implementation method can be referred to in S504, which will not be repeated here.
[0407] The data transmission method provided in this embodiment is that the first computing node can store target data in a first storage location through a CXL switching device, and can store a notification message corresponding to the target data in a 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 based on 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, 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 high, and reading and writing 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 a computer cluster.
[0408] Finally, with reference to FIG15 , the data transmission process in the computer cluster when the CXL device is a CXL switching device is described through a specific example.
[0409] FIG15 is a schematic diagram of another data transmission process according to an embodiment of the present application. Referring to FIG15 , based on FIG13 , assume that the first computing node is H1, the second computing node is H8, storage node D6 includes a message space, and storage nodes D1, D2, D3, D4, D5, D6, and D7 include data spaces (not shown).
[0410] 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:
[0411] First, H1 can send a second storage request to CXL switch 1. CXL switch 1 can forward the second storage request to CXL switch 3 via CXL switch 2, so that CXL switch 3 can store the target data in storage location 1 of D2 according to the second storage request. Second, H1 can send a fourth storage request to CXL switch 1. CXL switch 1 can forward the second storage request to CXL switch 5 via CXL switch 2, so that CXL switch 5 can store the notification message in the second storage location of the message space according to the fourth storage request. Second, H8 can retrieve the notification message from the second storage location via switch 5, switch 2, and switch 3, and parse the notification message to obtain storage location 1 (the first storage location). Finally, H8 can read the target data from storage location 1 of D7 via CXL switch 3.
[0412] Optionally, in other embodiments, there may be multiple second computing nodes. If there are multiple second computing nodes, the first computing node may broadcast a notification message to the multiple second computing nodes via the CXL switch, so that each second computing node can obtain target data via the CXL switch based on the notification message.
[0413] FIG16 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application. The data transmission device 10 is applied to the first computing node of a computer cluster, wherein the computer cluster includes multiple computing nodes, storage nodes, and a computing interconnect CXL device. The multiple computing nodes are connected to the storage node via the CXL device. The storage node includes a message space and a data space. The data transmission device 10 includes: a processing module 11, wherein:
[0414] The processing module 11 is configured to store target data in a first storage location via 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;
[0415] The processing module 11 is further configured to store the notification message corresponding to the target data in a second storage location via the CXL device;
[0416] 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.
[0417] 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.
[0418] In one possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;
[0419] The processing module 11 is further configured to obtain 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;
[0420] 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 available message bit.
[0421] In one possible implementation, the message space includes a plurality of message bits, each of which is used to store a notification message;
[0422] The processing module 11 is further configured to determine a candidate message bit corresponding to the second computing node;
[0423] The processing module 11 is further configured to obtain 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;
[0424] 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.
[0425] 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:
[0426] sending a third storage request to the multi-host CXL device, the third storage request including the location information of the second storage location and the notification message;
[0427] The third storage request is used to request the multi-host CXL device to store the notification message in the second storage location.
[0428] 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:
[0429] sending a fourth storage request to the CXL switch device, the fourth storage request including the location information of the second storage location and the notification message;
[0430] The fourth storage request is used to instruct the CXL switch device to store the notification message in the second storage location.
[0431] In a possible implementation, the processing module 11 is further configured to:
[0432] Determining a candidate storage node, where the candidate storage node includes the data space;
[0433] 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.
[0434] 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:
[0435] 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;
[0436] The first storage request is used to request the multi-host CXL device to store the target data in the first storage location.
[0437] 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:
[0438] 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;
[0439] The second storage request is used to instruct the CXL switch device to store the target data in the first storage location.
[0440] 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.
[0441] FIG17 is a schematic diagram of the structure of another data transmission device provided in an embodiment of the present application. The data transmission device 20 is applied to the second computing node of a computer cluster, wherein the computer cluster includes multiple computing nodes, storage nodes, and a computing interconnect CXL device. The multiple computing nodes are connected to the storage nodes via the CXL device. The storage nodes include a message space and a data space. The data transmission device 20 includes: an acquisition module 21 and a processing module 22, wherein:
[0442] The acquisition module 21 is configured to acquire a notification message from a second storage location via the CXL device, the notification message being configured 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;
[0443] The processing module 22 is configured to read target data from the first storage location via the CXL device according to the notification message.
[0444] The data transmission device provided in this embodiment can be used to execute the data transmission method performed 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.
[0445] FIG18 is a structural diagram of another data transmission device provided in an embodiment of the present application. Based on FIG17 , the data transmission device 20 may further include a sending module 23, wherein:
[0446] The sending module 23 is configured to send a response message to the first computing node through the CXL device. The response message includes a read result of the target data, where the read result is a read success or a read failure.
[0447] In a possible implementation, the processing module 22 is further configured to:
[0448] The spatial location of the message space in the storage node sent by the receiving management node.
[0449] 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 configured to:
[0450] Acquire first description information of the message space, where the first description information includes the number of unread messages;
[0451] When the number of unread messages is greater than zero, a notification message is acquired from a second storage location via the CXL.
[0452] 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 configured to:
[0453] Acquire second description information, where the second description information includes the number of unread messages in the to-be-selected message position corresponding to the second computing node;
[0454] When the number of unread messages is greater than zero, a notification message is acquired from a second storage location via the CXL.
[0455] In one possible implementation,
[0456] 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
[0457] 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.
[0458] The data transmission device provided in this embodiment can be used to execute the data transmission method performed 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.
[0459] Figure 19 is a schematic diagram of the structure of a computing node provided in an embodiment of the present application. The computing node can be a first computing node. The computing node can also be a second computing node. As shown in Figure 19, the computing node 30 may include: a processor 31 and a memory 32, wherein the processor 31 and the memory 32 can communicate; illustratively, the processor 31 and the memory 32 communicate via a communication bus 33, the memory 32 is used to store computer-executable instructions, and the processor 31 is used to call the computer-executable instructions in the memory to execute the data transmission method described in any of the above method embodiments.
[0460] Optionally, the processing module 11 of FIG. 16 , the acquisition module 21 and the processing module 22 of FIG. 17 , and the sending module 23 of FIG. 18 may be implemented by the processor 31 .
[0461] Optionally, the computing node 30 may further include a communication interface, which may include a transmitter and / or a receiver.
[0462] 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 through the network card.
[0463] 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 any conventional processor. The steps of the method disclosed in the embodiments of the present application may be directly implemented as being executed by a hardware processor, or may be implemented by a combination of hardware and software modules in the processor.
[0464] An embodiment of the present application provides a meter management node, comprising: a processor, and a memory communicatively connected to the processor;
[0465] The memory stores computer-executable instructions;
[0466] The processor executes the 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.
[0467] An embodiment of the present application provides a computer-readable storage medium having computer-executable instructions stored thereon; the computer-executable instructions are used to implement the data transmission method as described in any of the above embodiments.
[0468] 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.
[0469] All or part of the steps of 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, it performs the steps of the above-mentioned method embodiments; and the aforementioned memory (storage medium) includes: read-only memory (ROM), RAM, flash memory, hard disk, solid-state drive, magnetic tape, floppy disk, optical disc, and any combination thereof.
[0470] The present application embodiment is described with reference to the flow chart and / or block diagram of the method, device (system), and computer program product according to the embodiment of the present application. It should be understood that each process and / or box in the flow chart and / or block diagram and the combination of the process and / or box in the flow chart and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to the processing unit of a general-purpose computer, a special-purpose computer, an embedded processor or other programmable terminal device to produce a machine, so that the instruction executed by the processing unit of the computer or other programmable terminal device produces a device for realizing the function specified in one process or multiple processes and / or one box or multiple boxes of the flow chart.
[0471] These computer program instructions may also be stored in a computer-readable memory that can direct 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 that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0472] 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, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0473] Obviously, those skilled in the art may 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 intended to include such modifications and variations.
[0474] In the embodiments of the present application, the terms "include", "comprise" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising 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, an element defined by the sentence "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising 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 are not necessarily 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 three relationships may exist. For example, A and / or B 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.
[0475] Those skilled in the art will readily conceive of other embodiments of the present application after considering the invention disclosed in the specification and practice. The embodiments of the present application are intended to cover any variations, uses, or adaptations of the embodiments of the present application, which follow the general principles of the embodiments of the present application and include common knowledge or customary technical means in the art 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 switch device. 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.
Citation Information
Patent Citations
Distributed storage method, device and system, electronic equipment and storage medium
CN114816229A
Communication method, device and system
CN114911725A
Message split-aggregation for multi-stage electrical interconnection network
US20230254253A1