Compiling multi-threaded applications for targeted criticalities
AssigneeOracle International Corporation
InventorsSpiros Kalogeropulos, Partha Tirumalai
Life of this patent
Estimating the term…
Abstract
Methods are disclosed of compiling a software application having multiple functions. At least one of the functions is identified as a targeted function having a significant contribution to performance of the software application. A code version of the targeted function is generated with one of multiple machine models corresponding to different target utilizations for a target architecture, specifically corresponding to the one with the greatest of the different target utilizations. The generated code version of the targeted function is matched with an application thread of the target architecture.
Claims15
A method of compiling a software application comprising a plurality of functions, comprising:
- identifying at least one of the plurality of functions as a targeted function having a significant contribution to performance of the software application by determining a time to execute at least one of the plurality of functions relative to a total execution time of the software application is greater than a threshold value, and classifying the plurality of functions with execution profiling information in addition to or in place of use of a time to execute, wherein the profiling information includes one or more measurements of the functions;
- generating a code version of the targeted function with a first of a plurality of machine models, the machine models corresponding respectively to different target utilizations for a target architecture and the first of the plurality of machine models corresponding to a greatest of the different target utilizations;
- and
- matching the generated code version of the targeted function with a first application thread of the target architecture,
- wherein the generating the code version of the targeted function with the first of the plurality of machine models comprises generating respective code versions of the targeted function with each of the plurality of machine models.
A method of compiling a software application comprising a plurality of functions, comprising:
- identifying at least one of the plurality of functions as a targeted function having a significant contribution to performance of the software application by determining a time to execute at least one of the plurality of functions relative to a total execution time of the software application is greater than a threshold value;
- generating a code version of the targeted function with a first of a plurality of machine models, the machine models corresponding respectively to different target utilizations for a target architecture and the first of the plurality of machine models corresponding to a greatest of the different target utilizations;
- and
- matching the generated code version of the targeted function with a first application thread of the target architecture,
- wherein the matching the generated code version of the targeted function with the first application thread comprises:
- marking application threads with a criticality index value defining which of the plurality of machine models of the code generated is used;
- and
- matching the generated code version of the targeted function with the first application thread in accordance with the criticality index.
A method of compiling a software application comprising a plurality of functions, comprising:
- identifying at least one of the plurality of functions as a targeted function having a significant contribution to performance of the software application;
- generating a code version of the targeted function with a first of a plurality of machine models, the machine models corresponding respectively to different target utilizations for a target architecture and the first of the plurality of machine models corresponding to a greatest of the different target utilizations;
- and
- matching the generated code version of the targeted function with a first application thread of the target architecture,
- wherein the generating of the code version of the targeted function with the first of the plurality of machine models comprises generating respective code versions of the targeted function with each of the plurality of machine models,
- wherein the identifying of the at least one of the plurality of functions as the targeted function comprises classifying the plurality of functions with static analysis in addition to or in place of use of a time to execute, and
- wherein one of the machine models corresponds to an application thread using a defined fraction of resources of an architecture core, wherein instructions latencies from the application thread are divided by a number that corresponds to the defined fraction of the number of threads potentially running on the core.
Dependencies are inferred from the claim text.