Method and apparatus for data processing

CN122933630APending Publication Date: 2026-10-16HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510414678.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-02
Publication Date
2026-10-16

Smart Images

  • Figure CN122933630A_ABST
    Figure CN122933630A_ABST
Patent Text Reader

Abstract

The present disclosure provides a method, device and computer readable storage medium for data processing. In some embodiments, a first device sends first information to a second device in a plurality of devices, the first information comprising a plurality of data blocks in data; receives second information from the second device, the second information comprising first processing results corresponding to part of the plurality of data blocks; and determines a processing result corresponding to the data based on the first processing results. In this way, the first device can determine the result of the data based on the processing result of the part of the data blocks of the second device which processes slower, so that the first device can not wait for all data blocks to be processed, and at the same time, can save computing resources while ensuring that the processing time is not delayed by using the processing result of the second device which processes slower.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this disclosure mainly relate to the field of communications, and more specifically, to a method and apparatus for data processing. Background Technology

[0002] With the rapid development of information technology, distributed networks have gradually become a crucial infrastructure for modern computing and communication. A distributed network refers to a system architecture that distributes computing and storage resources across multiple nodes, enabling collaborative work through network connections. In recent years, with the rise of big data and artificial intelligence technologies, the application scenarios of distributed networks have continued to expand. Especially in fields such as cloud computing, edge computing, and the Internet of Things (IoT), distributed networks provide powerful computing support, enabling complex computing tasks to be processed in parallel across multiple nodes, significantly improving computing speed and responsiveness. Therefore, designing efficient distributed computing solutions and fully utilizing network-side computing resources has become key to further developing distributed network technology. Summary of the Invention

[0003] The embodiments of this disclosure provide a data processing scheme that can improve the efficiency of data processing.

[0004] In a first aspect, a data processing method is provided. The method is performed by a first device (such as a network device or a cloud server), a device or chip within the first device, or a device including the first device. The method includes: sending first information to a second device among a plurality of devices, the first information including a plurality of data blocks in the data; receiving second information from the second device, the second information including a first processing result corresponding to a portion of the data blocks among the plurality of data blocks; and determining a processing result corresponding to the data based on the first processing result.

[0005] In this way, the first device can determine the result of the data based on the processing result of a portion of the data blocks of the slower second device, so that the first device does not have to wait for all data blocks to finish processing, and can make use of the processing result of the slower second device, thus effectively utilizing the computing power resources of the second device while ensuring that the processing time is not delayed.

[0006] In some possible embodiments, the first information instructs the second device to process multiple data blocks in a first order. Specifically, the first information may indicate a specific order, that is, instruct the second device to process multiple data blocks in the order indicated by the first information. Alternatively, the first information may not indicate a first order, that is, the first information does not indicate a specific processing order, and the second device can determine the processing order of the multiple data blocks itself. The first order is intended to instruct the second device to process multiple data blocks serially, that is, to process one data block before processing the next data block.

[0007] In this way, the first device can receive the processing results of the data blocks that the second device has already processed in a timely manner.

[0008] In some possible embodiments, the method further includes: acquiring capability information of a plurality of devices, wherein the capability information of a second device among the plurality of devices includes at least one of the following: computing power information of the second device, or parallel processing capability information of the second device. Specifically, computing power information can indicate the data processing capability of the second device, determined by multiple factors such as processor performance, memory bandwidth, and storage capacity. Parallel processing capability information can indicate the performance of the second device when performing multi-task or multi-threaded computation, determined by multiple factors such as the number of processor cores, the number of threads, and the architecture design.

[0009] In some possible embodiments, the method further includes: determining the number of multiple data blocks based on the capability information of the second device.

[0010] In this way, the first device can determine the corresponding number of data blocks based on the capability information of the second device, enabling the second device to efficiently complete data block processing within its maximum processing capacity.

[0011] In some possible embodiments, the method further includes: determining a second number of data blocks processed by the multiple devices based on capability information of the multiple devices, wherein the number of multiple data blocks sent to the second device is less than the second number. Specifically, the sum of the number of multiple data blocks sent to the multiple devices is the second number.

[0012] In some possible embodiments, the method further includes: segmenting the data into a first number of data blocks based on capability information of multiple devices. In some possible embodiments, the method further includes: encoding the first number of data blocks into a second number of data blocks.

[0013] In some possible embodiments, dividing data into a first number of data blocks based on the capability information of multiple devices includes: determining a first number based on the number of multiple devices and the capability information of the multiple devices; and dividing data into a first number of data blocks based on the first number.

[0014] Specifically, the first device determines a first quantity and a second quantity based on the number of multiple devices and the capability information of the multiple devices; it divides the data into a first quantity of data blocks based on the first quantity and encodes the data blocks divided into the first quantity into a second quantity of data blocks based on the second quantity.

[0015] In this way, the first device can determine the first quantity and the second quantity based on the capability information of the second device. By dividing the data into the first quantity of data blocks and encoding them into the second quantity of data blocks, the second quantity of data blocks can be reasonably allocated to multiple devices, ensuring efficient data processing.

[0016] In some possible embodiments, the first information includes at least one of the following: the number of multiple data blocks, or an identifier of the processing task associated with the data.

[0017] In some possible embodiments, the second information includes an identifier of the processing task associated with the data.

[0018] In this way, the first device can associate the identifier of the processing task associated with the data with the data block, avoiding calculation errors caused by confusion of data from different tasks.

[0019] In some possible embodiments, the method further includes determining that the data has been processed if the number of processed data blocks in the data is greater than or not less than a recovery threshold.

[0020] In some possible embodiments, the method further includes sending an instruction message to a second device, the instruction message instructing the second device to stop processing the remaining portion of a plurality of data blocks, excluding a portion of the data blocks.

[0021] In this way, the first device can promptly send an instruction to the second device to stop processing the remaining data blocks when it determines that the data has been processed, thus preventing the second device from continuing to execute invalid tasks and saving computing resources.

[0022] In some possible embodiments, determining the processing result corresponding to the data includes: determining the processing result corresponding to the data based on the processing result of the data blocks that have already been processed in the data.

[0023] In this way, the first device can recover the data by decoding based on the processing results of some already processed data blocks, thus avoiding the delay caused by waiting for the second device.

[0024] In a second aspect, a data processing method is provided. This method can be performed by a second device (such as a terminal device, network device, network element in a core network (CN) entity, or cloud server) or a device or chip within the second device, or a device including the second device. The method includes: receiving first information, the first information including multiple data blocks in the data; and sending second information, the second information including a first processing result corresponding to a portion of the multiple data blocks, the first processing result being used to determine the processing result corresponding to the data.

[0025] In some possible embodiments, the method further includes processing multiple data blocks in a first order.

[0026] In some possible embodiments, the method further includes: sending capability information, wherein the capability information includes at least one of the following: computing power information, or parallel processing capability information.

[0027] In some possible embodiments, the first information includes at least one of the following: the number of multiple data blocks, or an identifier of the processing task associated with the data.

[0028] In some possible embodiments, sending the second information includes: for each predetermined number of data blocks processed, sending the processing results corresponding to the predetermined number of data blocks and the identifier of the processing task associated with the data.

[0029] In this way, the second device can promptly and gradually send the processing results of the processed data blocks to the first device, and associate identifiers with the processing results of the data blocks. This allows the second device to indicate to the first device the data to which the data block belongs, enabling the first device to accurately record the processing results of each data block.

[0030] In some possible embodiments, the method further includes receiving an indication message that indicates to stop processing the remaining portion of a plurality of data blocks, excluding a subset of the data blocks.

[0031] In some possible embodiments, the method further includes terminating processing of the remaining data blocks.

[0032] In a third aspect, a data processing apparatus (e.g., a first apparatus (such as a network device or cloud server) or a device or chip within the first apparatus) is provided, including components for performing operations based on the methods described in the first aspect or any of the embodiments thereof. Optionally, the components may be implemented as units, modules, etc.

[0033] In a fourth aspect, a data processing apparatus (e.g., a second apparatus (such as a terminal device, network device, network element in a CN entity, or cloud server) or an apparatus or chip within a second apparatus) is provided, including components for performing operations based on the methods described in the second aspect or any of the embodiments thereof. Optionally, the components may be implemented as units, modules, etc.

[0034] In a fifth aspect, a data processing apparatus is provided, including a processor configured to perform, together with a transceiver, the operation of the methods described in the first aspect or any of the embodiments thereof.

[0035] In some possible embodiments, the data processing apparatus further includes a memory storing instructions that are executed by a processor.

[0036] In a sixth aspect, a data processing apparatus is provided, including a processor configured to perform, together with a transceiver, the operation of the methods described in the second aspect or any of the embodiments thereof.

[0037] In some possible embodiments, the data processing apparatus further includes a memory storing instructions that are executed by a processor.

[0038] In a seventh aspect, a computer-readable storage medium is provided, on which a computer program is stored, which, when executed by a processor, implements operations based on the methods of the first to second aspects or any of the embodiments thereof.

[0039] In an eighth aspect, a chip or chip system is provided. The chip or chip system includes processing circuitry configured to perform operations based on the methods described in the first to second aspects or any of the embodiments thereof.

