Data processing method and device, electronic equipment and medium

By generating a directed relationship graph to display the dependencies between operators, the problem of low optimization efficiency in the graph parallel computing engine is solved, and system performance improvement and resource optimization are achieved.

CN120743344APending Publication Date: 2025-10-03BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510865450.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-25
Publication Date
2025-10-03

AI Technical Summary

Technical Problem

In graph parallel computing engines, existing technologies find it difficult to fully cover operator relationships, resulting in low optimization efficiency. In addition, they lack real-time information prompts and multi-dimensional optimization indicators, making it impossible to explore potential optimization points in the system.

Method used

By parsing the operator configuration file, a directed relationship graph is generated to intuitively display the dependencies between operators. Visual attributes are used to reflect system performance, identify bottlenecks and critical paths, and achieve operator optimization.

Benefits of technology

It improves the overall performance and resource utilization of the graph engine, simplifies the problem location and optimization process, and enhances developers' understanding and management capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120743344A_ABST
    Figure CN120743344A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method and device, electronic equipment, a computer readable storage medium and a computer program product, and relates to the field of computers, in particular to the technical field of parallel computing, data processing and directed relational graphs. According to the implementation scheme, configuration files corresponding to a plurality of operators are obtained; analyzing the configuration file to generate first mapping pairs, wherein each first mapping pair comprises the operator and corresponding output data corresponding to the operator; analyzing the configuration file to generate second mapping pairs, wherein each second mapping pair comprises the operator and corresponding dependency data corresponding to the operator; determining third mapping pairs based on the first mapping pair and the second mapping pair, each third mapping pair comprising two operators represented as pointing from the first operator to the second operator; according to each third mapping pair, the first operator and the second operator serve as nodes in the generated directed relation graph, and the edge pointing to the second operator from the first operator is used for representing that the dependency relationship exists between the two nodes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computers, in particular to the fields of parallel computing, data processing, and directed relationship graph technology, and specifically to a data processing method, device, electronic device, computer-readable storage medium, and computer program product. Background Art

[0002] Currently, in graph parallel computing engines, developers primarily rely on project management tools to map the dependency output relationships of key operators in the initial version, facilitating subsequent iterations. Graph computing engine efficiency optimization currently relies on developers analyzing all operator execution logs and timings, optimizing operators that consume significant time to reduce overall timing.

[0003] In practice, however, graph engines are nearly impossible to fully cover all operator relationships, and they struggle to provide complete, real-time information for immediate problem troubleshooting. Furthermore, operator optimization suffers from single metrics, an inability to identify core potential optimization points in the system, and a time-consuming nature of single optimizations. Summary of the Invention

[0004] The present disclosure provides a data processing method, apparatus, electronic device, computer-readable storage medium, and computer program product.

[0005] According to one aspect of the present disclosure, a data processing method is provided, the method comprising: obtaining a configuration file corresponding to a plurality of operators, the configuration file comprising at least one dependency data on which each operator in the plurality of operators depends and at least one output data output by the operator when being executed; for each operator in the plurality of operators, generating at least one first mapping pair by parsing the configuration file, wherein each first mapping pair in the at least one first mapping pair comprises the operator and the corresponding output data corresponding to the operator; for each operator in the plurality of operators, generating at least one second mapping pair by parsing the configuration file, wherein each second mapping pair in the at least one second mapping pair comprises the operator and the corresponding output data corresponding to the operator. corresponding dependency data; based on the at least one first mapping pair and the at least one second mapping pair, determining at least one third mapping pair, wherein each third mapping pair in the at least one third mapping pair includes two operators with a dependency relationship, and the two operators are represented as being pointed from the first operator to the second operator, wherein the first operator and the second operator are both operators among the multiple operators; and according to each third mapping pair, the first operator and the second operator in the third mapping pair are respectively used as corresponding nodes in the generated directed relationship graph, and, in the generated directed relationship graph, an edge from the first operator to the second operator is included, and the edge is used to indicate that there is a dependency relationship between the two nodes.

