A data processing method, system, product and computer readable storage medium

By directly and autonomously performing data synchronization based on address mapping in a distributed system, the problems of high data synchronization complexity and low efficiency between computing nodes are solved, achieving efficient data exchange and improving computing efficiency.

CN119149269BActive Publication Date: 2025-01-21INSPUR (BEIJING) ELECTRONICS INFORMATION IND CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411630478.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-15
Publication Date
2025-01-21
Estimated Expiration
2044-11-15

AI Technical Summary

Technical Problem

In distributed systems and parallel computing scenarios, data synchronization between computing nodes is complex and inefficient, mainly due to the dependence on CPU intervention for data writing and reading.

Method used

By determining the target storage area in multiple data storage areas of the shared memory, and directly performing data synchronization based on address mapping, avoiding CPU involvement, and directly transferring data between the local cache area and the target storage area.

Benefits of technology

It reduces the complexity of data synchronization, improves data synchronization efficiency, reduces CPU overhead, and achieves efficient data exchange between computing nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119149269B_ABST
    Figure CN119149269B_ABST
Patent Text Reader

Abstract

The present invention discloses a data processing method, system, product and computer-readable storage medium, which relates to the field of data processing. To solve the problem of low data synchronization efficiency between multiple computing nodes, the data processing method includes determining a target storage area in multiple data storage areas of a shared memory; the target storage area is a data storage area that has an address mapping relationship with a local cache area; in response to the existence of to-be-computed data written by a remote computing node in the target storage area, the to-be-computed data is written into the local cache area; in response to the existence of local calculation result data in the local cache area, the local calculation result data is written into the target storage area. In the present invention, data synchronization is directly and autonomously performed between computing nodes based on address mapping, thereby improving data synchronization efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of data processing, and in particular to a data processing method, system, product and computer-readable storage medium. Background Art

[0002] In distributed systems, parallel computing and other application scenarios, data needs to be shared between computing nodes to achieve effective collaboration and coordination. Currently, data synchronization between computing nodes mainly relies on the intervention of the CPU (Central Processing Unit). When a computing node completes a computing task, its result data needs to be written to the memory of another computing node through the CPU, and then the computing node is notified to read the data from the memory. This processing method increases the complexity of data synchronization and reduces synchronization efficiency.

[0003] Therefore, how to provide a solution to the above technical problems is a problem that those skilled in the art need to solve at present. Summary of the invention

[0004] The purpose of the present invention is to provide a data processing method, system, product and computer-readable storage medium, which can directly and autonomously synchronize data between computing nodes based on address mapping, thereby improving data synchronization efficiency.

[0005] To solve the above technical problems, the present invention provides a data processing method, which is applied to a computing node, and the data processing method comprises: determining a target storage area among multiple data storage areas of a shared memory; the target storage area is a data storage area that has an address mapping relationship with a local cache area; in response to the presence of data to be calculated written by a remote computing node in the target storage area, writing the data to be calculated into the local cache area; in response to the presence of local calculation result data in the local cache area, writing the local calculation result data into the target storage area.

[0006] Optionally, the process of determining a target storage area among multiple data storage areas of a shared memory includes: determining multiple target storage areas among multiple data storage areas of a shared memory, the multiple target storage areas including a first storage area and a second storage area; in response to the presence of data to be calculated written by a remote computing node in the target storage area, the process of writing the data to be calculated into the local cache area includes: in response to the presence of data to be calculated written by a remote computing node in the second storage area, writing the data to be calculated into the local cache area; in response to the presence of local calculation result data in the local cache area, the process of writing the local calculation result data into the target storage area includes: in response to the presence of local calculation result data in the local cache area, writing the local calculation result data into the first storage area.

[0007] Optionally, there are multiple local cache areas, and the multiple local cache areas include a first cache area and a second cache area; in response to the presence of data to be calculated written by a remote computing node in the second storage area, the process of writing the data to be calculated into the local cache area includes: in response to the presence of data to be calculated written by a remote computing node in the second storage area, writing the data to be calculated into the first cache area; in response to the presence of local calculation result data in the local cache area, the process of writing the local calculation result data into the first storage area includes: in response to the presence of local calculation result data in the second cache area, writing the local calculation result data into the first storage area.

[0008] Optionally, the data processing method further includes: adjusting the number of the local cache areas and / or the capacity of the local cache areas according to a current computing scenario.

[0009] Optionally, according to the current computing scenario, the process of adjusting the number of local cache areas and / or the capacity of the local cache areas includes: determining the current cache configuration of the local computing node, and the adjustment conditions of the current computing scenario; the current cache configuration includes the number and capacity of the first cache areas, and the number and capacity of the second cache areas; in response to the current cache configuration satisfying the adjustment conditions, adjusting the number of local cache areas and / or the capacity of the local cache areas.

[0010] Optionally, the data processing method also includes: determining the read data requirement space and the write data requirement space of the local computing node according to the current computing scenario; in response to the read data requirement space being greater than the write data requirement space and the total capacity of the first cache area being less than the total capacity of the second cache area, determining that the adjustment condition is a first adjustment condition; in response to the write data requirement space being greater than the read data requirement space and the total capacity of the first cache area being greater than the total capacity of the second cache area, determining that the adjustment condition is a second adjustment condition.

[0011] Optionally, the process of determining a target storage area among multiple data storage areas in a shared memory includes: obtaining a mapping relationship table; the mapping relationship table is used to characterize the address mapping relationship between the local cache area of ​​each computing node and the various data storage areas in the shared memory in the current computing scenario; based on the mapping relationship table, determining a target storage area that has an address mapping relationship with the local cache area.

[0012] Optionally, the data processing method also includes: determining the computing dependency between each of the computing nodes according to the current computing scenario; for each of the computing nodes, establishing an address mapping relationship between the local cache area of ​​the computing node and at least one data storage area in the shared memory according to the computing dependency; and obtaining the mapping relationship table based on all the address mapping relationships.

[0013] Optionally, while writing the local calculation result data to the target storage area, the data processing method also includes: updating the access status of the target storage area in the mapping relationship table; in response to the presence of data to be calculated written by a remote computing node in the target storage area, the process of writing the data to be calculated into the local cache area includes: in response to the access status of the target storage area in the mapping relationship table being write completed, determining that there is data to be calculated written by a remote computing node in the target storage area, and writing the data to be calculated into the local cache area.

[0014] Optionally, the shared memory is a memory space divided from a storage space of a storage device independent of the computing node.

