Implementing functional kernels using compiled code modules
AssigneeMicrosoft Corporation
InventorErik S. Ruf
Life of this patent
Estimating the term…
Abstract
A framework is set forth herein that uses a composition mechanism to produce function data that describes a kernel. The composition mechanism may then send the function data to an execution mechanism. The execution mechanism uses the function data to dynamically execute pre-compiled code modules, which are identified by the function data. According to another aspect, the framework provides different mechanisms for implementing the kernel, depending on the native capabilities of the execution mechanism.
Claims20
A method for producing and executing a kernel, comprising:
- in a composition mechanism, generating function data associated with the kernel, the function data parametrically specifying at least one function;
- transferring the function data to an execution mechanism;
- and
- at the execution mechanism:
- receiving and storing the function data;
- receiving and storing input data;
- dynamically invoking at least one compiled code module to process the input data, based on the function data, to provide output data;
- and
- providing the output data,
- the composition mechanism being different from the execution mechanism, and
- the composition mechanism and the execution mechanism being implemented by computing functionality.
A virtual machine, implemented by computing functionality, for operation in an execution mechanism that is separate from a composition mechanism, comprising:
- a plurality of pre-compiled code modules;
- a function data store for storing function data that parametrically specifies a kernel, the function data being provided by the composition mechanism;
- and
- at least one evaluation module that is configured to:
- receive and store input data;
- dynamically invoke at least one compiled code module to process the input data, based on the function data, to provide output data;
- and
- provide the output data.
A computer readable storage medium for storing computer readable instructions, the computer readable instructions providing a composition mechanism when executed by one or more processing devices, the computer readable instructions comprising:
- a kernel-creation module configured to execute at least one constructor module to construct a kernel, the kernel being parametrically expressed by function data,
- each constructor module being configured to construct a function when invoked, each function comprising:
- a tag that identifies an associated compiled code module;
- and
- an index pointing to a location in an environment data structure at which at least one construction-time parameter, associated with the function, is stored;
- and
- a transfer module configured to forward the function data to an execution mechanism for parallel execution of the kernel using a plurality of evaluation modules, where the execution mechanism is separate from the composition mechanism.
Dependencies are inferred from the claim text.