[0006] According to another aspect of the present disclosure, a data processing device is provided, the device comprising: an acquisition unit configured to acquire a configuration file corresponding to a plurality of operators, the configuration file comprising at least one dependency data on which each operator in the plurality of operators depends and at least one output data output by the operator when being executed; a first generation unit configured to generate at least one first mapping pair for each operator in the plurality of operators by parsing the configuration file, wherein each first mapping pair in the at least one first mapping pair comprises the operator and the corresponding output data corresponding to the operator; a second generation unit configured to generate at least one second mapping pair for each operator in the plurality of operators by parsing the configuration file, wherein each second mapping pair in the at least one second mapping pair comprises the operator and the corresponding output data corresponding to the operator. Corresponding dependency data corresponding to the operator; a third generation unit, configured to determine at least one third mapping pair based on the at least one first mapping pair and the at least one second mapping pair, wherein each third mapping pair in the at least one third mapping pair includes two operators with a dependency relationship, and the two operators are represented as being pointed from the first operator to the second operator, wherein the first operator and the second operator are both operators among the multiple operators; and a directed relationship graph generation unit, configured to, according to each third mapping pair, respectively use the first operator and the second operator in the third mapping pair as corresponding nodes in the generated directed relationship graph, and, in the generated directed relationship graph, include an edge pointing from the first operator to the second operator, and the edge is used to indicate that there is a dependency relationship between the two nodes.

[0007] According to another aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; the memory storing instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to execute the method described in the present disclosure.

[0008] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided. The computer instructions are used to cause a computer to execute the method described in the present disclosure.

[0009] According to another aspect of the present disclosure, a computer program product is provided, comprising a computer program, which implements the method described in the present disclosure when executed by a processor.

[0010] According to one or more embodiments of the present disclosure, by parsing the operator configuration file, a directed graph for characterizing the dependency relationship between operators can be automatically generated, thereby realizing visualization of the operator dependency relationship, avoiding time-consuming manual analysis, and facilitating the subsequent use of dependency relationships to split and merge operators to complete operator optimization.

[0011] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The accompanying drawings illustrate exemplary embodiments and constitute a part of the specification. Together with the description of the specification, they serve to explain exemplary implementation of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals designate similar, but not necessarily identical, elements.

[0013] Figure 1 A schematic diagram illustrating an exemplary system in which the various methods described herein may be implemented according to an embodiment of the present disclosure;

[0014] Figure 2 A schematic flow chart of a data processing method according to an embodiment of the present disclosure is shown;

[0015] Figure 3 A data flow diagram according to an embodiment of the present disclosure is shown;

[0016] Figure 4 shows a schematic diagram of generating a third mapping pair according to an embodiment of the present disclosure;

[0017] Figure 5 shows a directed graph schematic diagram according to an embodiment of the present disclosure;

[0018] Figure 6 A schematic diagram of implementing system optimization based on a directed graph according to an embodiment of the present disclosure is shown;

[0019] Figure 7 A structural block diagram of a data processing device according to an embodiment of the present disclosure is shown; and

[0020] Figure 8 A structural block diagram of an exemplary electronic device that can be used to implement the embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0021] The following description of exemplary embodiments of the present disclosure is made in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be appreciated by those skilled in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.

[0022] In this disclosure, unless otherwise specified, the use of terms such as "first" and "second" to describe various elements is not intended to limit the positional relationship, temporal relationship, or importance relationship of these elements. Such terms are only used to distinguish one element from another. In some examples, the first element and the second element may refer to the same instance of the element, while in some cases, based on the context of the description, they may also refer to different instances.

[0023] The terms used in the descriptions of the various examples described in this disclosure are for the purpose of describing specific examples only and are not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the element may be one or more. In addition, the term "and / or" used in this disclosure encompasses any one and all possible combinations of the listed items.

[0024] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0025] Figure 1 FIG2 is a schematic diagram of an exemplary system 100 in which the various methods and apparatuses described herein may be implemented according to an embodiment of the present disclosure. Figure 1 , the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. The client devices 101, 102, 103, 104, 105, and 106 can be configured to execute one or more applications.

[0026] In an embodiment of the present disclosure, the server 120 may run one or more services or software applications that enable the execution of the data processing method.

[0027] In some embodiments, server 120 may also provide other services or software applications, which may include non-virtualized environments and virtualized environments. In some embodiments, these services may be provided as web-based services or cloud services, such as provided to users of client devices 101, 102, 103, 104, 105, and / or 106 under a software as a service (SaaS) model.