[0015] Optionally, the storage space of the storage device is divided into multiple memory spaces, and the capacities of the multiple memory spaces are different; the data processing method also includes: based on the current computing scenario, determining the shared memory in the multiple memory spaces.

[0016] To solve the above technical problems, the present invention also provides a data synchronization system, comprising: a shared memory, including multiple data storage areas; multiple computing nodes, the computing nodes including a local cache area and a processing module, the processing module is used to determine a target storage area that has an address mapping relationship with the local cache area among the multiple data storage areas, and move the data stored in the target storage area and the local cache area.

[0017] Optionally, the processing module is specifically used to write the data to be calculated into the local cache area in response to the presence of data to be calculated written by a remote computing node in the target storage area, and to write the local calculation result data into the target storage area in response to the presence of local calculation result data in the local cache area.

[0018] Optionally, the data synchronization system further includes: a processing node, for obtaining calculation result data from a target storage area corresponding to a calculation node that executes the last calculation task in response to the completion of the calculation tasks corresponding to each of the plurality of calculation nodes in the current calculation scenario.

[0019] Optionally, the processing node is further used to write the initial data to be calculated into a target storage area corresponding to the computing node that executes the first computing task in the current computing scenario before the first computing task starts to be executed.

[0020] Optionally, the data synchronization system further includes: a control component, including a memory module that divides the shared memory.

[0021] Optionally, the control component is used to transmit the calculation result data to the corresponding data storage area in the remote shared memory when the target storage area corresponding to the computing node executing the last computing task in the current computing scenario has calculation result data.

[0022] In order to solve the above technical problems, the present invention further provides a data processing system, comprising a plurality of data synchronization systems as described in any one of the above items.

[0023] To solve the above technical problem, the present invention further provides a computer program product, including a computer program / instruction, which implements the steps of the data processing method as described in any one of the above items when executed by a processor.

[0024] To solve the above technical problems, the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the data processing method described in any one of the above items are implemented.

[0025] The present application provides a data processing method, for each computing node, a mapping relationship between a local cache area and a data storage area in a shared memory is established, in a computing scenario where data synchronization is required, it is identified that there is data to be calculated in the target storage area, and the data to be calculated is moved to the local cache area, and when the computing node completes the current computing task, the local computing result data written in the local cache area is moved to the corresponding target storage area, so that other computing nodes can obtain the computing result data from the target cache area as the data to be calculated, and the data synchronization process does not require CPU participation, and each computing node directly and autonomously synchronizes data based on address mapping, which reduces the complexity of data synchronization and improves data synchronization efficiency. The present application also provides a data synchronization system, a data processing system, a computer program product, and a computer-readable storage medium, which have the same beneficial effects as the above-mentioned data processing method. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0027] Figure 1 A flow chart of the steps of a data processing method provided by the present invention;

[0028] Figure 2 A schematic diagram of data synchronization between multiple computing nodes provided by the present invention;

[0029] Figure 3 A schematic diagram of the structure of a data processing device provided by the present invention;

[0030] Figure 4 A structural schematic diagram of a data synchronization system provided by the present invention;

[0031] Figure 5 A structural schematic diagram of a data processing system provided by the present invention;

[0032] Figure 6 This is a schematic diagram of the structure of a computer-readable storage medium provided by the present invention. DETAILED DESCRIPTION

[0033] The core of the present invention is to provide a data processing method, system, product and computer-readable storage medium, wherein each computing node directly and autonomously performs data synchronization based on address mapping, thereby improving data synchronization efficiency.

[0034] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0035] First, please refer to Figure 1 The present invention provides a data processing method, which is applied to a computing node. The data processing method includes:

[0036] S101: determining a target storage area among multiple data storage areas of a shared memory; the target storage area is a data storage area having an address mapping relationship with a local cache area.

[0037] In this embodiment, a storage device is included in the storage node, and a storage area is pre-configured in the storage device as a shared memory. After each computing node is connected to the storage device through a preset communication bus, each computing node is configured to access the shared memory through the preset communication bus. Exemplarily, the preset communication bus can be a CXL (Compute Express Link) bus. In the working mode of the CXL bus, each computing node is configured as a master mode, and the storage device that divides the shared memory is configured as a slave mode. Each master mode node can access the resources on the slave mode node. The shared memory is divided into multiple data storage areas to support the data access requirements of different computing nodes. Each data storage area can be used as an independent management unit to facilitate the rapid reading, writing and synchronization of data. When each node is connected and the master-slave mode of the node is configured, an address mapping relationship between the local cache area of ​​each computing node and the corresponding data storage area in the shared memory is established. The address mapping relationship can be dynamically adjusted based on different computing scenarios.

[0038] In this embodiment, each computing node first determines the target storage area that has an address mapping relationship with the local cache area in multiple data storage areas of the shared memory, so as to subsequently monitor whether there is data in the target storage area, or write the local calculation result data into the corresponding target storage area. Through shared memory, computing nodes can quickly exchange data, reducing the overhead of traditional I / O operations, and can easily add or remove computing nodes as needed without reconstructing the entire data storage architecture. Through address mapping, computing nodes can directly access the required data, improving the efficiency of data access.

[0039] It can be understood that the target storage area having an address mapping relationship with the local cache area of ​​the computing node can be one or more, which can be configured according to actual engineering needs, and this embodiment does not limit this.

[0040] S102: In response to the existence of data to be calculated written by the remote computing node in the target storage area, the data to be calculated is written into the local cache area.

[0041] In this embodiment, the computing node continuously monitors the target storage area in the corresponding shared memory to detect whether there is new data written, and the new data here includes but is not limited to the data to be calculated required by the computing node to perform the next computing task. Specifically, the monitoring of the target storage area can be achieved through hardware interrupts, polling mechanisms, or memory mapping notifications. Once the data to be calculated in the target storage area is detected, the computing node directly transfers the data to be calculated from the target storage area of ​​the shared memory to the local cache area through a high-speed communication module (such as a CXL module), avoiding the data from being processed by the CPU, reducing the overhead of data transmission, and improving efficiency. After the data arrives at the local cache area, the computing node can immediately start processing the data without waiting for a complete I / O operation. By pre-fetching the data to be calculated to the local cache area, the delay in data access is reduced, the computing efficiency is improved, and it is ensured that the computing node can continuously process data without pausing due to waiting for data. Since the data is directly transmitted between the memories, there is no need for CPU intervention, which reduces the CPU overhead on data synchronization.

