# US 11,907,693 B2 · Job decomposition processing method for distributed computing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,693 B2
- Document ID: US11907693B2
- Status: Granted
- Kind: B2
- Application number: 18/110,910
- Filed: 2023-02-17
- Published: 2023-11-02
- Granted: 2024-02-20
- Earliest claimed: 2022-04-29
- Assignees: Zhejiang Lab
- Applicants: Zhejiang Lab
- Inventors: Wenyuan Bai; Feng Gao
- Web page: https://patentgrep.com/patent/US11907693B2

## CPC

- G06F 8/443: {Optimisation}
- G06F 8/45: {Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions}
- G06F 8/433: {Dependency analysis; Data or control flow analysis}
- G06F 8/4441: {Reducing the execution time required by the program code}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/75: Structural analysis for program understanding
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A job decomposition processing method for distributed computing, which comprises: analyzing a source program to be run by program static analysis to determine a function call graph contained in the source program; determining feature information of functions contained in the source program by program dynamics analysis or/and a program intelligent decomposition algorithm, wherein the feature information of the functions is used to characterize relevant information when each function is being running; decomposing the source program based on the feature information of the functions, a function relationship and available resource information of a computing platform to form an execution recommendation for each function on the computing platform, i.e., which hardware resources are used for computing each function; finally inserting a modifier in the source program and starting computation on the computing platform.

## Claims

### Claim 1

A job decomposition processing method for distributed computing, comprising:
analyzing a source program to be run by program static analysis to determine a function call graph contained in the source program being run, wherein the function call graph is configured to characterize a Call relationship between functions contained in the source program;
determining function feature information in the functions contained in the source program according to the Call relationship between the functions, wherein the function feature information is configured to characterize function computing-related information when each of the functions is being run;
decomposing the source program according to the function feature information, a function relationship and available resource information of a platform on which a source program is to be run, and determining a running relationship between the functions contained in the source program and an execution recommendation for each function on the platform when the source program is being run on the platform, wherein the running relationship comprises serial running and/or parallel running, and the execution recommendation is configured to indicate hardware resources on the platform to execute each function;
inserting a modifier of codes based on a distributed computing framework in the source program according to the function Call relationship and the execution recommendation, so that the source program is capable of conducting distributed computing on the platform; and
running the source program in which the modifier has been inserted on the platform according to the execution recommendation.

### Claim 2 (depends on 1)

The job decomposition processing method for distributed computing according to claim 1, wherein said analyzing the source program to be run by program static analysis to determine the function call graph contained in the source program being run comprises:
scanning codes of the source program without running the codes of the source program to determine the function call graph contained in the source program.

### Claim 3 (depends on 1)

The job decomposition processing method for distributed computing according to claim 1, further comprises: saving the function call graph with an adjacency table, wherein the function call graph is a directed acyclic graph.

### Claim 4 (depends on 2)

The job decomposition processing method for distributed computing according to claim 2, wherein said scanning the codes of the source program without running the codes of the source program to determine the function call graph contained in the source program comprises:
performing code segmentation and collection on the source program: dividing the program into a plurality of packages, analyzing and managing dependencies within the packages, and creating a node Call relationship graph;
extracting function information for each function in the source program: constructing different information extraction structures according to function declarations and calling mode to extract information about parameters and types of the parameters, respectively, to obtain an inter-function relationship table; and
generating a function call graph based on the node Call relationship graph and the inter-function relationship table.

### Claim 5 (depends on 1)

The job decomposition processing method for distributed computing according to claim 1, wherein said determining function feature information in the functions contained in the source program according to the Call relationship comprises: determining the function feature information in the functions contained in the source program by program dynamics analysis according to the Call relationship.

### Claim 6 (depends on 5)

The job decomposition processing method for distributed computing according to claim 5, wherein said determining the function feature information in the functions contained in the source program by program dynamics analysis according to the Call relationship comprises:
performing an instrumentation operation on each function in program before the source program is run; and
entering instrumented recording functions when the source program is being run to record feature data during execution of each function, wherein the feature data comprises at least one of following function computing-related information: GPU, CPU, memory, I/O, run time.

### Claim 7 (depends on 1)

The job decomposition processing method for distributed computing according to claim 1, wherein said determining function feature information in the functions contained in the source program according to the Call relationship comprises: determining the function feature information in the functions contained in the source program according to the Call relationship by a pre-trained program intelligent decomposition algorithm;
wherein an input of the program intelligent decomposition algorithm is the Call relationship and an output is the function feature information in the functions contained in the source program.

### Claim 8 (depends on 7)

The job decomposition processing method for distributed computing according to claim 7, wherein a training process of the program intelligent decomposition algorithm comprises:
executing repeatedly for at least twice on a single resource for each of the functions in different programs in case of a consistent data amount, and obtaining a function feature information average value corresponding to each of the functions; and
grouping function feature information average values of different functions, and obtaining a program intelligent decomposition algorithm model based on a grouping result by using machine learning and/or a knowledge graph model to train;
wherein training data of the training process is a function feature table generated by an average value obtained by repeatedly executing functions on the single resource, and a training result is a program intelligent decomposition algorithm based on machine learning and knowledge graph model formed by grouping the function feature table.

### Claim 9 (depends on 8)

The job decomposition processing method for distributed computing according to claim 8, wherein the program intelligent decomposition algorithm comprises at least one of:
similarity metric modeling, regression similarity learning, classification similarity learning, and ranking similarity learning.

### Claim 10 (depends on 1)

The job decomposition processing method for distributed computing according to claim 1, wherein the hardware resources of the platform comprise at least one of servers, virtual machines, gateways, and end computing devices, and wherein the execution recommendation is characterized by an execution recommendation table.

### Claim 11 (depends on 1)

The job decomposition processing method for distributed computing according to claim 1, wherein the codes based on the distributed computing framework comprise one of: MapReduce, Ray, and Spark.