[0040] In a ninth aspect, a communication system is provided, comprising: a data processing apparatus as described in the third aspect and a data processing apparatus as described in the fourth aspect, or including a data processing device as described in the fifth aspect and a data processing device as described in the sixth aspect, or a first apparatus and a second apparatus, wherein the first apparatus is configured to implement the method as described in the first aspect or any embodiment, and the second apparatus is configured to implement the method as described in the second aspect or any embodiment.

[0041] In a tenth aspect, a computer program or computer program product is provided. The computer program or computer program product is tangibly stored on a computer-readable medium and includes computer-executable instructions that, when executed, cause a device to perform operations based on the methods described in the first to second aspects or any of the embodiments thereof.

[0042] It should be noted that some of the embodiments and beneficial effects of the aforementioned methods are also applicable to apparatus, communication equipment, computer-readable storage media, chips or chip systems, communication systems, computer programs or computer program products, and will not be repeated here for the sake of brevity. Attached Figure Description

[0043] The above and other features, advantages and aspects of the embodiments of this disclosure will become more apparent when taken in conjunction with the accompanying drawings and the following detailed description.

[0044] In the accompanying drawings, the same or similar reference numerals denote the same or similar elements, wherein:

[0045] Figure 1 A schematic diagram of a system in which some embodiments of the present disclosure can be implemented is shown;

[0046] Figure 2 A schematic block diagram of a system in which some embodiments of the present disclosure can be implemented is shown;

[0047] Figure 3 A schematic flowchart of a communication process according to some embodiments of the present disclosure is shown;

[0048] Figure 4 Schematic diagrams illustrating data segmentation and processing according to some example embodiments of the present disclosure are shown;

[0049] Figure 5 A schematic flowchart illustrating a task initiation node initiating task unloading according to some embodiments of the present disclosure is shown;

[0050] Figure 6 A schematic flowchart illustrating the task unloading initiated by the aggregation node according to some embodiments of the present disclosure is shown;

[0051] Figure 7 A schematic block diagram of a communication apparatus according to some embodiments of the present disclosure is shown;

[0052] Figure 8 A schematic block diagram of a communication apparatus according to some embodiments of the present disclosure is shown; and

[0053] Figure 9 A schematic block diagram of an example device that can be used to implement embodiments of the present disclosure is shown. Detailed Implementation

[0054] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0055] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. The term "and / or" means at least one of the two items associated therewith. For example, "A and / or B" means A, B, or A and B. Other explicit and implicit definitions may also be included below. In the description of embodiments of this disclosure, unless expressly stated to the contrary, "a plurality" means at least two, i.e., two or more.

[0056] The technical solutions of the embodiments disclosed herein are applicable to communication systems that follow any appropriate communication protocol, such as: Universal Mobile Telecommunications Service (UMTS), Long Term Evolution (LTE) systems, Wideband Code Division Multiple Access (WCDMA), Code Division Multiple Access 2000 (CDMA2000), Time Division-Synchronization Code Division Multiple Access (TD-SCDMA), Frequency Division Duplex (FDD) systems, Time Division Duplex (TDD), fifth-generation (5G) systems or New Radio (NR), future evolution communication systems, etc.

[0057] It should be understood that the embodiments of this disclosure can be applied to any communication system with similar problems, such as wireless local area networks (WLANs), wired communication systems, or other communication systems developed in the future.

[0058] As used in this disclosure, the term "terminal device" refers to any terminal device capable of wired or wireless communication with network devices or with each other. A terminal device may sometimes be referred to as User Equipment (UE). A terminal device can be any type of mobile terminal, fixed terminal, or portable terminal. As examples, a terminal device may include a mobile phone, site, unit, device, mobile terminal (MT), subscription station, portable subscription station, internet node, communicator, desktop computer, laptop computer, notebook computer, tablet computer, personal communication system device, personal navigation device, personal digital assistant (PDA), positioning device, radio receiver, e-book device, gaming device, Internet of Things (IoT) device, in-vehicle device, aircraft, virtual reality (VR) device, augmented reality (AR) device, wearable device, terminal device in a 5G network, or any terminal device in an evolved Public Land Mobile Network (PLMN), other devices that can be used for communication, or any combination thereof. Embodiments of this disclosure are not intended to limit this.

[0059] As used in this disclosure, the term "network device" refers to an entity or node that can be used to communicate with terminal devices, such as an access network device (i.e., an access network equipment). An access network device can be a means deployed in a RAN to provide wireless communication functionality for mobile terminals, such as a RAN network device. Access network devices can include various types of base stations (BS). As examples, access network devices can include various forms of macro base stations, micro base stations, pico base stations, femtobase stations, relay stations, access points, satellites, remote radio units (RRUs), radio heads (RHs), remote radio heads (RRHs), etc., and can also be devices that perform base station functions in device-to-device (D2D) communication and machine-to-machine (M2M) communication. In systems employing different wireless access technologies, the names of access network equipment may vary. For example, in Long Term Evolution (LTE) networks, it is called an evolved Node B (eNB or eNodeB); in 3G networks, it is called a Node B (NB); and in 5G networks, it may be called a g Node B (gNB) or NR Node B (NR NB), and so on. In some scenarios, access network equipment may include a Central Unit (CU) and / or a Distributed Unit (DU). CU and DU can be placed in different locations; for example, the DU may be located remotely in a high-traffic area, while the CU is located in a central equipment room. Alternatively, CU and DU can be located in the same equipment room. CU and DU can also be different components within the same rack. Access network equipment can also be devices deployed in an Open RAN (O-RAN) to provide wireless communication functions for mobile terminals; for example, access network equipment may include an Open-CU (O-CU) and / or an Open-DU (O-DU). For ease of description, in the subsequent embodiments of this disclosure, the devices that provide wireless communication functions for mobile terminals are collectively referred to as network devices, and the embodiments of this disclosure are no longer specifically limited.

[0060] Since large language models garnered widespread attention, the field of artificial intelligence has witnessed a new wave of technological advancements, with large model technology emerging as a key component. Large model technology refers to the training and application of AI models on a massive scale, particularly in deep learning, where the number of parameters, computational demands, and dataset size have increased significantly. Large language models, exemplified by ChatGPT (Chat Generative Pre-trained Transformer), leverage improved computing power and data resources to perform various tasks through natural language interaction, demonstrating cross-scenario, cross-domain, and multi-purpose task processing capabilities. Therefore, large models have the potential to become a crucial infrastructure for the future of artificial intelligence.

[0061] While large-scale models possess powerful capabilities and represent a significant technological milestone in the development of artificial intelligence, they still face numerous challenges and risks, such as high deployment costs, unreliable reliability, insufficient interpretability, and limited transferability in small-data scenarios. Due to the massive number of parameters and data scale of large-scale models, the computational and power consumption required for training and inference are also high, making independent deployment on edge devices difficult. Addressing this issue, improving inference speed and reducing usage costs are key to large-scale applications. Simultaneously, when edge devices struggle to independently handle AI tasks related to large models, the distributed computing resources of wireless networks can effectively assist edge devices in accelerating the execution of AI tasks, thus providing a practical solution.

[0062] As mentioned earlier, terminal devices can utilize distributed computing resources on the network side to complete local computing tasks. Specifically, terminal devices can offload some local computing tasks that cannot be processed independently (such as tasks related to artificial intelligence / machine learning) to computing nodes on the network side for processing. For example, when a terminal device needs to run a large language model locally, it can use distributed computing power on the network side to handle this task.

[0063] Specifically, the terminal device can divide the data into K parts, where K is a positive integer, and transmit these K parts to K computing nodes on the network side via a network device. After processing its corresponding part, each computing node can return the processing result to the terminal device via the network device. Based on the processing results from the K computing nodes, the terminal device can reconstruct and determine the final data processing result.

[0064] In this scenario, some computing nodes operate at slower speeds, causing the terminal device to wait for their results before completing data processing, thus creating a latency bottleneck. To optimize this process, the terminal device can encode the K segments of data. For example, it can use Maximum Distance Separable Code (MDS-Code) to encode the data into N segments, where N ≥ K and N is a positive integer. By leveraging the redundancy of the MDS code, the terminal device can successfully reconstruct the computational result of the data based on the processing results of the remaining minimum K segments, even if at most (NK) segments of data are lost.

[0065] Therefore, terminal devices can discard the processing results of slower computing nodes, thereby accelerating task processing and improving overall computing efficiency. However, while this approach can improve efficiency, it may also lead to a waste of the computing resources of the discarded computing nodes.

[0066] In view of this, embodiments of the present disclosure provide a distributed computing scheme. In this scheme, a first device can send first information to a second device among multiple devices, the first information including multiple data blocks in the data. Then, the first device can receive second information from the second device, the second information including first processing results corresponding to some of the data blocks, and determine the processing result corresponding to the data based on the first processing results. In this way, the second device can send the computation results of the processed data blocks to the first device in a timely and gradual manner, avoiding delays caused by the first device waiting for the slower second device to complete the computation tasks of all data blocks. This allows for the maximum utilization of the computing resources of all second devices without affecting processing time, greatly improving the utilization rate of computing resources.

[0067] Figure 1 A schematic diagram of a system 100 in which some embodiments of the present disclosure can be implemented is shown. Figure 1 The system 100 includes multiple cloud servers 110-1 to 110-N (where N is a positive integer), terminal devices 120, network devices 130, and core network (CN) entities 140.