[0028] exist Figure 1In the configuration shown, the server 120 may include one or more components that implement the functions performed by the server 120. These components may include software components, hardware components, or a combination thereof that can be executed by one or more processors. Users operating client devices 101, 102, 103, 104, 105, and / or 106 may, in turn, utilize one or more client applications to interact with the server 120 to utilize the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from the system 100. Therefore, Figure 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.

[0029] The user may use client devices 101, 102, 103, 104, 105 and / or 106 to obtain configuration files, generated directed graphs, etc. The client device may provide an interface that enables the user of the client device to interact with the client device. The client device may also output information to the user via the interface. Figure 1 Only six client devices are depicted, but one skilled in the art will appreciate that the present disclosure can support any number of client devices.

[0030] Client devices 101, 102, 103, 104, 105, and / or 106 may include various types of computer devices, such as portable handheld devices, general-purpose computers (such as personal computers and laptops), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, gaming systems, thin clients, various messaging devices, sensors or other sensing devices, etc. These computer devices may run various types and versions of software applications and operating systems, such as MICROSOFT Windows, APPLE iOS, Unicode-like operating systems, Linux or Linux-like operating systems (such as Google Chrome OS); or include various mobile operating systems, such as MICROSOFT Windows Mobile OS, iOS, Windows Phone, and Android. Portable handheld devices may include cellular phones, smartphones, tablet computers, personal digital assistants (PDAs), etc. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. Gaming systems may include various handheld gaming devices, internet-enabled gaming devices, etc. The client device is capable of executing various different applications, such as various Internet-related applications, communication applications (eg, email applications), Short Message Service (SMS) applications, and may use various communication protocols.

[0031] The network 110 may be any type of network known to those skilled in the art that can support data communications using any of a variety of available protocols, including but not limited to TCP / IP, SNA, IP5, etc. By way of example only, the one or more networks 110 may be a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a blockchain network, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., Bluetooth, WIFI), and / or any combination of these and / or other networks.