[0042] Among them, the remote computing node is specifically other computing nodes other than itself. Assume that there are 3 computing nodes in total, namely the first computing node N1, the second computing node N2, and the third computing node N3. When N1 executes the steps of this embodiment, N1 is a local computing node, and N2 and / or N3 are remote computing nodes. When N2 executes the steps of this embodiment, N2 is a local computing node, and N1 and / or N3 are remote computing nodes. When N3 executes the steps of this embodiment, N3 is a local computing node, and N1 and / or N2 are remote computing nodes.

[0043] S103: In response to the existence of local calculation result data in the local cache area, write the local calculation result data into the target storage area.

[0044] In this embodiment, after completing the computing task, the computing node will generate local computing result data in the local cache area, and then write the local computing result data in the local cache area to the target storage area through the high-speed communication module, so that other computing nodes can obtain data from the target storage area as their own data to be calculated for subsequent processing.

[0045] As an optional embodiment, when writing local calculation result data in the local cache area to the target storage area, it is also necessary to determine the remaining storage space of the target storage area. If the remaining storage space is insufficient, the storage node can be triggered to clean up the data stored in the target storage area, or to compress the local calculation result data, or to dynamically expand the storage capacity of the target storage area.

[0046] Considering that the local cache area can correspond to multiple target storage areas, correspondingly, one target storage area can also correspond to multiple computing nodes. In order to ensure data consistency, when any computing node accesses the target storage area, the target storage area can be locked so that only the high-speed communication module of one computing node can access the target storage area at the same time. The access includes moving data from the target storage area and writing data to the target storage area.

[0047] As another optional embodiment, in order to facilitate the distinction between the data to be calculated and the local calculation result data, the local cache area can be divided, with a part of the local cache area being used to store the data to be calculated, and another part of the local cache area being used to store the local calculation result data. Of course, in addition to this storage method, other storage methods can also be used, which can be selected according to actual engineering needs. This embodiment does not make specific limitations here.

[0048] It can be seen that in this embodiment, for each computing node, a mapping relationship between the local cache area and the data storage area in the shared memory is established. In a computing scenario that requires data synchronization, it is identified that there is data to be calculated in the target storage area, and the data to be calculated is moved to the local cache area. When the computing node completes the current computing task, the local computing result data written in the local cache area is moved to the corresponding target storage area, so that other computing nodes can obtain the calculation result data from the target cache area as the data to be calculated. The data synchronization process does not require the participation of the CPU, and each computing node directly and autonomously synchronizes data based on address mapping, which reduces the complexity of data synchronization and improves data synchronization efficiency.

[0049] Based on the above embodiments:

[0050] In an exemplary embodiment, there are multiple local cache areas, the multiple local cache areas include a first cache area and a second cache area, multiple target storage areas are determined in multiple data storage areas of the shared memory, the multiple target storage areas include a first storage area and a second storage area; in response to the presence of data to be calculated written by a remote computing node in the second storage area, the data to be calculated is written into the first cache area; in response to the presence of local calculation result data in the second cache area, the local calculation result data is written into the first storage area.

[0051] In this embodiment, for a certain computing node, the number of local cache areas of each computing node is multiple, including at least one first cache area and at least one second cache area, wherein the first cache area is used to store data to be calculated, which may be loaded from an external data source or generated by other computing nodes, and the second cache area is used to store local calculation result data, which is the result obtained after the local computing node processes the data in the first cache area. Similarly, for a certain computing node, the first storage area has an address mapping relationship with the first cache area, which is used to store data to be calculated, which can be accessed by one or more computing nodes, and the second storage area has an address mapping relationship with the second cache area, which is used to store calculation result data, which can be used by other computing nodes for further calculation or analysis. Exemplarily, the second cache area of ​​computing node A has an address mapping relationship with the second storage area (C1) in the shared memory, and the calculation result data of computing node A will be written into C1, and the first cache area of ​​computing node B has an address mapping relationship with the second storage area (C1) in the same shared memory. This indicates that the first cache area of ​​node B will read the calculation result data of node A (stored in C1) as its data to be calculated. This mapping relationship allows data to flow efficiently between computing nodes. The calculation results of node A can be used as input data for node B, thus realizing pipeline data processing. Through address mapping, the number of times the actual data moves on the network can be reduced because multiple nodes can share access to the same storage area. Different computing nodes can work in parallel, and the output of one node can be directly used as the input of another node without waiting for data replication or transmission. In distributed application scenarios, efficient data processing and resource utilization can be achieved, thereby improving overall performance.

[0052] As an exemplary embodiment, refer to Figure 2As shown in the figure, it is assumed that there are four computing nodes, namely G0, G1, G2 and G3. After completing the configuration of the hardware connection of each node, it is necessary to configure the mapping area of ​​the shared memory of CXL, and divide the address of the shared memory RAM (Random Access Memory) of CXL into 5 areas, namely G0 input storage area, G1 input storage area, G2 input storage area, G3 input storage area and G3 output storage area. The input data of the CPU is stored in the address of the G0 input storage area, and the address of the internal cache0 storage area (first cache area) of G0 is mapped to the address of the G0 input storage area, so that when the central processing unit CPU writes data to the G0 input storage area on the shared RAM, the CXL module of G0 can automatically synchronize the data in the G0 input storage area to the cache0 storage area inside G0. In this way, after the CPU writes the data to be calculated to the G0 input storage area on the shared RAM, the CXL module automatically synchronizes the data to be calculated to the cache0 storage area of ​​G0 for calculation.

[0053] The addresses of G0's cache1 storage area (second cache area) and G1's input storage area on shared RAM are mapped based on CXL. After G0 completes data calculation, the local calculation result data is generated at the address of G0's cache1 storage area. The CXL module will synchronize the data at the cache1 address to the G1 input storage area on shared RAM. Similarly, G1's cache0 (first cache area) is mapped to the address of G1's input storage area on shared RAM. When G0's local calculation result data is stored in the address of G1's input storage area on shared RAM, the local calculation result data completed by G0 will be automatically synchronized to G1's cache0 as G1's input data, so that G1 can continue to calculate data. Similarly, G1's cache1 is mapped to the address of G2's input storage area on shared memory, and G2's cache0 is mapped to the address of G2's input storage area on shared memory. G2's cache1 is mapped to the address of G3's input storage area on shared memory, and G3's cache0 is mapped to the address of G3's input storage area on shared memory. After completing the corresponding address mapping, G2 and G3 can achieve automatic data synchronization with the assistance of the CXL module. G3's cache1 and the G3 output storage area address of the shared memory are mapped. After G3 completes the calculation, the CPU can obtain the calculation result data from the address of the G3 output storage area of ​​the shared memory.

