Dynamic data and compute resource elasticity
AssigneeMicrosoft Technology Licensing, LLC
InventorsKrishnan Varadarajan, Michael L. Chu
Life of this patent
Estimating the term…
Abstract
An execution environment in a computer system provides dynamic data and compute resources elasticity for user code to improve execution efficiency. The execution environment translates the user code into a runtime agnostic representation with a set of tasks. For each task, the execution environment determines a level of concurrency for executing the task based on the size of the set of input data for the task, the amount of compute resources available at the time of invocation of the task, and any context-sensitive heuristics provided by the user code.
Claims20
A system comprising:
- memory to store instructions;
- a processor package to execute the instructions to:
- dynamically bind user code to a selected execution runtime, selected from a set of at least two different execution runtimes;
- and
- delineate a programming model for the user code from the set of at least two different execution runtimes thereby the same user code may be used to target the at least two different execution runtimes without incurring an overhead of including runtime-specific code for each execution runtime to provide automatic scaling of execution of the user code from a single machine to multiple machines.
A computer readable storage device, which does not include a transitory propagating signal, to store computer-executable instructions to control a computer system to:
- dynamically bind user code to a selected execution runtime, selected from a set of at least two different execution runtimes;
- and
- delineate a programming model for the user code from the set of at least two different execution runtimes thereby the same user code may be used to target the at least two different execution runtimes without incurring an overhead of including runtime-specific code for each execution runtime to provide automatic scaling of execution of the user code from a single machine to multiple machines.
A method performed by at least one computer system, the method comprising:
- dynamically binding user code to a selected execution runtime, selected from a set of at least two different execution runtimes;
- and
- delineating a programming model for the user code from the set of at least two different execution runtimes thereby the same user code may be used to target the at least two different execution runtimes without incurring an overhead of including runtime-specific code for each execution runtime to provide automatic scaling of execution of the user code from a single machine to multiple machines.
Dependencies are inferred from the claim text.