[0032] The server 120 may include one or more general-purpose computers, dedicated server computers (e.g., PC (personal computer) servers, UNI5 servers, mid-range servers), blade servers, mainframe computers, server clusters, or any other appropriate arrangement and / or combination. The server 120 may include one or more virtual machines running virtual operating systems, or other computing architectures involving virtualization (e.g., one or more flexible pools of logical storage devices that can be virtualized to maintain a server's virtual storage device). In various embodiments, the server 120 may run one or more services or software applications that provide the functionality described below.

[0033] The computing units in the server 120 may run one or more operating systems including any of the operating systems described above as well as any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and / or middle-tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, and the like.

[0034] In some implementations, server 120 may include one or more applications to analyze and consolidate data feeds and / or event updates received from users of client devices 101, 102, 103, 104, 105, and 106. Server 120 may also include one or more applications to display the data feeds and / or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and 106.

[0035] In some embodiments, server 120 may be a distributed system server or a server integrated with blockchain. Server 120 may also be a cloud server, or an intelligent cloud computing server or intelligent cloud host equipped with artificial intelligence technology. A cloud server is a host product within the cloud computing service system that addresses the management difficulties and poor scalability of traditional physical hosts and virtual private servers (VPS) services.

[0036] The system 100 may also include one or more databases 130. In some embodiments, these databases can be used to store data and other information. For example, one or more of the databases 130 can be used to store information such as configuration files, directed relationship graphs, weights, etc. The databases 130 can reside in various locations. For example, the database used by the server 120 can be local to the server 120, or can be remote from the server 120 and can communicate with the server 120 via a network-based or dedicated connection. The databases 130 can be of different types. In some embodiments, the database used by the server 120 can be, for example, a relational database. One or more of these databases can store, update, and retrieve data to and from the database in response to commands.

[0037] In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the applications may be different types of databases, such as a key-value store, an object store, or a conventional store backed by a file system.

[0038] Figure 1 The system 100 may be configured and operated in various ways to enable application of the various methods and apparatuses described in accordance with the present disclosure.

[0039] In the present disclosure, for example, an operator can be the smallest computing unit in a deep learning framework, such as addition, convolution, activation function, etc. Each operator receives an input tensor and outputs a result tensor. It abstracts the specific operation logic, enabling the model to implement complex functions by combining different operators, similar to functions in programming but more complex. Operators serve as the basis for building neural network models, and different combinations of operators can realize various complex model structures. For example, by optimizing the implementation of operators (such as operator fusion), the training and reasoning speed of the model can be significantly improved, and the consumption of computing resources can be reduced; at the hardware level, the optimization of operators can better utilize hardware resources, such as GPUs, NPUs, etc., to maximize computing throughput.

[0040] The operator configuration file is the core file in the graph engine (or workflow engine) that defines the operator's behavior, properties, and dependencies. As the number of operators increases, the complexity of managing the configuration file increases dramatically. In practical applications, different types of operators can be developed independently. For example, in a graph engine with the basic execution logic of F(a,b,c,d)=F3(F2(F1(a,b),c),F1(a,b),F2(a,d)), including the F1, F2, and F3 operators, the operator behavior can be defined in the configuration file as follows:

[0041] processorName:F1

[0042] dependData:a

[0043] dependData:b

[0044] emitData:z

[0045] …

[0046] processorName:F3

[0047] dependData:y

[0048] dependData:z

[0049] dependData:x

[0050] emitData:R

[0051] …

[0052] Usually, based on the above configuration files, by analyzing the dependencies, a flowchart can be manually drawn, such as Figure 3 However, in actual graph engine development and application, once the entire graph includes dozens or even hundreds of operator tasks, developers adding new operators during project iterations need to understand the overall situation. They must repeatedly analyze the dependencies between operators in the configuration file and consider how to better integrate their operators into the entire system through the graph in the configuration file. This manual and cumbersome process is not only prone to errors, but also reduces the efficiency of the entire graph engine.

[0053] Therefore, according to an embodiment of the present disclosure, a data processing method is provided. Figure 2 : shows a flow chart of a data processing method according to an embodiment of the present disclosure, as shown in FIG. Figure 2As shown, the method 200 includes: obtaining a configuration file corresponding to a plurality of operators, wherein the configuration file includes at least one dependency data on which each operator in the plurality of operators depends and at least one output data output by the operator when being executed (step 210); for each operator in the plurality of operators, generating at least one first mapping pair by parsing the configuration file, wherein each first mapping pair in the at least one first mapping pair includes the operator and the corresponding output data corresponding to the operator (step 220); for each operator in the plurality of operators, generating at least one second mapping pair by parsing the configuration file, wherein each second mapping pair in the at least one second mapping pair includes the operator and the corresponding dependency data corresponding to the operator (step 2 30); based on the at least one first mapping pair and the at least one second mapping pair, determining at least one third mapping pair, wherein each third mapping pair in the at least one third mapping pair includes two operators having a dependency relationship, and the two operators are represented as being pointed from the first operator to the second operator, wherein the first operator and the second operator are both operators among the multiple operators (step 240); and according to each third mapping pair, the first operator and the second operator in the third mapping pair are respectively used as corresponding nodes in the generated directed relationship graph, and, in the generated directed relationship graph, an edge pointing from the first operator to the second operator is included, and the edge is used to indicate that there is a dependency relationship between the two nodes (step 250).

[0054] In an embodiment of the present disclosure, a configuration file can record in detail the dependency data required for each operator to run and the output data generated. By parsing these configuration files, two mapping relationships can be constructed: the first is to associate each operator with its output data to form a first mapping pair; the second is to associate each operator with the data it depends on to generate a second mapping pair. The construction of these two mapping relationships can be used to determine the operator pairs with dependencies, that is, the third mapping pairs. Afterwards, based on all the determined third mapping pairs, each operator participating in the dependency relationship can be used as a node, and the dependency relationship between them can be used as an edge to draw a directed relationship graph. In the generated directed relationship graph, each edge can not only connect two nodes, but also intuitively show the direction of data flow, for example, an edge pointing from the first operator to the second operator.

[0055] Therefore, according to the embodiments of the present disclosure, the dependency relationship between operators is displayed visually based on a directed graph, that is, the nodes in the directed graph only consist of operators, so that developers can intuitively identify system bottlenecks and critical paths, thereby accelerating the problem location and solution process, and directly improving the overall performance and resource utilization of the graph engine.

[0056] According to an embodiment of the present disclosure, based on the at least one first mapping pair and the at least one second mapping pair, determining at least one third mapping pair includes: generating a first mapping dictionary, wherein the first mapping dictionary includes the at least one first mapping pair corresponding to each of the multiple operators; generating a second mapping dictionary, wherein the second mapping dictionary includes the at least one second mapping pair corresponding to each of the multiple operators; and traversing the first mapping pairs in the first mapping dictionary in sequence to perform the following operations when traversing to the corresponding first mapping pair: traversing the second mapping pairs in the second mapping dictionary in sequence to determine whether the output data in the currently traversed first mapping pair is the same as the dependent data in the currently traversed second mapping pair; in response to determining that the output data in the currently traversed first mapping pair is the same as the dependent data in the currently traversed second mapping pair, generating a third mapping pair from the operator in the currently traversed first mapping pair to the operator in the currently traversed second mapping pair.

[0057] In some embodiments, to determine dependencies between operators and generate the third mapping pair, two mapping dictionaries must first be constructed: a first mapping dictionary and a second mapping dictionary. The first mapping dictionary can record each operator and its corresponding output data, that is, the data generated by the operator; while the second mapping dictionary can record each operator and its dependent data, that is, the data required as input for the operator to run. By traversing these two dictionaries, it is possible to accurately match situations where the output of one operator exactly satisfies the input of another operator, thereby identifying the dependency relationship between the two operators.

[0058] Specifically, this process may include sequentially traversing each first mapping pair in the first mapping dictionary, and further traversing all second mapping pairs in the second mapping dictionary during each traversal, checking whether the output data in the current first mapping pair is the same as the dependent data in the current second mapping pair. Once a match is found, a third mapping pair can be generated, which can be visually represented as a directed edge from the operator corresponding to the output data to the operator corresponding to the dependent data.

[0059] Therefore, this approach can ensure that all potential dependencies between operators can be identified and accurately reflected in the final generated directed graph, facilitating subsequent optimization work.

[0060] Figure 4 FIG. 4 shows a schematic diagram of generating a third mapping pair according to an embodiment of the present disclosure. Figure 4As shown, by analyzing the above configuration file, a first mapping dictionary can be obtained, which contains a first mapping pair z——>F1; and a second mapping dictionary, which contains a second mapping pair z——>F2. Since the output data z in the first mapping pair is the same as the dependent data z in the second mapping pair, a third mapping pair F1——>F2 can be generated, which points from the operator F1 in the first mapping pair to the operator F2 in the second mapping pair.

[0061] According to an embodiment of the present disclosure, the edges in the generated directed relationship graph have corresponding visual attributes.

[0062] By expressing the edges in the directed relationship graph through visual attributes, it is easier for later developers to use dependency relationships to split and merge operators to complete operator optimization.

[0063] According to an embodiment of the present disclosure, the visual attribute includes at least one of the following: color and line shape, wherein the color is determined according to the weight of the second operator having a dependency relationship connected by the edge.

[0064] In the generated directed graph, each edge not only represents the dependency between two operators but also intuitively conveys more information about system performance through specific visual attributes. These visual attributes include, but are not limited to, edge color and line shape (e.g., thickness, line type), which can be assigned different weights to reflect the specific characteristics of the inter-operator dependency.

[0065] In some embodiments, color can be used as a visual attribute to intuitively reflect the importance or influence of the dependencies between connected operators. The depth of the color can be determined by assigning different weights to the second operator: the larger the weight, the darker the color; the smaller the weight, the lighter the color. Line shape is another visual method that can be used to illustrate the strength of data flow or the strength of dependencies between operators, further facilitating an intuitive understanding of the logical structure of the directed graph.

[0066] In this way, developers can quickly identify the key nodes of the system and possible efficiency issues, achieve more efficient resource utilization and shorter optimized execution time, and greatly improve developers' understanding and control of complex parallel computing graphs.

[0067] According to an embodiment of the present disclosure, the weight of the second operator is determined based on the following operations: for each of the third mapping pairs, determining the number of output data and the number of dependent data corresponding to the second operator in the third mapping pair; and based on the number of output data and the number of dependent data, determining the weight corresponding to the second operator.

[0068] According to some embodiments, the amount of output data may refer to the amount of output data directly generated by a certain operator, and the amount of dependent data may refer to the amount of input data directly required for the normal operation of the operator. Each second operator may be assigned a weight value based on the amount of dependent data and the amount of output data. For example, the weight may also be a normalized weight, and these weight values ​​may determine the color depth of the edges representing the dependency relationship. For example, in an image recognition task, if a certain operator becomes a performance bottleneck due to processing complex images, then all edges pointing to the operator will be displayed in a darker color to indicate the high weight and importance of the operator.

[0069] This weighted calculation method based on the number of output and dependent data not only allows developers to quickly locate the operators that have the greatest impact on system performance and take corresponding optimization measures, thereby significantly improving the overall efficiency and stability of the system, but also helps to increase the speed of development iterations and simplify the understanding and management of complex systems.

[0070] According to an embodiment of the present disclosure, the line shape is determined according to the weight of the first operator with a dependency relationship connected to the edge.

[0071] In some embodiments, line shape can be used as another visual attribute to represent edge characteristics. Line shape is primarily used to intuitively reflect the weight of the first operator in a connection. For example, the edge corresponding to the first operator with a higher weight can be displayed as thicker or with a different line type (such as solid or dashed) to highlight the importance of these operators in the overall system.

[0072] In this way, developers can quickly identify critical paths and nodes that have a significant impact on overall performance.

[0073] According to an embodiment of the present disclosure, the weight of the first operator is determined based on the execution time corresponding to the first operator.

[0074] In some embodiments, determining the weight of the first operator based on the execution time can provide an intuitive visual representation for those critical paths that take a long time and have a greater impact on the overall performance of the system by quantifying the execution time of each operator. Specifically, for each first operator in the third mapping pair, its actual runtime execution time can be obtained by querying log files, etc. This execution time can reflect the complexity and resource consumption of the operator in processing data, and is a key indicator to measure its importance in the entire system. Based on this execution time, the weight of the first operator can be determined. For example, the weight can also be a normalized weight. The longer the operator execution time, the higher its corresponding weight; the shorter the operator execution time, the lower its weight.

[0075] This method of determining weights based on execution time not only provides developers with an intuitive feedback mechanism, but also helps them quickly identify critical paths that have a significant impact on overall performance, allowing them to take corresponding optimization measures, such as splitting time-consuming operators or allocating them to different computing nodes.

[0076] In an exemplary embodiment of the present disclosure, based on the generated directed graph, developers can intuitively identify system bottlenecks and critical paths, thereby accelerating the problem location and resolution process. Figure 5 As shown in the figure, analysis reveals that the data produced by the SmallflowProcess operator is required by almost all operators. By hiding this operator and then observing other operators, valuable details about the graph engine project execution can be discovered. Furthermore, by using edge color and / or line type (e.g., thickness), important operators with significant impact on time consumption can be further identified. This provides intuitive graphical support for optimizing and focusing on relevant operators in the graph engine.

[0077] Figure 6 FIG. 1 shows a schematic diagram of system optimization based on a directed graph according to an embodiment of the present disclosure. Figure 6 As shown on the left, the four operators M, N, O, and P need to rely on the two large operators (GrcProcessor and LiveRecall) to be executed before they are executed. They are all in a waiting state. When it is determined in advance that the four operators M, N, O, and P rely on some functions in the GrcProcessor operator, they can be optimized as Figure 6 As shown on the right, after optimization, GrcProcessor1, GrcProcessor2, and GrcProcessor3 operators are executed concurrently. Whichever operator produces data first will start the corresponding downstream dependency execution, reducing the overall waiting time.

[0078] According to the embodiments of the present disclosure, Figure 7As shown, a data processing device 700 is also provided, and the device 700 includes: an acquisition unit 710, configured to acquire a configuration file corresponding to a plurality of operators, wherein the configuration file includes at least one dependency data on which each operator in the plurality of operators depends and at least one output data output by the operator when being executed; a first generation unit 720, configured to generate at least one first mapping pair for each operator in the plurality of operators by parsing the configuration file, wherein each first mapping pair in the at least one first mapping pair includes the operator and the corresponding output data corresponding to the operator; a second generation unit 730, configured to generate at least one second mapping pair for each operator in the plurality of operators by parsing the configuration file, wherein each second mapping pair in the at least one second mapping pair includes the operator and the corresponding output data corresponding to the operator. The corresponding dependency data corresponding to the operator; the third generation unit 740 is configured to determine at least one third mapping pair based on the at least one first mapping pair and the at least one second mapping pair, wherein each third mapping pair in the at least one third mapping pair includes two operators with a dependency relationship, and the two operators are represented as being pointed from the first operator to the second operator, wherein the first operator and the second operator are both operators among the multiple operators; and a directed relationship graph generation unit 750 is configured to, according to each third mapping pair, respectively use the first operator and the second operator in the third mapping pair as corresponding nodes in the generated directed relationship graph, and, in the generated directed relationship graph, include an edge pointing from the first operator to the second operator, and the edge is used to indicate that there is a dependency relationship between the two nodes.

[0079] Here, the operations of the above-mentioned units 710-750 of the data processing device 700 are similar to the operations of steps 210-250 described above, and are not repeated here.

[0080] In the technical solutions disclosed herein, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved comply with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0081] According to an embodiment of the present disclosure, an electronic device, a readable storage medium, and a computer program product are also provided.