[0054] In an exemplary embodiment, the data processing method further includes: adjusting the number of local cache areas and / or the capacity of the local cache areas according to the current computing scenario.

[0055] In this embodiment, the computing task type, data volume, computing complexity, etc. in the current computing scenario can be monitored to evaluate whether the above parameters lead to frequent overflow or low utilization of the cache area. Based on the evaluation results, the number of local cache areas and / or the capacity of the local cache area are adjusted. The adjustment process may involve remapping or allocation operations, that is, after adjusting the cache area, the memory access strategy and data synchronization mechanism of the computing node may need to be reconfigured. The solution of this embodiment can flexibly adjust the number and capacity of local cache areas according to the needs of the computing scenario to optimize the performance of the distributed computing system.

[0056] In an exemplary embodiment, according to the current computing scenario, the process of adjusting the number of local cache areas and / or the capacity of the local cache areas includes:

[0057] Determine the current cache configuration of the local computing node and the adjustment conditions of the current computing scenario; the current cache configuration includes the number and capacity of the first cache area and the number and capacity of the second cache area;

[0058] In response to the current cache configuration satisfying the adjustment condition, the number of local cache areas and / or the capacity of the local cache areas are adjusted.

[0059] In this embodiment, the current cache configuration of the local computing node can be monitored, including the number and capacity of the first cache area and the number and capacity of the second cache area, and the requirements of the current computing scenario are analyzed, such as data size, processing speed, synchronization frequency, etc. According to the monitoring data and evaluation results, the conditions for when the cache configuration needs to be adjusted are determined, such as when the cache utilization exceeds a certain threshold or the computing task type changes, and the current cache configuration is compared with the adjustment conditions. If the current cache configuration meets the adjustment conditions, the following operations are performed to calculate the number and capacity of new cache areas according to preset rules or algorithms.

[0060] In an exemplary embodiment, the data processing method also includes: determining the read data requirement space and the write data requirement space of the local computing node according to the current computing scenario; in response to the read data requirement space being greater than the write data requirement space, and the total capacity of the first cache area being less than the total capacity of the second cache area, determining the adjustment condition to be the first adjustment condition; in response to the write data requirement space being greater than the read data requirement space, and the total capacity of the first cache area being greater than the total capacity of the second cache area, determining the adjustment condition to be the second adjustment condition.

[0061] In this embodiment, the characteristics of the current computing task are evaluated, including the amount of data processed, the ratio of read and write operations, etc. The required space for reading data and the required space for writing data are determined, wherein the required space for reading data is calculated according to the task requirements to calculate the total amount of data that needs to be read from the target storage area during the processing. The required space for writing data is the total amount of data that needs to be generated in the cache area by the local computing node during the execution of the computing task. If the required space for reading data is larger than the required space for writing data, and the total capacity of the first cache area is smaller than the total capacity of the second cache area, it may be necessary to increase the capacity of the first cache area to accommodate the reading requirements. If the required space for writing data is larger than the required space for reading data, and the total capacity of the first cache area is larger than the total capacity of the second cache area, it may be necessary to increase the capacity of the second cache area to accommodate the writing requirements. By adjusting the size of the cache area according to actual needs, it can be ensured that the cache resources are used most effectively. The cache configuration that adapts to the read and write requirements can reduce the I / O bottleneck, improve the data processing speed, and dynamically adjust the cache according to the changes in the computing scenario, thereby improving the flexibility and adaptability of the system.

[0062] In an exemplary embodiment, the process of determining a target storage area among multiple data storage areas in a shared memory includes: obtaining a mapping relationship table; the mapping relationship table is used to characterize the address mapping relationship between the local cache area of ​​each computing node and each data storage area in the shared memory in the current computing scenario; based on the mapping relationship table, determining the target storage area that has an address mapping relationship with the local cache area.

[0063] In this embodiment, the mapping relationship table includes but is not limited to the corresponding relationship between the computing node identifier (such as node ID), the cache area identifier (such as the first cache area, the second cache area), the cache area address range, the corresponding data storage area identifier (such as the first storage area, the second storage area), the data storage area address range, etc. The computing node needs to parse the mapping relationship table. For each local cache area, the mapping relationship table is used to find the target storage area with which the address mapping relationship exists. Through the mapping relationship table, the management process of data between the cache area and the storage area can be simplified. Rapidly determining the target storage area can reduce the delay of data access and improve the data processing speed. In this embodiment, the computing node can effectively manage the data synchronization between the cache area and the storage area to ensure that the data is correctly written to the corresponding target storage area.

[0064] In an exemplary embodiment, the data processing method also includes: determining the computing dependency between the computing nodes based on the current computing scenario; for each computing node, establishing an address mapping relationship between the local cache area of ​​the computing node and at least one data storage area in the shared memory based on the computing dependency; and obtaining a mapping relationship table based on all address mapping relationships.

[0065] In this embodiment, the task flow in the current computing scenario is analyzed, the data dependency between each computing node is determined, and the direction and order of the data flow are determined, which can be represented by a directed acyclic graph (DAG) or other data structures. For each computing node, the data that needs to be read and written is determined according to the computing dependency, and the corresponding data storage area in the shared memory is allocated to each cache area, an address mapping relationship is established, and the mapping relationships of all computing nodes are merged into a global mapping relationship table. In this embodiment, it can be ensured that the cache area of ​​each computing node correctly corresponds to the data storage area in the shared memory, thereby achieving efficient data access and management during data synchronization and computing.

[0066] In an exemplary embodiment, while writing the local calculation result data to the target storage area, the data processing method also includes: updating the access status of the target storage area in the mapping relationship table; in response to the existence of data to be calculated written by a remote computing node in the target storage area, the process of writing the data to be calculated into the local cache area includes: in response to the access status of the target storage area in the mapping relationship table being write completed, determining that there is data to be calculated written by a remote computing node in the target storage area, and writing the data to be calculated into the local cache area.