[0068] In some examples, cloud server 110 can be various functional modules in cloud services that can provide computing processing services, such as virtual machines and containers in cloud services, graphics processing unit (GPU) acceleration nodes that specifically support artificial intelligence (AI) tasks, etc.

[0069] In some examples, CN entity 140 may include multiple functional modules (i.e., network elements) that perform different tasks, such as user access management, session control, and traffic optimization. The embodiments of this disclosure do not limit the name of CN entity 140.

[0070] In some examples, terminal device 120 and network device 130 can communicate using any communication protocol, such as a currently known or future-developed communication protocol.

[0071] In some examples, a transmission from terminal device 120 to network device 130 can be referred to as an uplink transmission, and a transmission from network device 130 to terminal device 120 can be referred to as a downlink transmission.

[0072] It should be noted that the following is shown Figure 1 System 100 in this document is provided merely to facilitate the description of embodiments of this disclosure and is not intended to limit the application environment of embodiments of this disclosure. It is understood that embodiments of this disclosure can be applied to other systems or environments besides system 100, and this disclosure is not limiting in this regard.

[0073] Figure 2 A schematic block diagram of a system 200 in which some embodiments of the present disclosure can be implemented is shown. Figure 2 The system 200 includes a task initiation node 210, a collection node 220, and multiple computing nodes: a first computing node 230-1, a second computing node 230-1, and a third computing node 230-3, wherein the task initiation node 210 and the collection node 220 can be implemented as a single node.

[0074] It should be understood that this disclosure does not limit the number of computing nodes; in this embodiment, three computing nodes are shown for illustrative purposes.

[0075] In some embodiments, the task initiating node 210 may be a network element in the terminal device 120, network device 130, or CN entity 140. The task initiating node 210 may determine whether to offload local computing tasks to the computing node 230 based on the current computing load, network status, and data complexity.

[0076] In some embodiments, the aggregation node 220 may be a network element in the network device 130, the CN entity 140, or the cloud server 110. The aggregation node 220 may receive data from the task initiating node 210 and be responsible for segmenting, encoding, distributing, collecting, and decoding the data.

[0077] In some embodiments, the computing node 230 may be a network element in the terminal device 120, network device 130, CN entity 140, or cloud server 110. Alternatively, the computing node 230 may be one or more computing cores in the terminal device 120, network device 130, CN entity 140, or cloud server 110. The computing node 230 may receive and process a portion of the data allocated by the aggregation node 220.

[0078] For example, terminal device 120 can initiate data offloading as task initiating node 210. Specifically, terminal device 120 can offload complex computing tasks to computing node 230 based on the current computing load and network status.

[0079] For example, terminal device 120 can initiate data offloading as task initiation node 210, and network device 130 can act as aggregation node 220; computing node 230 can be other network devices, multiple network elements in CN entity 140, or multiple other idle terminal devices under network device 130.

[0080] For example, terminal device 120 can initiate data offloading as task initiation node 210, aggregation node 220 can be a network element in CN entity 140 or cloud server 110, and computing node 230 can be other network devices around terminal device 120 or cloud server 110. In other words, computing node 230 and aggregation node 220 can be cloud server 110.

[0081] For example, network device 130 can initiate data offloading as task initiating node 210. Specifically, network device 130 can offload computationally intensive tasks such as traffic optimization, data analysis, video surveillance and processing, and AI model inference and machine learning tasks to computing node 230 for processing.

[0082] For example, network device 130 can initiate data offloading as task initiation node 210, and network elements in CN entity 140 can act as aggregation node 220; computing node 230 can be other network devices or cloud server 110.

[0083] When the network device acts as a computing node 230, it can provide computing power to perform tasks such as video analytics and location services. Using the network device as a computing node 230 can reduce latency and improve network response speed.

[0084] For example, a network element in CN entity 140 can initiate data offloading as a task initiating node 210. Specifically, a network element in CN entity 140 can initiate data offloading, and the aggregation node 220 can be a network device 130, a network element in CN entity 140, or a cloud server 110.

[0085] For example, in scenarios involving large-scale user access, the Access and Mobility Function (AMF) can offload computing tasks to network device 130 or cloud server 110 for further data analysis or processing. When handling complex session management and network traffic control, the Session Management Function (SMF) can offload some computing tasks (such as session traffic optimization, bandwidth allocation policy calculation, etc.) to other network elements in CN entity 140, or further offload them to cloud server 110 to improve processing efficiency.

[0086] In some embodiments, the task initiating node 210 and the aggregation node 220 can be implemented by the same device. Specifically, the task initiating node 210 and the aggregation node 220 can be a terminal device 120 or a network device 130. In other words, the initiation of tasks and the segmentation, encoding, allocation, collection, and decoding of task data can be implemented by the same device.

[0087] For example, task initiation node 210 and aggregation node 220 can be implemented by terminal device 120. Terminal device 120 initiates tasks and performs data segmentation, encoding, distribution, collection, and decoding. Computing node 230 may include network device 130 within the scope and other terminal devices that support device-to-device (D2D) connections; or network device 130 may act as a conduit responsible for transmitting data. Computing node 230 may be other network elements or cloud server 110 from CN entity 140.

[0088] In other cases, task initiation node 210 and aggregation node 220 can be implemented by network device 130. Network device 130 initiates tasks and performs data segmentation, encoding, distribution, collection, and decoding. Computing node 230 may include other network devices and cloud server 110.

[0089] Figure 3 A schematic flowchart of a communication process 300 based on some embodiments of the present disclosure is shown. Figure 3 The communication process 300 involves the first device 310 and the second device 320. (Combined) Figure 2 In some examples, the first device 310 may be implemented as a pool node 220 or a device or chip inside the pool node 220 or a device including the pool node 220, and the second device 320 may be implemented as a computing node 230 or a device or chip inside the computing node 230 or a device including the computing node 230.

[0090] The embodiments of this disclosure do not limit the specific technology or device form used in the first device 310. For example, the first device 310 can be implemented in various forms, including but not limited to a chip system, hardware circuit, software module, or hardware circuit plus software module. In the embodiments of this disclosure, the chip system can be composed of chips or may include chips and other discrete devices.

[0091] The embodiments of this disclosure do not limit the specific technology or device form used in the second device 320. For example, the second device 320 can be implemented in various forms, including but not limited to a chip system, hardware circuit, software module, or hardware circuit plus software module. In the embodiments of this disclosure, the chip system can be composed of chips or may include chips and other discrete devices.

[0092] Optionally, at point 301, the second device 320 sends capability information to the first device 310. This capability information may include multiple performance parameters of the second device 320. Specifically, the capability information may include computing power information of the second device 320. Optionally, the capability information may also include parallel processing capability information of the second device 320. Computing power information can indicate the computing power of the second device 320, such as the processing speed, number of cores, and frequency of its processor, reflecting the second device 320's ability to process data. Parallel processing capability information can indicate the amount of data the second device 320 can process simultaneously or the degree of parallelism, such as the configuration of a multi-core processor or other parallel computing architecture in the second device 320, representing the efficiency and processing power of the second device 320 in parallel task allocation.

[0093] It should be understood that the second device 320 may include multiple computing cores, each of which can act as an independent computing node to process computing tasks. Specifically, each computing core possesses independent computing capabilities and can execute computing tasks in parallel within the second device 320, independently performing various computing processing tasks, including but not limited to data analysis, algorithm inference, data encoding and decoding, complex mathematical operations, AI model inference, and machine learning tasks. Each computing node is equipped with the necessary computing resources, such as processors, memory, storage, and possible acceleration hardware (such as GPUs, Field-Programmable Gate Arrays (FPGAs), etc.), enabling it to efficiently complete specific computing tasks.

[0094] For example, when the second device 320 includes three computing cores, each of the three computing cores can report capability information to the first device 310, or the second device 320 can collect and report the information together. This disclosure does not limit the reporting method of capability information.

[0095] Optionally, at 302, the first device 310 determines a first quantity based on the number and capability information of multiple computing nodes. Specifically, the first device 310 may determine the task to be performed and process the data of the task. For example, the task may be matrix multiplication or other tasks. In some examples, the task is a local task initiated by the first device 310, in which case the first device 310 may acquire the data of the task. In other examples, the task may be initiated by the task initiating node 210, in which case the first device 310 may receive data from the task initiating node 210. The first device 310 may segment and encode the task data (hereinafter referred to as data) into multiple data blocks. Exemplarily, the data may be segmented into a first number of data blocks and subsequently encoded into a second number of encoded data blocks.

[0096] The first device 310 can comprehensively analyze and evaluate the currently available computing resources based on the number and capability information of multiple computing nodes, such as computing capability parameters, load conditions, parallel processing capabilities, or other performance indicators. Based on this information, the first device 310 can determine a first quantity (denoted as Kr) and a second quantity (denoted as Nr) associated with the data, where N refers to the number of computing nodes, K refers to the base number of partitions, and r refers to the partition refinement factor, all of which are positive integers and satisfy K≤N. The first quantity indicates the number of data blocks after data partitioning, and the second quantity indicates the number of data blocks after data encoding, and the second quantity is greater than or equal to the first quantity. By analyzing the computing capabilities and number of each computing node, the first device 310 can determine the optimal number of data partitions with relatively high accuracy to ensure the efficient execution of computing tasks in a distributed computing environment. For example, when there are many available computing nodes with strong computing capabilities, the first device 310 can choose a larger number of partitioned data to improve the parallel processing efficiency of the computing task; conversely, when there are few computing nodes or their computing capabilities are low, the first device 310 can choose a smaller first and second quantity, thereby avoiding excessive data partitioning that would lead to wasted computing resources or processing delays.