[0082] refer to Figure 8, a block diagram of an electronic device 800 that can serve as a server or client of the present disclosure will now be described, which is an example of a hardware device that can be applied to various aspects of the present disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0083] like Figure 8 As shown, the electronic device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 802 or a computer program loaded from a storage unit 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the electronic device 800 can also be stored. The computing unit 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0084] Multiple components within electronic device 800 are connected to I / O interface 805, including an input unit 806, an output unit 807, a storage unit 808, and a communication unit 809. Input unit 806 can be any type of device capable of inputting information into electronic device 800. Input unit 806 can receive input numeric or character information and generate key signal input related to user settings and / or function control of the electronic device. It may include, but is not limited to, a mouse, keyboard, touch screen, trackpad, trackball, joystick, microphone, and / or remote control. Output unit 807 can be any type of device capable of presenting information, and may include, but is not limited to, a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. Storage unit 808 may include, but is not limited to, a magnetic disk or an optical disk. Communication unit 809 allows electronic device 800 to exchange information / data with other devices via computer networks such as the Internet and / or various telecommunication networks. It may include, but is not limited to, a modem, a network card, an infrared communication device, a wireless communication transceiver and / or chipset, such as a Bluetooth device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication device, and / or the like.

[0085] The computing unit 801 can be a variety of general-purpose and / or specialized processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as method 200. For example, in some embodiments, method 200 can be implemented as a computer software program that is tangibly contained in a machine-readable medium, such as a storage unit 808. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the method 200 described above can be performed. Alternatively, in other embodiments, the computing unit 801 can be configured to perform method 200 in any other appropriate manner (e.g., by means of firmware).