[0067] In this embodiment, it is necessary to monitor the access status of the target storage area, which involves tracking the read and write operations of the storage area. Once the state of the storage area is detected to have changed (for example, from "writing in progress" to "writing completed"), the corresponding entry in the mapping relationship table is immediately updated. Each computing node checks in the mapping relationship table whether the access status of the target storage area is "writing completed". If the access status is "writing completed", it is determined that there is data to be calculated written by the remote computing node in the target storage area, and the data to be calculated that is determined to exist is written from the target storage area to the local cache area. In this embodiment, it can ensure that the data synchronization between computing nodes is timely and accurate, thereby supporting efficient parallel computing.

[0068] In an exemplary embodiment, the shared memory is a memory space divided from a storage space of a storage device independent of the computing node.

[0069] In a distributed computing system, shared memory is usually used to share data between multiple computing nodes. The shared memory in this embodiment is divided in the storage space of a storage device independent of the computing node and can be accessed by multiple computing nodes, which helps to improve the utilization of memory resources, reduce waste, and reduce the memory requirements on each computing node, thereby reducing the overall hardware cost. The shared memory on the independent storage device can be dynamically resized as needed, making it easier for the system to expand to adapt to different load requirements. Multiple computing nodes can share data more easily. The shared memory independent of the computing node can support heterogeneous computing environments, in which different computing nodes may have different hardware configurations and performance characteristics. Compared with the memory of the computing node, the shared memory on the storage device usually has higher data persistence. If the shared memory device is physically separated from the computing node, then the failure of the computing node may not affect the shared memory device, thereby achieving fault isolation. Since the shared memory is located on an independent storage device, it is easier to perform backup and recovery operations without interfering with the computing node.

[0070] In this embodiment, the storage device independent of the computing node may specifically be a RAM resource of a Field-Programmable Gate Array (FPGA) connected to the CXL bus.

[0071] In an exemplary embodiment, the storage space of the storage device is divided into multiple memory spaces, and the capacities of the multiple memory spaces are different; the data processing method also includes: based on the current computing scenario, determining a shared memory in the multiple memory spaces.

[0072] In this embodiment, according to the total capacity of the storage device and the expected computing requirements, it is divided into multiple memory spaces of different capacities. Each memory space can be allocated different capacities according to its intended purpose. For example, some spaces may be used for caching, while others are used for data storage. The requirements of the current computing scenario are analyzed, including data size, computing complexity, communication mode between nodes, etc., and the most suitable memory space is selected as shared memory based on the results of the scenario analysis. For example, a memory space that is sufficient to accommodate the data of the current computing scenario is selected, a memory space with sufficient bandwidth and low latency is selected to meet the requirements of high-performance computing, and a memory space that supports high concurrent access is selected so that multiple nodes can access data at the same time. By dividing multiple memory spaces, the system can flexibly select the most suitable memory resources according to different computing requirements, allocate memory space according to actual needs, avoid resource waste, improve resource utilization, select a memory space that matches the current computing scenario, optimize data processing speed, and improve overall computing efficiency. Different memory spaces can be managed and maintained independently, simplifying the complexity of system management.

[0073] Second, please refer to Figure 3 The present invention also provides a data processing device, the data processing device comprising:

[0074] The first determination module 11 is used to determine the target storage area among the multiple data storage areas of the shared memory; the target storage area is a data storage area that has an address mapping relationship with the local cache area; the first writing module 12 is used to write the data to be calculated into the local cache area in response to the presence of the data to be calculated written by the remote computing node in the target storage area; the second writing module 13 is used to write the local calculation result data into the target storage area in response to the presence of the local calculation result data in the local cache area.

[0075] It can be seen that in this embodiment, for each computing node, a mapping relationship between the local cache area and the data storage area in the shared memory is established. In a computing scenario that requires data synchronization, it is identified that there is data to be calculated in the target storage area, and the data to be calculated is moved to the local cache area. When the computing node completes the current computing task, the local computing result data written in the local cache area is moved to the corresponding target storage area, so that other computing nodes can obtain the calculation result data from the target cache area as the data to be calculated. The data synchronization process does not require the participation of the CPU, and each computing node directly and autonomously synchronizes data based on address mapping, which reduces the complexity of data synchronization and improves data synchronization efficiency.

[0076] In an exemplary embodiment, the process of determining a target storage area among multiple data storage areas of a shared memory includes: determining multiple target storage areas among multiple data storage areas of a shared memory, the multiple target storage areas including a first storage area and a second storage area; in response to the presence of data to be calculated written by a remote computing node in the target storage area, the process of writing the data to be calculated into a local cache area includes: in response to the presence of data to be calculated written by a remote computing node in the second storage area, writing the data to be calculated into the local cache area; in response to the presence of local calculation result data in the local cache area, the process of writing the local calculation result data into the target storage area includes: in response to the presence of local calculation result data in the local cache area, writing the local calculation result data into the first storage area.

[0077] In an exemplary embodiment, there are multiple local cache areas, and the multiple local cache areas include a first cache area and a second cache area; in response to the presence of data to be calculated written by a remote computing node in the second storage area, the process of writing the data to be calculated into the local cache area includes: in response to the presence of data to be calculated written by a remote computing node in the second storage area, writing the data to be calculated into the first cache area; in response to the presence of local calculation result data in the local cache area, the process of writing the local calculation result data into the first storage area includes: in response to the presence of local calculation result data in the second cache area, writing the local calculation result data into the first storage area.

[0078] In an exemplary embodiment, the data processing device further includes: an adjustment module, configured to adjust the number of local cache areas and / or the capacity of the local cache areas according to a current computing scenario.

[0079] In an exemplary embodiment, the process of adjusting the number of local cache areas and / or the capacity of local cache areas according to the current computing scenario includes: determining the current cache configuration of the local computing node and the adjustment conditions of the current computing scenario; the current cache configuration includes the number and capacity of the first cache area, and the number and capacity of the second cache area; in response to the current cache configuration satisfying the adjustment conditions, adjusting the number of local cache areas and / or the capacity of the local cache areas.

[0080] In an exemplary embodiment, the data processing device also includes: a second determination module, used to determine the read data requirement space and the write data requirement space of the local computing node according to the current computing scenario; in response to the read data requirement space being greater than the write data requirement space, and the total capacity of the first cache area being less than the total capacity of the second cache area, determining the adjustment condition to be the first adjustment condition; in response to the write data requirement space being greater than the read data requirement space, and the total capacity of the first cache area being greater than the total capacity of the second cache area, determining the adjustment condition to be the second adjustment condition.

[0081] In an exemplary embodiment, the process of determining a target storage area among multiple data storage areas in a shared memory includes: obtaining a mapping relationship table; the mapping relationship table is used to characterize the address mapping relationship between the local cache area of ​​each computing node and each data storage area in the shared memory in the current computing scenario; based on the mapping relationship table, determining the target storage area that has an address mapping relationship with the local cache area.