[0097] For example, the first device 310 can determine the segmentation parameters K, N, and r based on the number of multiple computing nodes and their respective capabilities, wherein the number of multiple computing nodes N is 5, the basic segmentation number K is 3, and the segmentation refinement factor r is 4. Based on the segmentation parameters, the first quantity Kr is determined to be 12, and the second quantity Nr is determined to be 20.

[0098] Optionally, the first device 310 divides the data into a first number of data blocks based on a first quantity. Specifically, the first device 310 divides the data into Kr data blocks corresponding to the first quantity Kr using a preset data segmentation method. Each data block contains a subset of the data, and these subsets can be processed independently in subsequent computational processing.

[0099] For example, if the first quantity Kr is 12, the first device 310 can select an appropriate segmentation strategy and segmentation point based on the nature of the data and the computational requirements to divide the data into 12 data blocks, and ensure that each data block after segmentation can maintain the integrity of the original data and the computational relevance.

[0100] Accordingly, the first device 310 can encode the first number of Kr data blocks into a second number of Nr data blocks based on the second number Nr. Specifically, the first device 310 can encode the Kr data blocks into Nr data blocks using Maximum Distance Separable (MDS) codes.

[0101] For example, if the second quantity Nr is 20, the first device 310 can encode the 12 divided data blocks into 20 data blocks using MDS codes.

[0102] MDS codes are a type of encoding scheme with special redundancy characteristics, used to improve the reliability of data transmission and recovery in distributed computing. In MDS codes, each data block represents an independent subset of data and has strong error correction capabilities. Even if some data blocks are lost during transmission or there is a delay in the computing node, the remaining data blocks that meet the recovery threshold can be used to recover the complete task computation result through specific algorithms.

[0103] MDS codes include Reed-Solomon codes (RS codes) and Cauchy codes. Reed-Solomon codes are a type of forward error-correcting channel coding suitable for scenarios with high fault tolerance requirements. By encoding each data block into multiple redundant blocks, it ensures that the original data can still be recovered even if several blocks are lost. Cauchy codes are MDS codes based on the Cauchy matrix, with lower computational complexity, suitable for encoding and decoding large-scale datasets. It should be understood that this disclosure does not limit the algorithms used to encode data blocks.

[0104] By using MDS codes, the first device 310 can effectively encode the segmented data blocks, improving its robustness in the face of computing node latency, network packet loss, or hardware failures, thereby ensuring the accuracy and timeliness of task computation.

[0105] Optionally, at point 303, the first device 310 determines the number of data blocks to be sent to the second device 320 based on the capability information of the second device 320. Specifically, the first device 310 may determine the number of data blocks to be sent to the second device 320 by comprehensively evaluating the resource status of the second device 320 based on the capability information provided by the second device 320, such as computing power, storage capacity, processing speed, or parallel processing capability, etc. n The number of multiple data blocks l n Less than the second quantity Nr, where l n It is a positive integer and the number of data blocks l that the first device 310 allocates to the multiple computing nodes is l. n satisfy In other words, the number of data blocks allocated to N computing nodes is l n The sum is Nr.

[0106] For example, suppose the second device 320 has strong computing resources, multiple computing cores, and strong parallel processing capabilities. The first device 310 can allocate more data blocks to the second device 320 based on the capability information provided by the second device 320. For instance, if the second quantity Nr is 20, that is, there are 20 encoded data blocks to be allocated. Since the second device 320 has strong computing power, the first device 310 can allocate 6 data blocks to the second device 320 for processing.

[0107] The first device 310 can determine the number of data blocks based on the processing power of the second device 320 to ensure a reasonable allocation of computing tasks and maximize overall computing performance and task processing efficiency. Simultaneously, the first device 310 will also consider factors such as network bandwidth and latency, combined with the characteristics and requirements of the data, to determine the number of data blocks. n Make reasonable allocations to achieve the best computing speedup effect.

[0108] Following the above method, the first device 310 determines the number of data blocks to be allocated to each computing node based on the capability information of the available multiple computing nodes. In this process, the first device 310 considers factors such as the computing power, parallel processing capability, and processing speed of each computing node to optimize the data allocation strategy. It should be understood that the total number of data blocks allocated to each computing node is equal to the number of encoded data blocks, i.e., the second quantity Nr. The second quantity represents the total number to be allocated to each computing node.

[0109] For example, the first device 310 can allocate 9 encoded data blocks to 3 computing nodes, denoted as node A, node B, and node C. Nodes A and B have stronger processing capabilities, while node C has weaker processing capabilities. Based on this information, the first device 310 can allocate 4 data blocks to node A, 3 data blocks to node B, and 2 data blocks to node C, where 4 + 3 + 2 = 9.

[0110] Based on this, the first device 310 can make reasonable use of the computing power of all computing nodes during the allocation process, while ensuring the integrity of data block allocation and the efficiency of computing.

[0111] At point 304, the first device 310 sends first information to the second device 320, the first information including multiple data blocks in the data. Specifically, the first information may include multiple (such as l) data blocks in the data. n Each data block is assigned an identifier, or task ID, to the associated processing task. The task ID serves as crucial identification information, used to identify and distinguish different data, ensuring that the second device 320 can accurately process these data blocks and match them with the corresponding tasks. Each data block may contain partial information about the task or the raw data required for processing, while the task ID provides the second device 320 with contextual information about the task, indicating that these data blocks belong to the same processing or computation task.

[0112] In some embodiments, the second device 320 can process partial data blocks associated with different task IDs in parallel. Specifically, the second device 320 can be configured to include multiple computing cores, wherein a portion of the computing cores can be configured to process l1 data blocks associated with task 1 serially, and another portion of the computing cores can be configured to process l2 data blocks associated with task 2 serially.

[0113] For example, in a large-scale image processing task, task 1 might involve edge detection, while task 2 might involve color enhancement. The second device 320 may include five computing cores, each capable of handling one of the two tasks. The l1 data blocks associated with edge detection in task 1 are processed in parallel by three computing cores in the second device 320, and the l2 data blocks associated with color enhancement in task 2 can be processed in parallel by two computing cores in the second device 320, with each computing core processing its corresponding data blocks sequentially in a specific order.

[0114] By associating data blocks with task IDs, the second device 320 can identify data blocks belonging to the same task and can track and process data blocks based on task IDs.

[0115] In some embodiments, the first information may include partially encoded data and the number of multiple data blocks. Specifically, the first device 310 may indicate the number of data blocks using the first information. n To enable the second device 320 to be based on the number of data blocks l n The received partially encoded data is segmented.

[0116] The first information may include partially encoded data and the number of multiple data blocks. n The first device 310 can instruct the second device 320 based on the number of data blocks. n After partial encoding, the data is divided into l n The first piece of information may include partially encoded data and the number of data blocks. n Information such as data block segmentation rules, etc. After receiving the first information, the second device 320 performs reasonable segmentation of the encoded data based on the first information, and then uses the corresponding processing unit to process the data. n Each data block is then processed for further computation.

[0117] For example, the first information may include partially encoded data and the number "5", where "5" represents the number of data blocks. n The second device 320 divides the partially encoded data into five data blocks based on the instruction of the first information.

[0118] In some embodiments, the first information may include a portion of the encoded data and the size of each data block. Specifically, the first device 310 may instruct the second device 320 to segment the portion of the encoded data based on the size of each data block. This segmentation process, based on the specified size of each data block, ensures that the segmented data blocks conform to a preset size and guarantees data integrity.

[0119] For example, the first information may include partially encoded data and 60KB, where 60KB indicates the size of each data block; that is, the first information instructs the second device 320 to evenly divide the partially encoded data into data blocks of size 60KB. Accordingly, the size of the partially encoded data is a positive integer divisible by 60.

[0120] For example, the first information may include a list of partially encoded data and the size of each data block: [50KB, 40KB, 20KB, 70KB, 30KB], where the list of data block sizes indicates the size corresponding to each data block. The second device 320 divides the partially encoded data into data blocks of corresponding sizes based on the list of data block sizes, that is, dividing the partially encoded data according to the following pattern: the first data block size is 50KB, the second data block size is 40KB, the third data block size is 20KB, and so on, thus dividing the partially encoded data.

[0121] Optionally, at 305, the second device 320 processes multiple data blocks in a first order. For example, processing multiple data blocks in the first order can be done serially. For instance, the first order could be a default processing method or a processing method indicated by first information.

[0122] Optionally, the first information instructs the second device 320 to process multiple data blocks serially in a first order. For example, the second device 320 may process 5 data blocks, numbered 1, 2, 3, 4, and 5 from the first to the fifth data block, and the second device 320 may process these 5 data blocks serially.

