G06F8/433

Allocation of shared computing resources using source code feature extraction and machine learning

Techniques are provided for allocation of shared computing resources using source code feature extraction and machine learning techniques. An exemplary method comprises obtaining source code for execution in a shared computing environment; extracting a plurality of discriminative features from the source code; obtaining a trained machine learning model; and generating a prediction of an allocation of one or more resources of the shared computing environment needed to satisfy one or more service level agreement requirements for the source code. The generated prediction is optionally adjusted using a statistical analysis of an error curve, based on one or more error boundaries obtained by the trained machine learning model. The trained machine learning model can be trained using a set of discriminative features extracted from training source code and corresponding measurements of metrics of the service level agreement requirements obtained by executing the training source code on a plurality of the resources of the shared computing environment.

Neural network operation reordering for parallel execution

Techniques are disclosed for reordering operations of a neural network to improve runtime efficiency. In some examples, a compiler receives a description of the neural network comprising a plurality of operations. The compiler may determine which execution engine of a plurality of execution engines is to perform each of the plurality of operations. The compiler may determine an order of performance associated with the plurality of operations. The compiler may identify a runtime inefficiency based on the order of performance and a hardware usage for each of the plurality of operations. An operation may be reordered to reduce the runtime inefficiency. Instructions may be compiled based on the plurality of operations, which include the reordered operation.

DETERMINING A DISTRIBUTED SYSTEM TOPOLOGY FROM A SINGLE APPLICATION DEPLOYMENT
20230236810 · 2023-07-27 ·

Systems and methods for determining a topology of an application deployment on a distributed system can include receiving multiple traces of requests within an application, where the application includes multiple components. They can also include determining a number of times that each span between the components is traversed by a trace and associating each span with a corresponding weight reflecting the number of times that the span is traversed. Such systems and methods can further include selecting a deployment scenario based on the respective weights of each of the spans.

Application migration using cost-aware code dependency graph

Described are techniques for application migration. The techniques include migrating an application to a target cloud infrastructure and generating a cost-aware code dependency graph during execution of the application on the target cloud infrastructure. The techniques further include modifying the application by removing source code corresponding to unused nodes according to the cost-aware code dependency graph and replacing identified source code of a high-cost subgraph of the cost-aware code dependency graph with calls to a generated microservice configured to provide functionality similar to the identified source code. The techniques further include implementing the modified application on one or more virtual machines of the target cloud infrastructure.

REGISTER PRESSURE TARGET FUNCTION SPLITTING
20230029183 · 2023-01-26 ·

Provided are embodiments for a method of performing register pressure targeted function splitting. The method can include determining a candidate region of a function, the candidate region comprising variables, and determining a number of available registers in a computing system for allocating the variables of the function. The method can also include grouping the variables in the candidate region into first variables and second variables based at least in part on the number of available registers, and splitting the candidate region of the function into split functions based at least in part on the grouping of the variables. Also provided are embodiments for a computer program product and a system for performing register pressure targeted function splitting

Intelligent prefetching for OS components

The correct clusters of operating system (OS) components to package for hydration to client devices is learned through analyzing telemetry data of numerous end devices. The telemetry data captures snapshots of the OS components that were used or loaded by the end devices during runs of different applications. An OS component service mines this telemetry data and compares the frequency in which pairs of OS components are used by the end devices together during the different applications runs. Using on these frequencies, the OS components are filtered in a relationship graph and an clustering algorithm is applied to determine whether the OS components are interdependent (meaning used together) or independent (meaning not used together). Interdependent OS components are packaged together into a hydration package and may be transmitted to client computing devices requesting any of their constituent OS components.

CODE PROCESSING METHOD AND APPARATUS, AND STORAGE MEDIUM
20230229410 · 2023-07-20 ·

This application discloses code processing methods, apparatuses, and storage media. An example method includes: obtaining a first code in low-level language and applicable to a source platform; decompiling the obtained first code to obtain an intermediate representation (IR); and then compiling the IR into a second code in low-level language and applicable to a first target platform, where the source platform and the target platform have different instruction sets.

PAGE RENDERING METHOD, APPARATUS, ELECTRONIC DEVICE, COMPUTER-READABLE STORAGE MEDIUM, AND COMPUTER PROGRAM PRODUCT
20230229406 · 2023-07-20 ·

A page rendering method and apparatus. The method includes presenting a local compilation control, the local compilation control being directed to a page node to be locally compiled for a page to be viewed; obtaining a page node in response to a local compilation operation performed on the local compilation control; obtaining a code node corresponding to the page node of the page to be complied from a code dependency relationship, the code dependency relationship being constructed based on a dependency relationship between code files, and the code dependency relationship representing a hierarchical relationship between nodes corresponding to the code files; compiling a code file corresponding to the code node of the code to be complied to obtain a compiled code; and presenting the page to be viewed corresponding to the page node of the page to be complied based on the compiled code.

METHOD AND APPARATUS FOR IDENTIFYING DYNAMICALLY INVOKED COMPUTER CODE
20230229460 · 2023-07-20 ·

A method, computerized apparatus and computer program product, the method comprising: obtaining user code; using static analysis, determining from the user code a collection of components upon which the user code depends, the collection of components comprising a first component representing a first entity, wherein one or more components of the collection of components is to be loaded dynamically by the user code; determining whether the user code or the first component from the collection of components uses dynamic invocation; subject to the user code or the first component using dynamic invocation, adding a new connection to a second component from the collection of components, the second component representing a second entity that augments an entity reachable from the first entity; and outputting information about the second entity.

SYSTEM AND METHOD OF USING SUSTAINABILITY TO ESTABLISH COMPILATION METHODS ALIGNED WITH SUSTAINABILITY GOALS

Generating compilation methods using sustainability. Code is compiled in a manner that accounts for sustainability values. When a compilation request is received, sustainability values are identified. The resources needed to fulfill the compilation request are identified based on the sustainability values and available resources. Once the resources that are likely to best meet the sustainability values, the compilation request is performed using those resources.