[0082] In an exemplary embodiment, the data processing device also includes: a third determination module, which is used to determine the computing dependency between each computing node according to the current computing scenario; for each computing node, establish an address mapping relationship between the local cache area of ​​the computing node and at least one data storage area in the shared memory according to the computing dependency; and obtain a mapping relationship table based on all address mapping relationships.

[0083] In an exemplary embodiment, the data processing device also includes: an update module for updating the access status of the target storage area in the mapping relationship table; in response to the presence of data to be calculated written by a remote computing node in the target storage area, the process of writing the data to be calculated into the local cache area includes: in response to the access status of the target storage area in the mapping relationship table being write completed, determining that there is data to be calculated written by a remote computing node in the target storage area, and writing the data to be calculated into the local cache area.

[0084] In an exemplary embodiment, the shared memory is a memory space divided from a storage space of a storage device independent of the computing node.

[0085] In an exemplary embodiment, the storage space of the storage device is divided into multiple memory spaces, and the capacities of the multiple memory spaces are different; the data processing device also includes: a fourth determination module, which is used to determine the shared memory in the multiple memory spaces based on the current computing scenario.

[0086] Third, please refer to Figure 4 The present invention also provides a data synchronization system, including: a shared memory 21, including multiple data storage areas; multiple computing nodes 22, the computing nodes 22 include a local cache area and a processing module, the processing module is used to determine a target storage area that has an address mapping relationship with the local cache area among the multiple data storage areas, and move the data stored in the target storage area and the local cache area.

[0087] In this embodiment, a storage device is included in the storage node, and a storage area is pre-configured in the storage device as a shared memory 21. After each computing node 22 is connected to the storage device through a preset communication bus, each computing node 22 is configured to access the shared memory 21 through the preset communication bus. Exemplarily, the preset communication bus can be a CXL bus. In the working mode of the CXL bus, each computing node 22 is configured as a master mode, and the storage device that divides the shared memory 21 is divided into a slave mode. Each node in the master mode can access the resources on the node in the slave mode. The shared memory 21 is divided into multiple data storage areas to support the data access requirements of different computing nodes 22. Each data storage area can be used as an independent management unit to facilitate the rapid reading, writing and synchronization of data. When each node is connected and the master-slave mode of the node is configured, an address mapping relationship between the local cache area of ​​each computing node 22 and the corresponding data storage area in the shared memory 21 is established. The address mapping relationship can be dynamically adjusted based on different computing scenarios.

[0088] In this embodiment, each computing node 22 first determines the target storage area that has an address mapping relationship with the local cache area in multiple data storage areas of the shared memory 21, so as to subsequently monitor whether the target storage area has data, or write the local calculation result data into the corresponding target storage area. Through the shared memory 21, the computing nodes 22 can quickly exchange data, reducing the overhead of traditional I / O operations, and can easily add or remove computing nodes 22 as needed without reconstructing the entire data storage architecture. Through address mapping, the computing nodes 22 can directly access the required data, improving the efficiency of data access. It can be understood that the target storage area that has an address mapping relationship with the local cache area of ​​the computing node 22 can be one or more, which can be configured according to the actual engineering needs, and this embodiment is not limited here.

[0089] The computing node 22 continuously monitors the target storage area in the corresponding shared memory 21 to detect whether there is new data written. The new data here includes but is not limited to the data to be calculated required by the computing node 22 to perform the next computing task. Specifically, the monitoring of the target storage area can be achieved through hardware interrupts, polling mechanisms, or memory mapping notifications. Once the data to be calculated in the target storage area is detected, the computing node 22 directly transfers the data to be calculated from the target storage area of ​​the shared memory 21 to the local cache area through a high-speed communication module (such as a CXL module), avoiding the data from being processed by the CPU, reducing the overhead of data transmission, and improving efficiency. After the data arrives at the local cache area, the computing node 22 can immediately start processing the data without waiting for a complete I / O operation. By pre-fetching the data to be calculated to the local cache area, the delay in data access is reduced, the computing efficiency is improved, and it is ensured that the computing node 22 can continuously process data without pausing due to waiting for data. Since the data is directly transmitted between memories, there is no need for CPU intervention, which reduces the CPU's overhead on data synchronization.

[0090] In this embodiment, after completing the computing task, the computing node 22 will generate calculation result data in the local cache area, and then write the local calculation result data in the local cache area to the target storage area through the high-speed communication module, so that other computing nodes 22 can obtain data from the target storage area as their own data to be calculated for subsequent processing.

[0091] As an optional embodiment, when writing the local calculation result data in the local cache area to the target storage area, it is also necessary to determine the remaining storage space of the target storage area. If the remaining storage space is insufficient, the storage node can be triggered to clean up the data stored in the target storage area, or to compress the local calculation result data, or to dynamically expand the storage capacity of the target storage area.

[0092] Considering that the local cache area can correspond to multiple target storage areas, correspondingly, one target storage area can also correspond to multiple computing nodes 22. In order to ensure data consistency, when any computing node 22 accesses the target storage area, the target storage area can be locked so that only the high-speed communication module of one computing node 22 can access the target storage area at the same time. The access includes moving data from the target storage area and writing data to the target storage area.

[0093] As another optional embodiment, in order to facilitate the distinction between the data to be calculated and the local calculation result data, the local cache area can be divided, a part of the local cache area is used to store the data to be calculated, and the other part of the local cache area is used to store the local calculation result data. Of course, in addition to this storage method, other storage methods can also be used, which can be selected according to the actual engineering needs, and this embodiment is not specifically limited here. It can be seen that in this embodiment, for each computing node 22, a mapping relationship between the local cache area and the data storage area in the shared memory 21 is established. In the computing scenario where data synchronization is required, it is identified that there is data to be calculated in the target storage area, and the data to be calculated is moved to the local cache area. When the computing node 22 completes the current computing task, the local calculation result data written in the local cache area is moved to the corresponding target storage area, so that other computing nodes 22 can obtain the calculation result data from the target cache area as the data to be calculated. The data synchronization process does not require the participation of the CPU, and each computing node 22 directly and autonomously synchronizes data based on address mapping, which reduces the complexity of data synchronization and improves the efficiency of data synchronization.