[0123] In some embodiments, the first information may indicate a specific order. Specifically, the first information may include an identifier or sequence number indicating the specific order in which multiple data blocks are processed. Based on the indication of the first information, the second device 320 may process the multiple data blocks serially in a preset order. For example, the first information may indicate that multiple data blocks are processed serially from 1 to 5 in numerical order. In this case, the second device 320 will process these data blocks serially in the order 1-2-3-4-5. In addition, the first information may also indicate a special order, such as the order 13452. In this case, the second device 320 will process the data blocks sequentially in the specified order (i.e., serially process data blocks 1, 3, 4, 5, and 2). This disclosure does not limit the specific content of the order. The order indicated in the first information may take any form of numbering, sequence, or sorting to meet the needs of a specific application scenario.

[0124] In some embodiments, the first information may not indicate a first order. Specifically, the first information does not indicate a specific processing order, that is, it does not explicitly indicate the specific order in which the data blocks are processed. In this case, the second device 320 can, upon receiving the information, autonomously determine the processing order of the data blocks based on its own processing capabilities, computing resources, network conditions, or other environmental factors. In other words, the first information may indicate the processing requirements for the data blocks, i.e., serial processing, without requiring the specification of their specific processing order.

[0125] For example, the first piece of information includes five data blocks. In this case, the second device 320 can adaptively adjust the processing order based on the current resource status and workload (such as computing power, memory usage, network bandwidth, latency, etc.). Specifically, the second device 320 can select an order to process these five data blocks serially based on task priority, real-time requirements, data block dependencies, and other optimization strategies. For example, based on information such as the current workload, the second device 320 determines that the five data blocks should be processed serially in the order of 1-5-3-4-2.

[0126] The content and instruction method of the first sequence can be adjusted and flexibly configured according to requirements, allowing the second device 320 to autonomously select a suitable processing sequence in different environments to achieve efficient processing of data blocks. In some embodiments, the second device 320 may include multiple computing cores (e.g., five computing cores), wherein some computing cores (e.g., three) are configured to process l in the first information. n Each data block can be processed independently by each computing core. In this case, the second device 320 can... n Each data block is distributed to these three computing cores for parallel processing, with each computing core processing the corresponding data block serially in a certain order.

[0127] For example, the second device 320 can allocate corresponding data blocks to multiple computing cores based on the instructions of the first device 310. Specifically, the first device 310 can determine the number of data blocks corresponding to each computing core based on the capability information of each of the multiple computing cores in the second device 320. After receiving multiple data blocks, the second device 320 allocates the data blocks to the corresponding computing cores according to the instructions of the first device 310.

[0128] For example, the second device 320 is configured to process l n The three computing cores of each data block are core A, core B, and core C. Core A has a stronger data processing capability than core B, and core B has a stronger data processing capability than core C. Furthermore, at the current moment, the load on core A is lower than the load on core B, and the load on core B is lower than the load on core C. Therefore, the overall processing capabilities of cores A, B, and C can be ranked as follows: core A > core B > core C. Based on this information, the first device 310 can allocate more data blocks to core A, for example, four data blocks; allocate two data blocks to core B; and allocate one data block to core C to avoid overload and ensure the rational utilization of computing resources.

[0129] For example, the second device 320 can automatically allocate data blocks to multiple computing cores. Specifically, the first device 310 sends multiple data blocks to the second device 320, and the second device 320 can allocate data blocks based on the total number of data blocks (e.g., l). n ) and configured to process l n The processing power of each computing core in each data block will... n Each data block is divided into multiple subsets, and each subset is assigned to a processing unit. n Three computing cores for each data block. For example, if there are five data blocks to be processed, the second device 320 can allocate these five data blocks to the processing cores. n On the three computing cores of each data block, one computing core processes one data block, while the other two computing cores each process two data blocks.

[0130] Specifically, the data blocks processed by each computing core can be processed sequentially. Assume the second device 320 is configured to process l n The three computing cores for each data block are core A, core B, and core C. The overall processing capabilities of cores A, B, and C can be ranked as follows: core A = core B > core C. The second device 320 can assign data blocks numbered 1 and 4 to core A, data blocks numbered 2 and 5 to core B, and data block numbered 3 to core C. During this process, each computing core can process its assigned data blocks serially.

[0131] At point 306, the second device 320 sends second information to the first device 310. This second information includes first processing results corresponding to a portion of the data blocks among multiple data blocks. Specifically, the second device 320 processes multiple data blocks in a first order (e.g., serially), completing the processing of a predetermined number of data blocks. The second device 320 sends the processing results corresponding to the predetermined number of data blocks and an identifier for the processing task associated with the data, i.e., a task ID, to the first device 310. For example, the predetermined number is 1, 2, or another value. The task ID identifies the data corresponding to the current data block processing, enabling the first device 310 to accurately identify and associate the processed data blocks with the integrity of the task.

[0132] For example, the second device 320 needs to process 12 data blocks. Assume that the computing cores configured in the second device 320 to process these 12 data blocks are a first computing core and a second computing core. The first computing core and the second computing core process these 12 data blocks in parallel, that is, each of the first computing core and the second computing core processes 6 data blocks serially.

[0133] After the second device 320 processes two data blocks (one data block for the first computing core and one data block for the second computing core), the second device 320 can send the processing results corresponding to the two data blocks to the first device 310 using second information. In other words, when processing data blocks, after processing a portion of the data blocks, the second device 320 can send the processing results of the processed portion (i.e., the first processing result) to the first device 310.

[0134] By transmitting processing results in batches, the second device 320 effectively avoids the time delay caused by waiting for all data blocks to be processed before sending the results all at once. Furthermore, if the second device 320's processing speed is slow, this method avoids discarding all processing results from slower computing nodes, fully utilizing the computing resources of all nodes. In other words, even if the second device 320's computing speed is slow, it can still return the already processed settlement results. Simultaneously, by attaching a task ID to each data transmission, this method ensures that the processing result of each data block can be correctly associated with the data, guaranteeing the smooth progress of the entire computation process and the reliability of the results.

[0135] Optionally, the first device 310 determines that the data has been processed. Specifically, the first device 310 receives processing results from multiple computing nodes and summarizes and monitors the received data blocks. If the number of processed data blocks associated with a specific task ID is greater than or not less than a recovery threshold (e.g., denoted as H), the first device 310 determines that the data corresponding to the task ID has been processed. Optionally, the recovery threshold H can be equal to a first quantity Kr. Alternatively, when using other encoding methods (e.g., polynomial encoding), the recovery threshold H can be greater than the first quantity Kr.

[0136] In other words, when the number of processing results received by the first device 310 meets the requirements... The processing results corresponding to the data can be restored to complete the calculation task, where R... n R refers to the number of processing results from computing node n. n (t) refers to the number of processing results from computing node n up to time t. Correspondingly, This refers to the sum of the number of data block processing results sent to the first device 310 by the N computing nodes up to time t. For example, when N=3, This refers to the sum of the number of data block processing results sent by the three computing nodes to the first device 310 up to time t.

[0137] The recovery threshold refers to the number of data block processing results received that, when a certain number are received, the first device 310 can decode and recover the computational result of the data based on the processing results of the data blocks within the recovery threshold number. Specifically, the recovery threshold represents the minimum number of valid data block processing results required for the first device 310 to decode. If the number of data block processing results received from multiple computing nodes reaches or exceeds the recovery threshold, the first device 310 can decode using the processing results of a portion of the data blocks to obtain the complete data result.

[0138] For example, the restoration threshold H corresponding to Task 1 is 120. That is, if the number of data blocks corresponding to the processing results associated with Task 1 received by the first device 310 is greater than or not less than 120, the first device 310 can determine that the data associated with Task 1 has been processed.

[0139] At point 307, the first device 310 determines the processing result corresponding to the data. Specifically, the first device 310 determines the processing result based on the processed data blocks, wherein the number of processed data blocks is greater than or not less than a recovery threshold H, i.e., a first quantity. In other words, the first device 310 can recover the data result based on the processing results of the received data blocks that are greater than or equal to the recovery threshold H. Due to the use of MDS encoding or other appropriate fault-tolerant techniques, the first device 310 can recover the data result based on the redundant parts in the MDS encoding. For example, if some data blocks are lost or delayed, the redundant information can ensure the integrity and accuracy of the data recovery process.

[0140] The first device 310 can accurately reconstruct the complete data result based on the processing results of partial data blocks, ensuring the efficiency and fault tolerance of task processing.

[0141] Optionally, at point 308, the first device 310 sends an instruction message to the second device 320. This instruction message may instruct the second device 320 to stop processing the remaining portion of the multiple data blocks, excluding some of the data blocks. Optionally, this instruction message includes a task ID. Specifically, if the first device 310 determines that the data processing associated with the corresponding task ID is complete, the first device 310 may send the instruction message to the second device 320, which is processing the data blocks corresponding to the task ID. This instruction message instructs the second device 320 to stop processing the remaining data blocks, where the remaining data blocks refer to the data blocks that, excluding those that have been processed and whose processing results have been returned, are either unprocessed or have not yet been processed.

[0142] For example, when the first device 310 determines that the data processing of Task 1 is complete, the first device 310 can send an instruction to the computing node that processed the relevant data blocks of Task 1. The second device 320 has already processed and returned 3 data blocks, and the remaining 3 data blocks have not yet been processed. After receiving the instruction from the first device 310, the second device 320 stops processing the remaining 3 data blocks.

[0143] For example, the indication information may include a 1-bit (or other number) task completion instruction and a task ID. The task completion instruction is a first value (e.g., 0), indicating that the data associated with the task ID has been processed. When the task completion instruction is a first value (e.g., 0), the second device 320 may stop processing the remaining data block associated with the task ID.