[0086] Various embodiments of the systems and techniques described above can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0087] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0088] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device or equipment. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium can include an electrical connection based on one or more lines, 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), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0089] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0090] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), the Internet, and a blockchain network.

[0091] A computer system may include a client and a server. The client and server are generally remote from each other and typically interact through a communication network. The client-server relationship arises through computer programs running on the respective computers and having a client-server relationship with each other. The server may be a cloud server, a server in a distributed system, or a server integrated with a blockchain.

[0092] It should be understood that the various forms of the processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved. This is not limited herein.

[0093] Although the embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it should be understood that the above-mentioned methods, systems and devices are merely exemplary embodiments or examples, and the scope of the present invention is not limited by these embodiments or examples, but is only limited by the claims after authorization and their equivalents. Various elements in the embodiments or examples may be omitted or replaced by their equivalents. In addition, the steps may be performed in an order different from that described in this disclosure. Further, the various elements in the embodiments or examples may be combined in various ways. It is important that as technology evolves, many of the elements described herein may be replaced by equivalent elements that appear after this disclosure.

Claims

1. A data processing method, comprising: Obtaining configuration files corresponding to multiple operators, where the configuration files include at least one dependency data that each operator in the multiple operators depends on and at least one output data output by each operator when being executed; For each operator of the plurality of operators, generating at least one first mapping pair by parsing the configuration file, wherein each first mapping pair of the at least one first mapping pair includes the operator and corresponding output data corresponding to the operator; For each operator in the plurality of operators, generating at least one second mapping pair by parsing the configuration file, wherein each second mapping pair in the at least one second mapping pair includes the operator and corresponding dependency data corresponding to the operator; Determining at least one third mapping pair based on the at least one first mapping pair and the at least one second mapping pair, wherein each third mapping pair in the at least one third mapping pair includes two operators having a dependency relationship, and the two operators are represented as being directed from a first operator to a second operator, wherein both the first operator and the second operator are operators in the plurality of operators; as well as According to each third mapping pair, the first operator and the second operator in the third mapping pair are respectively used as corresponding nodes in the generated directed relationship graph, and the generated directed relationship graph includes an edge pointing from the first operator to the second operator, and the edge is used to indicate that there is a dependency relationship between the two nodes.