[0094] In an exemplary embodiment, the processing module is specifically used to write the data to be calculated into the local cache area in response to the existence of the data to be calculated written by the remote computing node 22 in the target storage area, and to write the local calculation result data into the target storage area in response to the existence of local calculation result data in the local cache area.

[0095] In an exemplary embodiment, the data synchronization system also includes: a processing node 23, which is used to obtain calculation result data from the target storage area corresponding to the calculation node 22 that executes the last calculation task in response to multiple computing nodes 22 completing their respective corresponding computing tasks in the current computing scenario.

[0096] In an exemplary embodiment, the processing node 23 is further configured to write the initial data to be calculated into a target storage area corresponding to the computing node 22 that executes the first computing task before the first computing task in the current computing scenario starts to be executed.

[0097] In an exemplary embodiment, the data synchronization system further includes: a control component 24 including a memory module that divides the shared memory 21 .

[0098] In an exemplary embodiment, the control component 24 is used to transfer the calculation result data to the corresponding data storage area in the remote shared memory 21 when there is calculation result data in the target storage area corresponding to the computing node 22 executing the last computing task in the current computing scenario.

[0099] In an exemplary embodiment, the process of determining a target storage area among multiple data storage areas of a shared memory 21 includes: determining multiple target storage areas among multiple data storage areas of the shared memory 21, the multiple target storage areas including a first storage area and a second storage area; in response to the presence of data to be calculated written by a remote computing node 22 in the target storage area, the process of writing the data to be calculated into a local cache area includes: in response to the presence of data to be calculated written by a remote computing node 22 in the second storage area, writing the data to be calculated into the local cache area; in response to the presence of local calculation result data in the local cache area, the process of writing the local calculation result data into the target storage area includes: in response to the presence of local calculation result data in the local cache area, writing the local calculation result data into the first storage area.

[0100] In an exemplary embodiment, there are multiple local cache areas, and the multiple local cache areas include a first cache area and a second cache area; in response to the presence of data to be calculated written by the remote computing node 22 in the second storage area, the process of writing the data to be calculated into the local cache area includes: in response to the presence of data to be calculated written by the remote computing node 22 in the second storage area, writing the data to be calculated into the first cache area; in response to the presence of local calculation result data in the local cache area, the process of writing the local calculation result data into the first storage area includes: in response to the presence of local calculation result data in the second cache area, writing the local calculation result data into the first storage area.

[0101] In an exemplary embodiment, the processing node 23 is further configured to adjust the number of local cache areas and / or the capacity of the local cache areas according to the current computing scenario.

[0102] In an exemplary embodiment, the process of adjusting the number of local cache areas and / or the capacity of local cache areas according to the current computing scenario includes: determining the current cache configuration of the local computing node 22, and the adjustment conditions of the current computing scenario; the current cache configuration includes the number and capacity of the first cache area, and the number and capacity of the second cache area; in response to the current cache configuration satisfying the adjustment conditions, adjusting the number of local cache areas and / or the capacity of the local cache areas.

[0103] In an exemplary embodiment, the processing node 23 is also used to determine the read data requirement space and the write data requirement space of the local computing node according to the current computing scenario; in response to the read data requirement space being greater than the write data requirement space, and the total capacity of the first cache area being less than the total capacity of the second cache area, the adjustment condition is determined to be the first adjustment condition; in response to the write data requirement space being greater than the read data requirement space, and the total capacity of the first cache area being greater than the total capacity of the second cache area, the adjustment condition is determined to be the second adjustment condition.

[0104] In an exemplary embodiment, the process of determining a target storage area among multiple data storage areas of a shared memory 21 includes: obtaining a mapping relationship table; the mapping relationship table is used to characterize the address mapping relationship between the cache areas of each computing node 22 and each data storage area in the shared memory 21 in the current computing scenario; according to the mapping relationship table, determining a target storage area that has an address mapping relationship with a local cache area.

[0105] In an exemplary embodiment, the processing node 23 is also used to determine the computing dependency between the computing nodes 22 according to the current computing scenario; for each computing node 22, an address mapping relationship is established between the cache area of ​​the computing node 22 and at least one data storage area in the shared memory 21 according to the computing dependency; and a mapping relationship table is obtained based on all address mapping relationships.

[0106] In an exemplary embodiment, the computing node 22 is also used to update the access status of the target storage area in the mapping relationship table. In response to the existence of data to be calculated written by the remote computing node 22 in the target storage area, the process of writing the data to be calculated into the local cache area includes: in response to the access status of the target storage area in the mapping relationship table being write completed, determining that there is data to be calculated written by the remote computing node 22 in the target storage area, and writing the data to be calculated into the local cache area.

[0107] In an exemplary embodiment, the shared memory 21 is a memory space divided from a storage space of a storage device independent of the computing node 22 .

[0108] In an exemplary embodiment, the storage space of the storage device is divided into multiple memory spaces, and the capacities of the multiple memory spaces are different; the processing node 23 is also used to determine the shared memory 21 in the multiple memory spaces based on the current computing scenario.

[0109] In a fourth aspect, the present invention further provides a data processing system, comprising a plurality of data synchronization systems as described in any one of the above embodiments.

[0110] Please refer to Figure 5 , Figure 5 A data processing system including two data synchronization systems is shown. Figure 5In the network, two GPU (Graphics Processing Unit) network clusters (computing device clusters) are connected together through the network. The local CPU (processing node) creates an RDMA (Remote Direct Memory Access) connection, which is responsible for data synchronization between the two GPU data clusters. Specifically, the two local CPUs create an RDMA connection, establish a data synchronization connection in the local CXL shared memory area, and the two control components (such as FPGA) are connected based on SWITCH (switch chip). After the GPU network cluster on one side completes the calculation, the result data in the shared memory will be transferred to the shared memory area on the other side based on the RDMA configuration. After the other side receives the input data from the shared memory, it starts the local data calculation according to the local calculation order. After completing the overall calculation of the two GPU clusters, the CPUs at both ends synchronize the data. In the process of data synchronization of multiple GPU clusters, remote data synchronization is realized based on RDMA. Among them, RDMA technology is a communication protocol used to directly access the memory of one computer system from the memory of another computer system in the network to transmit data without the CPU participating in running programs and adding workloads. It allows data to be transmitted directly between network adapters, thereby significantly reducing the CPU processing overhead during the communication process.

[0111] In a fifth aspect, the present invention further provides a computer program product, comprising a computer program / instruction, which, when executed by a processor, implements the steps of the data processing method described in any of the above embodiments.