[0144] In some embodiments, the first device 310 may send indication information to some computing nodes that have not yet completed data processing. Specifically, for computing nodes that have completed data block processing, the first device 310 may not send indication information. For example, the second device 320 needs to process 6 data blocks, and the second device 320 has completed processing the 6 data blocks and sent the processing results to the first device 310. The first device 310 determines that the second device 320 has completed processing all data blocks. If the first device 310 determines that the data associated with the task ID corresponding to the data block processed by the second device 320 has been processed, the first device 310 may not send indication information to the second device 320, but instead send indication information to other computing nodes that still have remaining data blocks to process.

[0145] Optionally, at point 309, the second device 320 terminates the processing of the remaining data blocks, completing the task unloading associated with the corresponding task ID. Specifically, the second device 320 can determine which data blocks belong to the remaining unprocessed portion and interrupt the processing flow of these data blocks. For example, the second device 320 can cancel the scheduling of the data blocks, clear the task queue associated with the data blocks, release computing resources, etc.

[0146] Through this operation, the second device 320 can concentrate more computing resources on other important tasks, thereby improving the performance and resource utilization of distributed computing tasks.

[0147] Figure 4 A schematic diagram of data segmentation and processing 400 based on some example embodiments of the present disclosure is shown. As shown, the aggregation node 220 segments the data 401 into a first number of data blocks 402, i.e., Kr = 10, and encodes the segmented data blocks into a second number of data blocks 403, i.e., Nr = 15, using MDS codes. Correspondingly, the restoration threshold H = Kr = 10.

[0148] Based on the capability information of the first computing node 230-1, the second computing node 230-2, and the third computing node 230-3, the aggregation node 220 determines the number of data blocks to be sent to each computing node. Assuming that the computing capabilities of the three computing nodes are similar in this embodiment, the aggregation node 220 sends 15 encoded data blocks evenly to the first computing node 230-1, the second computing node 230-2, and the third computing node 230-3, that is, each computing node processes 5 data blocks.

[0149] The aggregation node 220 sends first information to the computing node 230. Specifically, the aggregation node 220 sends the encoded data blocks to the first computing node 230-1, the second computing node 230-2, and the third computing node 230-3, respectively, with each computing node processing five data blocks. Exemplarily, in this embodiment, the first information does not indicate a specific first order.

[0150] The first computing node 230-1, the second computing node 230-2, and the third computing node 230-3 process the five data blocks serially. After processing each data block, they send the processing result of that data block to the aggregation node 220. The aggregation node 220 receives the processing results of the data blocks from the first computing node 230-1, the second computing node 230-2, and the third computing node 230-3. If the number of data blocks that have been processed is greater than or not less than the restoration threshold H (e.g., 10), the aggregation node can determine that data 401 has been processed.

[0151] As shown in the figure, the first computing node 230-1 processes 5 data blocks and returns the result to the aggregation node 220. For various reasons, the second computing node 230-2 processes 1 data block and returns the result to the aggregation node 220. The third computing node 230-3 processes 4 data blocks and returns the result to the aggregation node 220. The total number of data blocks processed and returned by these three computing nodes is 10, which equals the restoration threshold H. Based on this, the aggregation node 220 can determine that data 401 has been processed.

[0152] Aggregation node 220 reconstructs the result of data 401 based on the processing results of the 10 received processed data blocks and by utilizing the redundant information encoded by MDS.

[0153] Next, the aggregation node 220 can send instruction information to the second computing node 230-2 and the third computing node 230-3 to instruct these two computing nodes, which have not yet finished processing the data blocks, to stop processing the remaining data blocks. The first computing node 230-1 has already finished processing all 5 data blocks, so the aggregation node 220 does not need to send instruction information to the first computing node 230-1.

[0154] After receiving the instruction from the aggregation node 220, the second computing node 230-2 stops processing the remaining 4 data blocks, and the third computing node 230-3 stops processing the remaining 1 data block.

[0155] By segmenting and encoding data into a predetermined number of data blocks, the aggregation node 220 can distribute the data blocks to various computing nodes for processing and determine the final result based on the processing results of a portion of the data blocks. Simultaneously, the first computing node 230-1, the second computing node 230-2, and the third computing node 230-3 can promptly send the processing results of the completed data blocks to the first device 310. In this way, even if the second computing node 230-2 has a slower processing speed, it can still return the processing results of the already computed data blocks to the first device 310, avoiding waste of computing resources without affecting computational efficiency. This method enables distributed computing tasks to maximize resource utilization and maintain a high task completion speed during processing.

[0156] Figure 5 A schematic flowchart illustrating a task initiation node initiating task unloading 500 based on some embodiments of the present disclosure is shown.

[0157] As shown in the figure, at point 501, the task initiating node 210 sends the data to be unloaded to the aggregation node 220. Specifically, the task initiating node 210 transmits data containing computational tasks (such as matrix, image data, or other datasets that need to be processed) to the aggregation node 220. For example, while transmitting the data, the task initiating node 210 may include relevant parameters of the data, computational requirements, and other execution information so that the aggregation node 220 can reasonably perform subsequent data segmentation, encoding, scheduling, and allocation based on this information.

[0158] At position 502, compute node 230 sends capability information to aggregation node 220. This capability information indicates important parameters of compute node 230, such as its computing resource status, parallel processing capability, load, and available computing power. Through this capability information, aggregation node 220 can understand the working capacity and processing efficiency of compute node 230.

[0159] At point 503, the aggregation node 220 determines a first quantity Kr and a second quantity Nr based on capability information, where the first quantity Kr indicates the number of data block segments and the second quantity Nr indicates the number of data block encodings. Specifically, the aggregation node 220 can comprehensively consider factors such as the resource status of the computing node 230, the computational requirements of the task, and data transmission conditions, and determine the first and second quantities through intelligent scheduling and allocation algorithms. This optimization strategy can ensure that the task can be completed efficiently and quickly, while maximizing the utilization of network and computing resources and avoiding computational bottlenecks or resource waste.

[0160] At position 504, aggregation node 220 divides the data into a first number of Kr data blocks. Specifically, aggregation node 220 divides the data into a first number of data blocks based on the first number. Aggregation node 220 can use an appropriate partitioning strategy based on the characteristics, size, and content of the data to divide the data into Kr independent data blocks, where each data block contains the partial data required for the task, ensuring the integrity and consistency of the data blocks.

[0161] At point 505, the aggregation node 220 encodes the segmented data blocks into a second number of Nr data blocks. Specifically, the aggregation node 220 can encode Kr data blocks into Nr data blocks using a predetermined encoding method. This encoding process utilizes a specific encoding algorithm (such as MDS encoding) to perform redundancy processing on the segmented data blocks, ensuring that even if some data blocks are lost or corrupted, the complete data result can still be recovered from the remaining data blocks that meet the conditions.

[0162] At point 506, aggregation node 220 determines the number of data blocks to be sent to compute node 230 based on the capability information of compute node 230. n Specifically, the aggregation node 220 can analyze the computing resources of each computing node 230 to reasonably determine the data block allocation strategy, so as to ensure that the computing nodes 230 can process data blocks efficiently within their computing capabilities.

[0163] At point 507, the aggregation node 220 sends first information to the compute node 230, the first information including multiple data blocks in the data. Specifically, the aggregation node 220 determines the number of data blocks based on the quantity l. n , will l n The encoded data blocks are sent to compute node 230. The first piece of information includes the task ID, which serves as an identifier for the data and is associated with the data block. Compute node 230 can identify the source and association of the data block based on the task ID. Associating data blocks with task IDs not only improves the accuracy of data processing but also effectively avoids calculation errors caused by the mixing of data from different tasks, ensuring efficiency and reliability during task unloading.

[0164] At point 508, compute node 230 processes multiple data blocks serially according to the instructions of the first information. Specifically, the first information instructs compute node 230 to process the data in a first order. n The data blocks are processed sequentially. The aggregation node 220 can instruct the specific order of the first sequence, such as processing data blocks serially according to their number, priority, or other computational requirements. Alternatively, it can instruct the computing nodes 230 to determine the processing order of the data blocks based on real-time computational needs, network status, or the availability of computing resources. By instructing the computing nodes 230 to process the data blocks serially, it ensures that the computing nodes 230 return the results of the processed data blocks in a timely manner.

[0165] At point 509, compute node 230 sends second information to aggregation node 220. This second information includes the results of the data blocks processed by compute node 230. In other words, compute node 230 sends the processing results corresponding to a predetermined number of data blocks to aggregation node 220 after completing a predetermined number of data blocks. The second information includes the task ID corresponding to each data block, ensuring that aggregation node 220 can aggregate the data blocks corresponding to each task ID, avoiding data mixing or mismatch between different tasks. Furthermore, aggregation node 220 can effectively record the number of data blocks corresponding to each task ID, thereby determining the data processing progress.

[0166] At point 510, aggregation node 220 determines that the data has been processed based on the received data blocks. Specifically, if the number of processed data blocks is greater than or not less than a first quantity, which is a recovery threshold, aggregation node 220 can determine that the data has been processed.

[0167] At point 511, aggregation node 220 determines the corresponding processing result based on the processing results of the received data blocks. Specifically, aggregation node 220 can decode the processing results of the received partial data blocks using MDS decoding technology to restore the complete data processing result.