2. The method according to claim 1, wherein Determining at least one third mapping pair based on the at least one first mapping pair and the at least one second mapping pair includes: generating a first mapping dictionary, wherein the first mapping dictionary includes the at least one first mapping pair corresponding to each of the plurality of operators; generating a second mapping dictionary, wherein the second mapping dictionary includes the at least one second mapping pair corresponding to each of the plurality of operators; and The first mapping pairs in the first mapping dictionary are traversed in sequence, and the following operations are performed when the corresponding first mapping pair is traversed: Sequentially traversing the second mapping pairs in the second mapping dictionary to determine whether the output data in the currently traversed first mapping pair is the same as the dependent data in the currently traversed second mapping pair; and In response to determining that the output data in the currently traversed first mapping pair is the same as the dependent data in the currently traversed second mapping pair, a third mapping pair is generated in which the operator in the currently traversed first mapping pair points to the operator in the currently traversed second mapping pair.

3. The method according to claim 1, wherein The edges in the generated directed relationship graph have corresponding visual attributes.

4. The method according to claim 3, wherein: The visual attributes include at least one of the following: color and line shape, wherein the color is determined according to the weight of the second operator having a dependency relationship connected by the edge.

5. The method according to claim 4, wherein: The weight of the second operator is determined based on the following operations: For each third mapping pair, determining the output data quantity and the dependent data quantity corresponding to the second operator in the third mapping pair; as well as Based on the output data quantity and the dependent data quantity, a weight corresponding to the second operator is determined.