[0112] For an introduction to a computer program product provided by the present invention, please refer to the above embodiments, and the present invention will not be described in detail here.

[0113] A computer program product provided by the present invention has the same beneficial effects as the above data processing method.

[0114] For the sixth aspect, please refer to Figure 6 The present invention further provides a computer-readable storage medium 30, on which a computer program 31 is stored. When the computer program 31 is executed by a processor, the steps of the data processing method described in any of the above embodiments are implemented.

[0115] The computer-readable storage medium 30 may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.

[0116] It should also be noted that, in this specification, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises", "comprising" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the statement "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device including the element.

[0117] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present invention. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A data processing method, characterized in that: Applied to a computing node, the data processing method includes: Determine a target storage area among multiple data storage areas of the shared memory; the target storage area is a data storage area having an address mapping relationship with the local cache area; In response to the existence of the data to be calculated written by the remote computing node in the target storage area, writing the data to be calculated into the local cache area; In response to the existence of local calculation result data in the local cache area, writing the local calculation result data into the target storage area; The number of the local cache areas is multiple, and the multiple local cache areas include a first cache area and a second cache area; The process of determining the target storage area among multiple data storage areas in the shared memory includes: Determine a plurality of target storage areas in a plurality of data storage areas of a shared memory, wherein the plurality of target storage areas include a first storage area and a second storage area; In response to the existence of the to-be-calculated data written by the remote computing node in the target storage area, the process of writing the to-be-calculated data into the local cache area includes: In response to the presence of to-be-calculated data written by the remote computing node in the second storage area, writing the to-be-calculated data into the first cache area; In response to the existence of local calculation result data in the local cache area, the process of writing the local calculation result data into the target storage area includes: In response to the existence of local calculation result data in the second cache area, the local calculation result data is written into the first storage area.

2. The data processing method according to claim 1, characterized in that: The data processing method further includes: According to the current computing scenario, the number of the local cache areas and / or the capacity of the local cache areas are adjusted.

3. The data processing method according to claim 2, characterized in that: According to the current computing scenario, the process of adjusting the number of the local cache areas and / or the capacity of the local cache areas includes: Determine a current cache configuration of the local computing node and an adjustment condition of the current computing scenario; the current cache configuration includes the number and capacity of the first cache area and the number and capacity of the second cache area; In response to the current cache configuration satisfying the adjustment condition, the number of the local cache areas and / or the capacity of the local cache areas are adjusted.

4. The data processing method according to claim 3, characterized in that: The data processing method further includes: Determine the required space for reading data and the required space for writing data of the local computing node according to the current computing scenario; In response to the required space for read data being greater than the required space for write data, and the total capacity of the first cache area being less than the total capacity of the second cache area, determining that the adjustment condition is a first adjustment condition; In response to the write data required space being greater than the read data required space and the total capacity of the first cache area being greater than the total capacity of the second cache area, the adjustment condition is determined to be a second adjustment condition.

5. The data processing method according to claim 1, characterized in that: The process of determining the target storage area among multiple data storage areas in the shared memory includes: Obtaining a mapping relationship table; the mapping relationship table is used to characterize the address mapping relationship between the local cache area of ​​each computing node and each data storage area in the shared memory in the current computing scenario; According to the mapping relationship table, a target storage area having an address mapping relationship with the local cache area is determined.

6. The data processing method according to claim 5, characterized in that: The data processing method further includes: Determine the computing dependencies between the computing nodes according to the current computing scenario; For each of the computing nodes, establishing an address mapping relationship between a local cache area of ​​the computing node and at least one data storage area in the shared memory according to the computing dependency relationship; The mapping relationship table is obtained according to all the address mapping relationships.

7. The data processing method according to claim 5, characterized in that: While writing the local calculation result data into the target storage area, the data processing method further includes: Updating the access status of the target storage area in the mapping relationship table; In response to the existence of the to-be-calculated data written by the remote computing node in the target storage area, the process of writing the to-be-calculated data into the local cache area includes: In response to the access status of the target storage area in the mapping relationship table being write completed, it is determined that there is data to be calculated written by a remote computing node in the target storage area, and the data to be calculated is written into the local cache area.

8. The data processing method according to any one of claims 1 to 7, characterized in that: The shared memory is a memory space divided from a storage space of a storage device independent of the computing node.

9. The data processing method according to claim 8, characterized in that: The storage space of the storage device is divided into a plurality of memory spaces, and the capacities of the plurality of memory spaces are different; The data processing method further includes: Based on the current computing scenario, the shared memory is determined in the plurality of memory spaces.

10. A data synchronization system for implementing the data processing method according to any one of claims 1 to 9, characterized in that: include: Shared memory, including multiple data storage areas; A plurality of computing nodes, each of which comprises a local cache area and a processing module, wherein the processing module is used to determine a target storage area having an address mapping relationship with the local cache area among the plurality of data storage areas, and to move data stored in the target storage area and the local cache area.

11. The data synchronization system according to claim 10, characterized in that: The processing module is specifically used to write the data to be calculated written by the remote computing node into the local cache area in response to the existence of the data to be calculated written by the remote computing node in the target storage area, and to write the local calculation result data into the target storage area in response to the existence of local calculation result data in the local cache area.

12. The data synchronization system according to claim 11, characterized in that: The data synchronization system further includes: The processing node is used to obtain the calculation result data from the target storage area corresponding to the calculation node that executes the last calculation task in response to the plurality of calculation nodes completing the calculation tasks corresponding to them in the current calculation scenario.

13. The data synchronization system according to claim 12, characterized in that: The processing node is also used to write the initial data to be calculated into the target storage area corresponding to the computing node that executes the first computing task in the current computing scenario before the first computing task starts to be executed.

14. The data synchronization system according to claim 10, characterized in that: The data synchronization system further includes: The control component includes a memory module that divides the shared memory.

15. The data synchronization system according to claim 14, characterized in that: The control component is used to transmit the calculation result data to the corresponding data storage area in the remote shared memory when there is calculation result data in the target storage area corresponding to the calculation node executing the last calculation task in the current calculation scenario.

16. A data processing system, characterized in that: The invention comprises a plurality of data synchronization systems as described in any one of claims 10 to 15.

17. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the data processing method according to any one of claims 1 to 9 are implemented.

18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the data processing method according to any one of claims 1 to 9 are implemented.

Citation Information

Patent Citations

  • Data reading method and apparatus

    CA2971913A1

  • Method and device for improving access performance and storage medium

    CN110442533A