[0168] At point 512, the aggregation node 220 sends an instruction to the compute node 230, instructing the compute node 230 to stop processing the remaining data blocks. Specifically, after determining that data processing is complete, the aggregation node 220 sends a termination instruction to the compute node 230, instructing the compute node 230 not to continue processing the unfinished data blocks, thereby optimizing resource utilization and avoiding unnecessary computational burden.

[0169] At point 513, after receiving the instruction, compute node 230 stops processing the remaining data blocks.

[0170] At point 514, the aggregation node 220 sends the processing result to the task initiating node 210. Specifically, based on the processing results of the first number of received data blocks, the aggregation node 220 uses the MDS decoding algorithm or other appropriate decoding methods to restore and determine the data processing result. After completing the data restoration, the aggregation node 220 transmits the complete data processing result to the task initiating node 210. This process ensures that the task initiating node 210 can obtain complete and accurate calculation results in a timely manner, thereby completing the task offloading from the task initiating node 210.

[0171] Figure 6 A schematic flowchart illustrating a task unloading process initiated by a collection node 600 based on some embodiments of this disclosure is shown. In this embodiment, the task initiating node 210 does not need to upload data to the remote collection node 220, but instead acts as the collection node 220 for local data processing. Specifically, the task initiating node 210 is responsible for key operations such as task data segmentation, encoding, allocation, collection, and decoding, directly executing the data processing flow locally. This approach improves the real-time performance and efficiency of data processing by reducing the network burden of data transmission, and optimizes resource scheduling and computing performance during the task unloading process. Details of the steps in this embodiment can be found in the foregoing. Figures 3 to 5 The description will not be repeated here.

[0172] At point 601, compute node 230 sends capability information to task initiating node 210.

[0173] At point 602, task initiation node 210 determines the first and second quantities based on capability information.

[0174] At point 603, task initiation node 210 divides the data into the first number of data blocks.

[0175] At position 604, task initiating node 210 encodes the segmented data blocks into a second number of data blocks.

[0176] At point 605, the task initiating node 210 determines the number of data blocks to be sent to the computing node 230 based on the capability information of the computing node 230.

[0177] At position 606, the task initiating node 210 sends the first message to the computing node 230.

[0178] At 607, compute node 230 processes multiple data blocks serially according to the instructions of the first information.

[0179] At point 608, compute node 230 sends a second message to task initiation node 210.

[0180] At point 609, task initiation node 210 determines that the data has been processed based on the received data block.

[0181] At point 610, task initiation node 210 determines the processing result corresponding to the data based on the processing result of the received data block.

[0182] At point 611, the task initiating node 210 sends an instruction message to the computing node 230.

[0183] At position 612, after receiving the instruction information, compute node 230 stops processing the remaining data blocks and completes the task unloading associated with the corresponding task ID.

[0184] It should also be understood that the manner, situation, category and division of embodiments in the present disclosure are for the convenience of description only and should not constitute a special limitation. Various manners, categories, situations and features in the embodiments can be combined with each other where logically consistent.

[0185] It should also be understood that the above content is only for the purpose of helping those skilled in the art to better understand the embodiments of this disclosure, and is not intended to limit the scope of the embodiments of this disclosure. Those skilled in the art can make various modifications, variations, or combinations based on the above content. Such modifications, variations, or combinations are also within the scope of the embodiments of this disclosure.

[0186] It should be noted that some exemplary embodiments have been described in conjunction with the accompanying drawings in this disclosure. However, these exemplary embodiments and the drawings are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure. For example, operations (or steps) in different drawings can be recombined. For example, some operations (or steps) shown in the drawings can be omitted, removed, or combined. For example, one or more additional operations (or steps) may be further included in the drawings. For example, the order of operations (or steps) shown in the drawings can be rearranged or adjusted. It should be understood that other embodiments obtained based on the foregoing embodiments also fall within the scope of protection of this disclosure.

[0187] It should also be understood that the above description focuses on highlighting the differences between the various embodiments. Similarities or commonalities can be referenced or learned from each other, and for the sake of brevity, they will not be repeated here.

[0188] Figure 7 A schematic block diagram of a communication device 700 based on some embodiments of the present disclosure is shown. In some examples, the device 700 may be implemented as follows: Figure 2 The present disclosure does not limit the scope to the aggregation node 220, the devices within the aggregation node 220, or the devices including the aggregation node 220. For example... Figure 7As shown, the device 700 includes a transmitting module 710, a receiving module 720, and a processing module 730.

[0189] The sending module 710 can be configured to send first information to a second device among a plurality of devices, the first information including multiple data blocks in the data. The receiving module 720 can be configured to receive second information from the second device, the second information including a first processing result corresponding to a portion of the multiple data blocks. The processing module 730 can be configured to determine the processing result corresponding to the data based on the first processing result.

[0190] For example, the first information instructs the second device to process multiple data blocks in a first order.

[0191] In some embodiments, the device 700 may further include an acquisition module configured to acquire capability information of a plurality of devices, wherein the capability information of a second device among the plurality of devices includes at least one of the following: computing power information of the second device, or parallel processing capability information of the second device.

[0192] For example, the processing module 730 can be configured to determine the number of multiple data blocks based on the capability information of the second device.

[0193] In some embodiments, the processing module 730 may be configured to divide data into a first number of data blocks based on capability information of multiple devices.

[0194] For example, the processing module 730 can be configured to divide data into a first number of data blocks based on the capability information of multiple devices, including: determining a first number based on the number of multiple devices and the capability information of multiple devices; and dividing the data into a first number of data blocks based on the first number.

[0195] For example, the processing module 730 may be configured to determine a second number of data blocks processed by the multiple devices based on the capability information of the multiple devices, wherein the number of multiple data blocks sent to the second device is less than the second number.

[0196] For example, the processing module 730 can be configured to determine the number of multiple data blocks based on the capability information of the second device.

[0197] For example, the first information includes at least one of the following: the number of multiple data blocks, or the identifier of the processing task associated with the data.

[0198] For example, the processing module 730 can be configured to determine that the data has been processed if the number of processed data blocks in the data is greater than or not less than the recovery threshold.

[0199] For example, the sending module 710 may be configured to send an instruction message to the second device, the instruction message instructing the second device to stop processing the remaining portion of a plurality of data blocks except for a portion of the data blocks.

[0200] For example, the processing module 730 can be configured to determine the processing result corresponding to the data by: determining the processing result corresponding to the data based on the processing result of the data blocks that have already been processed in the data.

[0201] Figure 7 The device 700 can be used to achieve the above-mentioned combination. Figures 3 to 6 The various processes executed by the aggregation node (network device 130 or cloud server 110) will not be described in detail here for the sake of brevity.

[0202] Figure 8 A schematic block diagram of a communication device 800 based on some embodiments of the present disclosure is shown. In some examples, the device 800 may be implemented as follows: Figure 2 The present disclosure does not limit the scope to the computing node 230, the apparatus within the computing node 230, or the apparatus including the computing node 230. For example... Figure 8 As shown, the device 800 includes a receiving module 810 and a transmitting module 820.

[0203] The receiving module 810 can be configured to receive first information, which includes multiple data blocks in the data. The sending module 820 can be configured to send second information, which includes a first processing result corresponding to a portion of the multiple data blocks, and the first processing result is used to determine the processing result corresponding to the data.

[0204] In some embodiments, the apparatus 800 may further include a processing module configured to process a plurality of data blocks in a first order.

[0205] For example, information indicating the size of the data is indicated by a predetermined number of bits.

[0206] For example, the sending module 820 can be configured to send capability information, wherein the capability information includes at least one of the following: computing power information, or parallel processing capability information.

[0207] For example, the first information includes at least one of the following: the number of multiple data blocks, or the identifier of the processing task associated with the data.

[0208] For example, the sending module 820 can be configured to send second information including: for each predetermined number of data blocks processed, sending the processing results of the predetermined number of data blocks and the identifier of the processing task associated with the data.

[0209] For example, the receiving module 810 can be configured to receive indication information indicating to stop processing the remaining portion of a plurality of data blocks except for a portion of the data blocks.

[0210] In some embodiments, the apparatus 800 may further include a termination module configured to terminate processing of the remaining data blocks.

[0211] Figure 8 The device 800 can be used to achieve the above-mentioned combination. Figures 3 to 6 The various processes executed by the computing node 230 (terminal device 120, network device 130, network element in CN entity 140 or cloud server 110) will not be described in detail here for the sake of brevity.

[0212] The division of modules or units in the embodiments of this disclosure is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. Furthermore, the functional units in the disclosed embodiments may be integrated into one unit, exist as separate physical entities, or two or more units may be integrated into one unit. The integrated unit described above can be implemented in hardware or as a software functional unit.

[0213] Figure 9 A schematic block diagram of an example device 900 that can be used to implement embodiments of the present disclosure is shown. Device 900 may be implemented as or included in... Figure 2 The task initiation node 210, aggregation node 220, or computing node 230.

[0214] like Figure 9 As shown, the device 900 includes one or more processors 910, one or more memories 920 coupled to the processors 910, and a communication module 940 coupled to the processors 910.

[0215] The communication module 940 can be used for bidirectional communication. The communication module 940 may have at least one communication interface for communication. The communication interface may include any interface necessary for communication with other devices.

