A GPU cluster and a data preprocessing method based on the GPU cluster
By introducing a global scheduler and a distributed storage management system into the GPU cluster, unified scheduling of data preprocessing tasks and training tasks is realized, solving the problem of low data preprocessing efficiency in the GPU cluster, and improving training efficiency and data access efficiency.
Patent Information
- Application Number
- CN202410345945.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-25
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2044-03-25
AI Technical Summary
In the prior art, data preprocessing is less efficient in AI training scenarios, especially in GPU clusters, which cannot fully utilize GPU resources, resulting in inefficient training.
The GPU cluster architecture is adopted, including multiple training nodes, global schedulers and distributed storage management systems. The global scheduler receives data preprocessing tasks before and during the training task, and allocates them to the target training nodes that store the data to be processed. The local scheduler is used for data processing to realize unified scheduling of data preprocessing and training tasks.
Complete data storage, data preprocessing and training tasks in the GPU cluster, reducing the cost of data preprocessing before and during training, and improving data preprocessing and training efficiency.
Smart Images

Figure CN118152131B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to a GPU cluster and a data preprocessing method based on the GPU cluster. Background Art
[0002] Data preprocessing refers to some processing performed on the data before the main processing. In AI training scenarios, there are mainly two data preprocessing stages: data conversion and data loading. In related technologies, data preprocessing operations are mainly performed through data preprocessing tools, which is inefficient. Taking data stored in S3 storage as an example, before executing AI training, it takes a long time (usually in weeks) to download the data to the local computer for data preprocessing operations, and then store the data processing results after data preprocessing in shared storage for use in AI training. Summary of the Invention
[0003] This disclosure proposes a technical solution for a GPU cluster and a data preprocessing method based on the GPU cluster.
[0004] According to one aspect of the present disclosure, a GPU cluster is provided, comprising: multiple training nodes, a global scheduler, a local scheduler deployed in each training node, and a distributed storage management system, wherein the training node is a node in the GPU cluster on which GPU resources are deployed to perform training tasks; the global scheduler is used to receive a data preprocessing task before and / or during the execution of the training task, and to determine a first target training node corresponding to the data preprocessing task based on the distributed storage management system, wherein the first target training node is at least one of the multiple training nodes, and the first target training node stores the data to be processed corresponding to the data preprocessing task; the global scheduler is used to push the data preprocessing task to the first target training node; the local scheduler deployed in the first target training node is used to respond to the data preprocessing task, perform data processing on the data to be processed, and obtain a data processing result.
[0005] In one possible implementation, the distributed storage management system includes: a storage access process deployed in each training node, and a storage daemon process deployed in each training node; the storage access process deployed in any training node is used to manage the storage daemon process deployed in each training node; and the storage daemon process deployed in any training node is used to manage the data stored in the training node.
[0006] In one possible implementation, the global scheduler is used to determine the target storage daemon corresponding to the data to be processed by accessing the storage access process deployed in any training node, and to determine the training node corresponding to the target storage daemon as the first target training node.
[0007] In one possible implementation, the global scheduler is used to push the script ID or image ID corresponding to the data preprocessing task to the first target training node; the local scheduler deployed in the first target training node is used to obtain the corresponding script or image based on the script ID or image ID, and mount the script or image to the data to be processed; the local scheduler deployed in the first target training node is used to perform data processing on the data to be processed by running the script or image to obtain the data processing result.
[0008] In a possible implementation, the global scheduler is used to distribute training tasks among the multiple training nodes.
[0009] In one possible implementation, the local scheduler deployed in the first target training node is used to determine the second target training node based on the global scheduler, wherein the second target training node is assigned a training task that needs to be executed using the data processing result; the local scheduler deployed in the first target training node is used to send the data processing result to the second target training node for storage.
[0010] In a possible implementation, the GPU resources deployed in the second target training node are used to load the data processing results locally to execute the training task.
[0011] In one possible implementation, the local scheduler deployed in the first target training node is used to respond to the data preprocessing task, utilize the reserved resources in the first target training node, perform data processing on the data to be processed, and obtain a data processing result.
[0012] According to one aspect of the present disclosure, a data preprocessing method based on a GPU cluster is provided, wherein the GPU cluster includes: multiple training nodes, a global scheduler, a local scheduler deployed in each training node, and a distributed storage management system, wherein the training node is a node in the GPU cluster that is deployed with GPU resources to perform training tasks, and the method includes: before and / or during the execution of the training task, receiving a data preprocessing task based on the global scheduler, and determining a first target training node corresponding to the data preprocessing task based on the distributed storage management system, wherein the first target training node is at least one of the multiple training nodes, and the first target training node stores the data to be processed corresponding to the data preprocessing task; based on the global scheduler, pushing the data preprocessing task to the first target training node; based on the local scheduler deployed in the first target training node, responding to the data preprocessing task, performing data processing on the data to be processed to obtain a data processing result.
[0013] According to one aspect of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to call the instructions stored in the memory to execute the above method.
[0014] According to one aspect of the present disclosure, a computer-readable storage medium is provided, on which computer program instructions are stored. When the computer program instructions are executed by a processor, the above method is implemented.
[0015] In the GPU cluster of the embodiment of the present disclosure, the global scheduler receives a data preprocessing task before and / or during the execution of a training task, and based on a distributed storage management system, determines the training node storing the data to be processed corresponding to the data preprocessing task from multiple training nodes deployed in the GPU cluster as the first target training node corresponding to the data preprocessing task. The global scheduler then pushes the data preprocessing task to the first target training node, so that the local scheduler deployed in the first target training node responds to the data preprocessing task, processes the data to be processed, and obtains a data processing result, thereby effectively completing data storage, data preprocessing and execution of training tasks within a single GPU cluster, reducing the data preprocessing cost before and / or during training.
[0016] It should be understood that the above general description and the following detailed description are only exemplary and explanatory, rather than limiting the present disclosure. Other features and aspects of the present disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings herein are incorporated into and constitute a part of the specification. These drawings illustrate embodiments consistent with the present disclosure and, together with the specification, are used to explain the technical solutions of the present disclosure.
[0018] Figure 1 A block diagram of a GPU cluster according to an embodiment of the present disclosure is shown;
[0019] Figure 2 A schematic diagram of a GPU cluster according to an embodiment of the present disclosure is shown;
[0020] Figure 3 A flowchart of a data preprocessing method based on a GPU cluster according to an embodiment of the present disclosure is shown;
[0021] Figure 4 A block diagram of an electronic device according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0022] Various exemplary embodiments, features, and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise indicated.
[0023] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
[0024] The term "and / or" herein simply describes an association relationship between associated objects, indicating that three relationships can exist. For example, "A and / or B" can represent the existence of three situations: A alone, A and B simultaneously, and B alone. Furthermore, the term "at least one" herein refers to any combination of at least two of any one or more of a plurality of items. For example, "at least one of A, B, and C" can represent any one or more elements selected from the set consisting of A, B, and C.
[0025] In addition, numerous specific details are provided in the following detailed description to better illustrate the present disclosure. Those skilled in the art will appreciate that the present disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art are not described in detail in order to highlight the main points of the present disclosure.
[0026] Data preprocessing can include: data extraction, data conversion, and data loading. Data extraction can be extracting data from homogeneous or heterogeneous sources; data conversion can be processing data through data cleaning and converting it into a storage format / structure suitable for query and analysis purposes; data loading is loading the data into the final destination. In AI training scenarios, the two main data preprocessing stages involved are data conversion and data loading. Taking data conversion as an example, the raw data of ResNet is composed of numerous small files, which has a significant impact on I / O performance. Therefore, data conversion is usually performed to convert the raw data into large files of a given format to ensure efficient data loading during ResNet training. During the AI training process, data loading mainly involves loading data from storage (local or shared storage) into memory, then synchronizing it to GPU memory / video memory, and finally executing the GPU training task.
[0027] In related technologies, data preprocessing is required in a separate big data cluster or data processing cluster, which cannot fully utilize the capabilities of the GPU cluster, resulting in low efficiency of AI training based on the GPU cluster.
[0028] The present disclosure provides a GPU cluster that can effectively solve the data preprocessing, cluster construction cost, and training efficiency issues of GPU clusters in large-scale AI training scenarios. The GPU cluster provided by the present disclosure is described in detail below.
[0029] Figure 1 FIG. 1 shows a block diagram of a GPU cluster according to an embodiment of the present disclosure. Figure 1 As shown, the GPU cluster includes: multiple training nodes, a global scheduler, a local scheduler deployed in each training node, and a distributed storage management system, wherein the training node is a node in the GPU cluster that is deployed with GPU resources to perform training tasks; the global scheduler is used to receive data preprocessing tasks before and / or during the execution of the training task, and to determine the first target training node corresponding to the data preprocessing task based on the distributed storage management system, wherein the first target training node is at least one of the multiple training nodes, and the first target training node stores the data to be processed corresponding to the data preprocessing task; the global scheduler is used to push the data preprocessing task to the first target training node; the local scheduler deployed in the first target training node is used to respond to the data preprocessing task, perform data processing on the data to be processed, and obtain a data processing result.
[0030] According to the GPU cluster of an embodiment of the present disclosure, the global scheduler receives a data preprocessing task before and / or during the execution of a training task, and based on a distributed storage management system, determines the training node storing the data to be processed corresponding to the data preprocessing task from multiple training nodes deployed in the GPU cluster as the first target training node corresponding to the data preprocessing task. Then, the global scheduler pushes the data preprocessing task to the first target training node, so that the local scheduler deployed in the first target training node responds to the data preprocessing task, processes the data to be processed, and obtains a data processing result, thereby effectively completing data storage, data preprocessing and execution of training tasks within a single GPU cluster, reducing the data preprocessing cost before and / or during training.
[0031] The data preprocessing task can be any data preprocessing task before and / or during the execution of the training task, for example, taking MD5 to calculate the hash value of a file as an example. The present disclosure does not limit the specific form of the data preprocessing task.
[0032] Figure 2 FIG. 1 shows a schematic diagram of a GPU cluster according to an embodiment of the present disclosure. Figure 2 As shown, the GPU cluster includes: multiple training nodes, a global scheduler, a local scheduler deployed in each training node, a host system deployed in each training node, a GPU system, and a training app that executes training tasks.
[0033] In one possible implementation, a global scheduler is used to distribute training tasks among multiple training nodes.
[0034] The global scheduler maintains global scheduling information within the GPU cluster to execute global scheduling tasks. When a GPU cluster is executing training tasks, the global scheduler can assign data preprocessing tasks to training nodes and training tasks to nodes. It also stores global scheduling information and provides an API for users to access it. The global scheduler supports a variety of scheduling strategies based on actual application needs to effectively schedule data preprocessing and training tasks across multiple training nodes. This disclosure does not specifically limit the specific form of the scheduling strategy.
[0035] by Figure 2 For example, the global scheduler is used to distribute data preprocessing tasks and training tasks among training node 1, training node 2, and training node 3, and save the global scheduling information within the GPU cluster.
[0036] The local scheduler deployed in each training node is used for local task execution (data preprocessing tasks / training tasks) and local resource scheduling. The local scheduler can include node management components, Quality of Service (QoS) components, and runner components.
[0037] Among them, the QoS component is used to use the local host system control group (Cgroup) mechanism to constrain the amount of resources used by the data preprocessing task to prevent interference with the local training task. For example, the local scheduler sets reserved resources in the training node based on the QoS component to perform data preprocessing tasks. The size of the reserved resources can be flexibly adjusted according to the actual usage scenario, and this disclosure does not make specific restrictions on this. For example, the reserved resources are 8 CPUs, 16G memory, and GPUs by default (scenarios where GPUs are required for data preprocessing).
[0038] In one possible implementation, the distributed storage management system includes: a storage access process deployed in each training node, and a storage daemon process deployed in each training node; the storage access process deployed in any training node is used to manage the storage daemon process deployed in each training node; and the storage daemon process deployed in any training node is used to manage the data stored in the training node.
[0039] The GPU cluster integrates a distributed storage management system, which includes a storage access process deployed in each training node and a storage daemon process deployed in each training node. The storage access process provides gateway capabilities, allowing access to the storage access process deployed in any training node in the GPU cluster and obtaining information about the storage daemon processes deployed in each training node in the GPU cluster.
[0040] The storage daemon provides storage backend capabilities and storage services for managing data stored locally on training nodes. The storage daemon manages the training node's local file system or disk and provides common storage backend capabilities such as replication, EC policies, and memory management.
[0041] In addition, the storage access process can also integrate authentication and certification services so that when accessing each training node, the legitimacy of the access can be authenticated. The specific authentication and certification process can be flexibly set according to the actual application scenario, and this disclosure does not make specific limitations on this.
[0042] The storage daemon can also provide services such as caching, health checks, I / O status management, and external API access for local training nodes, which are not specifically limited in this disclosure. Since the storage access process is used to manage the data stored locally on the training node, access to data stored on the training node can be directly accessed through the storage daemon deployed on the training node.
[0043] like Figure 2 As shown, the distributed storage management system includes: a storage access process deployed in each training node and a storage daemon process deployed in each training node.
[0044] In one possible implementation, the global scheduler is used to determine the target storage daemon corresponding to the data to be processed by accessing the storage access process deployed in any training node, and to determine the training node corresponding to the target storage daemon as the first target training node.
[0045] Before and / or during the GPU cluster's training task execution, the global scheduler receives data preprocessing tasks submitted by users. By accessing the storage access process deployed within any training node in the GPU cluster, the global scheduler can determine the target storage daemon process where the to-be-processed data corresponding to the data preprocessing task resides. It can then determine the training node corresponding to the target storage daemon process as the first target training node. The first target training node is the training node that needs to execute the data preprocessing task.
[0046] The global scheduler pushes the data preprocessing task to the first target training node.
[0047] In one possible implementation, a global scheduler is used to push the script ID or image ID corresponding to the data preprocessing task to the first target training node; a local scheduler deployed in the first target training node is used to obtain the corresponding script or image based on the script ID or image ID, and mount the script or image to the data to be processed; the local scheduler deployed in the first target training node is used to process the data to be processed by running the script or image to obtain a data processing result.
[0048] To improve efficiency, the global scheduler pushes the script ID or image ID corresponding to the data preprocessing task to the first target training node. The local scheduler deployed in the first target training node retrieves the corresponding script or image based on the script ID or image ID pushed by the global scheduler and mounts it to the locally stored data to be processed on the first target training node. The local scheduler deployed in the first target training node then processes the data to be processed by running the script or image, generating the data processing results.
[0049] For example, when the data preprocessing task is MD5 calculation, the script or image corresponding to the data preprocessing task is a simple Python program.
[0050] In one possible implementation, a local scheduler deployed in the first target training node is used to respond to the data preprocessing task, utilize reserved resources in the first target training node, perform data processing on the data to be processed, and obtain a data processing result.
[0051] In order to avoid affecting the training tasks in the first target training node, the local scheduler deployed in the first target training node responds to the data preprocessing task and only uses the reserved resources in the first target training node to process the data to be processed and obtain the data processing results.
[0052] In one possible implementation, a local scheduler deployed within the first target training node is used to determine a second target training node based on a global scheduler, wherein the second target training node is assigned a training task that needs to be executed using the data processing results; and the local scheduler deployed within the first target training node is used to send the data processing results to the second target training node for storage.
[0053] After executing the data preprocessing task, the local scheduler deployed in the first target training node determines, from the global scheduling information stored in the global scheduler, the second target training node to which the training task that needs to be executed using the data processing results is assigned. Then, the local scheduler deployed in the first target training node can send the data processing results to the second target training node for storage.
[0054] In one possible implementation, the GPU resources deployed in the second target training node are used to load data processing results locally to execute the training task.
[0055] Since the data processing results are stored locally in the second target training node, the GPU resources deployed in the second target training node can load the data processing results locally to perform training tasks without consuming a large amount of memory and bandwidth, thereby reducing training time and effectively improving training efficiency.
[0056] Before executing a training task and / or during the execution of a training task, the global scheduler receives a data preprocessing task, and based on a distributed storage management system, determines the training node storing the data to be processed corresponding to the data preprocessing task from multiple training nodes deployed in the GPU cluster as the first target training node corresponding to the data preprocessing task. The global scheduler then pushes the data preprocessing task to the first target training node, so that the local scheduler deployed in the first target training node responds to the data preprocessing task, processes the data to be processed, and obtains the data processing result, thereby effectively completing data storage, data preprocessing and execution of training tasks within a single GPU cluster, reducing the data preprocessing cost before and / or during training.
[0057] The GPU cluster of the disclosed embodiment realizes the integrated deployment of the GPU cluster and the distributed storage management system, and realizes the unified scheduling of data preprocessing tasks and training tasks, thereby reducing the cluster construction cost and improving the data preprocessing efficiency, data access efficiency, and training efficiency.
[0058] Figure 3 The flowchart of a data preprocessing method based on a GPU cluster according to an embodiment of the present disclosure is shown. The GPU cluster includes: multiple training nodes, a global scheduler, a local scheduler deployed in each training node, and a distributed storage management system, wherein the training node is a node in the GPU cluster that is deployed with GPU resources to perform training tasks. Figure 3 As shown, the method includes:
[0059] In step S31, before executing the training task and / or during the execution of the training task, the data preprocessing task is received based on the global scheduler, and the first target training node corresponding to the data preprocessing task is determined based on the distributed storage management system, wherein the first target training node is at least one of the multiple training nodes, and the first target training node stores the data to be processed corresponding to the data preprocessing task.
[0060] In step S32, based on the global scheduler, the data preprocessing task is pushed to the first target training node.
[0061] In step S33, based on the local scheduler deployed in the first target training node, in response to the data preprocessing task, data processing is performed on the data to be processed to obtain a data processing result.
[0062] The specific process of the data preprocessing method based on the GPU cluster can refer to the relevant description of the above embodiment and will not be repeated here.
[0063] It is understood that the above-mentioned various method embodiments mentioned in this disclosure can be combined with each other to form combined embodiments without violating the principle logic. Due to space limitations, this disclosure will not go into details. It is understood by those skilled in the art that in the above-mentioned methods of specific implementation, the specific execution order of each step should be determined by its function and possible internal logic.
[0064] In addition, the present disclosure also provides electronic devices, computer-readable storage media, and programs, all of which can be used to implement any GPU cluster-based data preprocessing method provided by the present disclosure. The corresponding technical solutions and descriptions are referred to the corresponding records in the method section and will not be repeated here.
[0065] This method has a specific technical connection with the internal structure of the computer system, and can solve the technical problem of how to improve the hardware computing efficiency or execution effect (including reducing the amount of data storage, reducing the amount of data transmission, increasing the hardware processing speed, etc.), thereby obtaining the technical effect of improving the internal performance of the computer system in accordance with the laws of nature.
[0066] In some embodiments, the functions or modules included in the device provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments. For the sake of brevity, it will not be repeated here.
[0067] The present disclosure also provides a computer-readable storage medium having computer program instructions stored thereon, wherein the computer program instructions implement the above method when executed by a processor. The computer-readable storage medium may be a volatile or non-volatile computer-readable storage medium.
[0068] An embodiment of the present disclosure further proposes an electronic device, comprising: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to call the instructions stored in the memory to execute the above method.
[0069] An embodiment of the present disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above method.
[0070] The electronic device may be provided as a terminal, a server, or other forms of devices.
[0071] Figure 4 FIG. 1 is a block diagram of an electronic device according to an embodiment of the present disclosure. Figure 4 , the electronic device 1900 can be provided as a server or a terminal device. Figure 4The electronic device 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions executable by the processing component 1922, such as an application. The application stored in the memory 1932 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute the instructions to perform the above-described method.
[0072] The electronic device 1900 may further include a power supply component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output interface 1958. The electronic device 1900 may operate based on an operating system stored in the memory 1932, such as a Microsoft Server operating system (Windows Server 2003). TM ), a graphical user interface operating system launched by Apple (Mac OS X TM ), a multi-user, multi-process computer operating system (Unix TM ), a free and open source Unix-like operating system (Linux TM ), an open-source Unix-like operating system (FreeBSD TM ) or similar.
[0073] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions that can be executed by the processing component 1922 of the electronic device 1900 to perform the above method.
[0074] The present disclosure may be a system, method and / or computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present disclosure.
[0075] Computer-readable storage media can be a tangible device that can hold and store the instructions used by the instruction execution device. Computer-readable storage media can be, for example, (but not limited to) an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, for example, a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination thereof. Computer-readable storage media used herein is not interpreted as a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (for example, light pulses by fiber optic cables), or electrical signals transmitted by wires.
[0076] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.
[0077] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0078] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0079] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0080] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0081] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.
[0082] The computer program product may be implemented in hardware, software, or a combination thereof. In one embodiment, the computer program product is implemented as a computer storage medium. In another embodiment, the computer program product is implemented as a software product, such as a software development kit (SDK).
[0083] The above description of the various embodiments tends to emphasize the differences between the various embodiments. The same or similar aspects can be referenced with each other and will not be repeated herein for the sake of brevity.
[0084] Those skilled in the art will understand that in the above-mentioned method of the specific implementation method, the writing order of each step does not mean a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.
[0085] If the technical solution of this application involves personal information, the product that applies the technical solution of this application has clearly informed the personal information processing rules and obtained the individual's voluntary consent before processing personal information. If the technical solution of this application involves sensitive personal information, the product that applies the technical solution of this application has obtained the individual's separate consent before processing sensitive personal information, and at the same time meets the "explicit consent" requirement. For example, on personal information collection devices such as cameras, a clear and prominent sign is set to inform that the personal information collection scope has been entered and personal information will be collected. If the individual voluntarily enters the collection scope, it is deemed that they agree to the collection of their personal information; or on the personal information processing device, when the personal information processing rules are notified by obvious signs / information, the individual's authorization is obtained through pop-up information or by asking the individual to upload their personal information; among which, the personal information processing rules may include information such as the personal information processor, the purpose of personal information processing, the processing method, and the type of personal information processed.
[0086] While various embodiments of the present disclosure have been described above, the above descriptions are illustrative, non-exhaustive, and not intended to be limiting of the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or improvements to existing technologies, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A GPU cluster, characterized in that: include: Multiple training nodes, a global scheduler, a local scheduler deployed in each training node, and a distributed storage management system, wherein the training node is a node in the GPU cluster that is deployed with GPU resources to perform training tasks; The global scheduler is configured to receive a data preprocessing task before and / or during execution of a training task, and determine, based on the distributed storage management system, a first target training node corresponding to the data preprocessing task, wherein the first target training node is at least one of the multiple training nodes, and the first target training node stores the data to be processed corresponding to the data preprocessing task; The global scheduler is used to push the data preprocessing task to the first target training node; The local scheduler deployed in the first target training node is used to respond to the data preprocessing task, perform data processing on the data to be processed, and obtain a data processing result; The distributed storage management system includes: a storage access process deployed in each training node, and a storage daemon process deployed in each training node; The storage access process deployed in any training node is used to manage the storage daemon process deployed in each training node; The storage daemon deployed in any training node is used to manage the data stored in the training node; The global scheduler is used to determine the target storage daemon corresponding to the data to be processed by accessing the storage access process deployed in any training node, and determine the training node corresponding to the target storage daemon as the first target training node.
2. The GPU cluster according to claim 1, wherein: The global scheduler is used to push the script ID or image ID corresponding to the data preprocessing task to the first target training node; A local scheduler deployed in the first target training node is used to obtain a corresponding script or image based on the script ID or image ID, and mount the script or image to the data to be processed; The local scheduler deployed in the first target training node is used to process the data to be processed by running the script or image to obtain the data processing result.
3. The GPU cluster according to claim 1, wherein: The global scheduler is used to distribute training tasks among the multiple training nodes.
4. The GPU cluster according to claim 3, wherein: a local scheduler deployed in the first target training node, configured to determine a second target training node based on the global scheduler, wherein the second target training node is assigned a training task that needs to be executed using the data processing result; The local scheduler deployed in the first target training node is used to send the data processing result to the second target training node for storage.
5. The GPU cluster according to claim 4, wherein: The GPU resources deployed in the second target training node are used to load the data processing results locally to perform the training task.
6. The GPU cluster according to claim 1, wherein: The local scheduler deployed in the first target training node is used to respond to the data preprocessing task, use the reserved resources in the first target training node, process the data to be processed, and obtain a data processing result.
7. A data preprocessing method based on GPU cluster, characterized in that: The GPU cluster includes: multiple training nodes, a global scheduler, a local scheduler deployed in each training node, and a distributed storage management system, wherein the training node is a node in the GPU cluster that is deployed with GPU resources to perform training tasks. The method includes: Before executing a training task and / or during executing a training task, receiving a data preprocessing task based on the global scheduler, and determining a first target training node corresponding to the data preprocessing task based on the distributed storage management system, wherein the first target training node is at least one of the multiple training nodes, and the first target training node stores the data to be processed corresponding to the data preprocessing task; Pushing the data preprocessing task to the first target training node based on the global scheduler; Based on the local scheduler deployed in the first target training node, in response to the data preprocessing task, data processing is performed on the data to be processed to obtain a data processing result; The distributed storage management system includes: a storage access process deployed in each training node, a storage daemon process deployed in each training node; the storage access process deployed in any training node is used to manage the storage daemon process deployed in each training node; the storage daemon process deployed in any training node is used to manage the data stored in the training node; The data preprocessing task is pushed to the first target training node based on the global scheduler, including: accessing the storage access process deployed in any training node based on the global scheduler, determining the target storage daemon corresponding to the data to be processed, and determining the training node corresponding to the target storage daemon as the first target training node.
8. An electronic device, characterized in that: include: processor; a memory for storing processor-executable instructions; The processor is configured to call the instructions stored in the memory to execute the method of claim 7.
9. A computer-readable storage medium having computer program instructions stored thereon, characterized in that: When the computer program instructions are executed by a processor, the method according to claim 7 is implemented.
Citation Information
Patent Citations
Distributed scheduling method and system based on federal decision tree model training and medium
CN114675964A
Model training method and device
CN114818863A
Distributed training method and electronic equipment
CN117332881A