6. The method of claim 4, wherein: The line shape is determined according to the weight of the first operator having a dependency relationship connected to the edge.

7. The method according to claim 6, wherein: The weight of the first operator is determined based on an execution time corresponding to the first operator.

8. A data processing device comprising: an acquiring unit configured to acquire configuration files corresponding to a plurality of operators, wherein the configuration files include at least one dependency data on which each operator in the plurality of operators depends and at least one output data output by each operator when the operator is executed; a first generating unit configured to generate, for each operator of the plurality of operators, at least one first mapping pair by parsing the configuration file, wherein each first mapping pair of the at least one first mapping pair includes the operator and corresponding output data corresponding to the operator; a second generating unit configured to generate, for each operator of the plurality of operators, at least one second mapping pair by parsing the configuration file, wherein each second mapping pair of the at least one second mapping pair includes the operator and corresponding dependency data corresponding to the operator; a third generating unit configured to determine at least one third mapping pair based on the at least one first mapping pair and the at least one second mapping pair, wherein each third mapping pair in the at least one third mapping pair includes two operators having a dependency relationship, and the two operators are represented as being pointed from a first operator to a second operator, wherein both the first operator and the second operator are operators in the plurality of operators; as well as A directed relationship graph generation unit is configured to, based on each third mapping pair, use the first operator and the second operator in the third mapping pair as corresponding nodes in the generated directed relationship graph, and in the generated directed relationship graph, include an edge pointing from the first operator to the second operator, and the edge is used to indicate that there is a dependency relationship between the two nodes.

9. An electronic device comprising: at least one processor; as well as a memory communicatively coupled to the at least one processor; in The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 8.

10. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1 to 8.

11. A computer program product comprising a computer program, wherein When the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.