[0216] Processor 910 can be any type suitable for a local technology network and can include, but is not limited to, one or more of the following: a general-purpose computer, a special-purpose computer, a microcontroller, a digital signal processor (DSP), or a controller-based multi-core controller architecture. Device 900 can have multiple processors, such as application-specific integrated circuit chips, which are time-dependent on a clock synchronized with the main processor.

[0217] Memory 920 may include one or more non-volatile memories and one or more volatile memories. Examples of non-volatile memories include, but are not limited to, at least one of the following: Read-Only Memory (ROM) 924, Erasable Programmable Read Only Memory (EPROM), Flash Memory, Hard Disk, Compact Disc (CD), Digital Versatile Disc (DVD), or other magnetic and / or optical storage. Examples of volatile memories include, but are not limited to, at least one of the following: Random Access Memory (RAM) 922, or other volatile memories that do not persist during the duration of a power outage.

[0218] Computer program 930 includes computer-executable instructions that are executed by associated processor 910. Program 930 may be stored in ROM 924. Processor 910 may perform any suitable actions and processes by loading program 930 into RAM 922.

[0219] The embodiments of this disclosure can be implemented by means of program 930, enabling device 900 to perform as described in the reference. Figures 3 to 6 Any process discussed. Embodiments of this disclosure can also be implemented in hardware or by a combination of software and hardware.

[0220] Program 930 may be tangibly contained in a computer-readable medium, which may include in device 900 (such as in memory 920) or other storage device accessible by device 900. Program 930 may be loaded from the computer-readable medium into RAM 922 for execution. The computer-readable medium may include any type of tangible non-volatile memory, such as ROM, EPROM, flash memory, hard disk, CD, DVD, etc.

[0221] In some embodiments, the communication module 940 in the device 900 can be implemented as a transmitter and receiver (or transceiver), which can be configured to send / receive, such as multiple TCIs, at least one message, capability information, etc. Additionally, the device 900 may further include one or more of a scheduler, a controller, and a radio frequency / antenna, which will not be described in detail in this disclosure.

[0222] For example, Figure 9 The device 900 can be implemented as an electronic device, or as a chip or chip system in an electronic device, and the embodiments of this disclosure are not limited thereto.

[0223] Embodiments of this disclosure also provide a chip, which may include an input interface, an output interface, and processing circuitry. In embodiments of this disclosure, the input and output interfaces can be used to complete the interaction of signaling or data, while the processing circuitry can be used to generate and process the signaling or data information.

[0224] Embodiments of this disclosure also provide a chip system including a processor for supporting a computing device to implement the functions involved in any of the foregoing embodiments. In one possible design, the chip system may further include a memory for storing necessary program instructions and data, which, when executed by the processor, cause the device on which the chip system is mounted to implement the methods involved in any of the foregoing embodiments. Exemplarily, the chip system may consist of one or more chips, or may include chips and other discrete devices.

[0225] Embodiments of this disclosure also provide a processor for coupling with a memory storing instructions that, when executed by the processor, cause the processor to perform the methods and functions involved in any of the above embodiments.

[0226] Embodiments of this disclosure also provide a computer program or computer program product containing instructions that, when run on a computer, cause the computer to perform the methods and functions involved in any of the embodiments described above.

[0227] Embodiments of this disclosure also provide a computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, cause the processor to perform the methods and functions involved in any of the above embodiments.

[0228] Generally, the various embodiments of this application can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. Some aspects can be implemented in hardware, while others can be implemented in firmware or software, which can be executed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of this disclosure are shown and described as block diagrams, flowcharts, or represented using some other illustration, it should be understood that the blocks, apparatuses, systems, techniques, or methods described herein can be implemented as, as non-limiting examples, in hardware, software, firmware, dedicated circuitry or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof.

[0229] This disclosure also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer-executable instructions, such as instructions included in program modules, which execute in a device on a target real or virtual processor to perform the processes / methods as described above with reference to the accompanying drawings. Typically, program modules include routines, programs, libraries, objects, classes, components, data structures, etc., that perform specific tasks or implement specific abstract data types. In various embodiments, the functionality of program modules can be combined or divided among program modules as needed. The machine-executable instructions for the program modules can execute within a local or distributed device. In a distributed device, the program modules can reside in both local and remote storage media.

[0230] Computer program code used to implement the methods of this disclosure may be written in one or more programming languages. This computer program code may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the computer or other programmable data processing apparatus, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be performed. The program code may be executed entirely on a computer, partially on a computer, as a stand-alone software package, partially on a computer and partially on a remote computer, or entirely on a remote computer or server.

[0231] In the context of this disclosure, computer program code or related data may be carried on any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and so on. Examples of signals may include electrical, optical, radio, sound, or other forms of propagation signals, such as carrier waves, infrared signals, etc.

[0232] A computer-readable medium can be any tangible medium that contains or stores a program for or relating to an instruction execution system, apparatus, or device. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More detailed examples of computer-readable storage media include electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0233] Furthermore, although the operation of the methods of this disclosure is described in a specific order in the accompanying drawings, this does not require or imply that these operations must be performed in that specific order, or that all of the operations shown must be performed to achieve the desired result. Rather, the steps depicted in the flowcharts may be performed in a different order. Additionally or alternatively, certain steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps. It should also be noted that the features and functions of two or more devices based on this disclosure may be embodied in one device. Conversely, the features and functions of one device described above may be further divided and embodied by multiple devices.

[0234] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to well explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.

Claims

1. A data processing method, comprising: Send first information to a second device among a plurality of devices, the first information including a plurality of data blocks in the data; Receive second information from the second device, the second information including a first processing result corresponding to a portion of the plurality of data blocks; as well as Based on the first processing result, the processing result corresponding to the data is determined.

2. The method according to claim 1, wherein the first information instructs the second device to process the plurality of data blocks in a first order.

3. The method according to claim 1 or 2, further comprising: Obtain capability information of the plurality of devices, wherein the capability information of the second device among the plurality of devices includes at least one of the following: The computing power information of the second device, or Information on the parallel processing capability of the second device.

4. The method according to claim 3, further comprising: Based on the capability information of the multiple devices, the data is divided into a first number of data blocks.

5. The method of claim 4, wherein dividing the data into a first number of data blocks based on the capability information of the plurality of devices comprises: The first quantity is determined based on the number of the plurality of devices and the capability information of the plurality of devices; as well as The data is divided into the first number of data blocks based on the first number.

6. The method according to claims 1-5, further comprising: A second number of data blocks processed by the plurality of devices is determined based on the capability information of the plurality of devices, wherein the number of the plurality of data blocks sent to the second device is less than the second number.

7. The method according to any one of claims 3-6, further comprising: The number of the plurality of data blocks is determined based on the capability information of the second device.

8. The method according to any one of claims 1-7, wherein the first information comprises at least one of the following: The number of the plurality of data blocks, or The identifier of the processing task associated with the data.

9. The method according to any one of claims 1-8, further comprising: If the number of processed data blocks in the data is greater than or not less than the restoration threshold, it is determined that the data has been processed.

10. The method according to any one of claims 1-9, further comprising: Send an instruction message to the second device, the instruction message instructing the second device to stop processing the remaining portion of the plurality of data blocks excluding the aforementioned data blocks.

11. The method according to any one of claims 1-10, wherein determining the processing result corresponding to the data includes: Based on the processing results of the already processed data blocks in the data, the corresponding processing result is determined.

12. A data processing method, comprising: Receive first information, the first information including multiple data blocks in the data; as well as Send a second message, the second message including a first processing result corresponding to a portion of the plurality of data blocks, the first processing result being used to determine the processing result corresponding to the data.

13. The method of claim 12, further comprising: The multiple data blocks are processed in a first order.

14. The method of claim 12 or 13, wherein the first information indicates that the plurality of data blocks are processed in a first order.

15. The method according to any one of claims 12-14, further comprising: Send capability information, wherein the capability information includes at least one of the following: Computing power information, or Information on parallel processing capabilities.

16. The method according to any one of claims 12-15, wherein the first information comprises at least one of the following: The number of the plurality of data blocks, or The identifier of the processing task associated with the data.

17. The method according to any one of claims 12-16, wherein sending the second information comprises: After processing a predetermined number of data blocks, the processing results corresponding to the predetermined number of data blocks and the identifier of the processing task associated with the data are sent.

18. The method according to any one of claims 12-17, further comprising: Receive an instruction message that instructs the processing of the remaining portions of the plurality of data blocks, excluding the aforementioned data blocks.

19. The method of claim 18, further comprising: Terminate processing of the remaining data blocks.

20. A communication device comprising a corresponding module for implementing the method according to any one of claims 1-19.

21. A communication device, comprising: The processor is configured to perform the method according to any one of claims 1-19 together with the transceiver.

22. The communication device according to claim 21, further comprising: The memory stores instructions that are executed by the processor.

23. A computer-readable storage medium having stored thereon computer-executable instructions that, when executed by a device, implement the method according to any one of claims 1-19.

24. A computer program product comprising computer-executable instructions that, when executed by a device, implement the method according to any one of claims 1-19.

25. A chip comprising at least one processor, said at least one processor being configured to execute computer program instructions stored in a memory to implement the method according to any one of claims 1-19.