Locality-based scheduling in continuation-based runtimes
First Claim
1. At a computer system including a processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for establishing an execution environment for executing activities in a continuation based runtime, the method comprising:
- an act of establishing an execution environment for executing activities in a continuation based runtime (CBR), wherein establishing the execution environment comprises instantiating an activity scheduler that is configured to perform the following;
an act of scheduling an activity for execution in the CBR, wherein the scheduled activity is associated with one or more work items and unique context information corresponding to the work items, the scheduling including adding the one or more work items to an execution stack and tracking pending activity of the one or more work items to determine when the scheduled activity has reached at least one of a plurality of completed states;
an act of resolving arguments and variables of the scheduled activity prior to invoking the scheduled activity using the scheduled activity'"'"'s unique context;
an act of determining, based on the scheduled activity'"'"'s unique context, that the scheduled activity comprises at least one work item that is to be queued at the top of the execution stack; and
based on the determination, an act of queuing the at least one work item to the top of the execution stack; and
an act of executing the one or more work items of the scheduled activity as queued in the execution stack of the established execution environment in the CBR, including executing the one or more work items of the scheduled activity without process affinity, by at least;
executing a particular work item of the scheduled activity on a first process;
pausing execution of the particular work item; and
subsequent to pausing execution of the particular work item, resuming execution of the particular work item on a second, different, process.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system establishes an execution environment for executing activities in a continuation based runtime including instantiating an activity scheduler configured to perform the following: scheduling activities for execution in the CBR. The activity scheduler resolves the scheduled activity'"'"'s arguments and variables prior to invoking the scheduled activity using the activity'"'"'s unique context. The activity scheduler also determines, based on the activity'"'"'s unique context, whether the scheduled activity comprises a work item that is to be queued at the top of the execution stack and, based on the determination, queues the work item to the execution stack. The computer system executes the work items of the scheduled activity as queued in the execution stack of the established execution environment in the CBR.
30 Citations
20 Claims
-
1. At a computer system including a processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for establishing an execution environment for executing activities in a continuation based runtime, the method comprising:
-
an act of establishing an execution environment for executing activities in a continuation based runtime (CBR), wherein establishing the execution environment comprises instantiating an activity scheduler that is configured to perform the following; an act of scheduling an activity for execution in the CBR, wherein the scheduled activity is associated with one or more work items and unique context information corresponding to the work items, the scheduling including adding the one or more work items to an execution stack and tracking pending activity of the one or more work items to determine when the scheduled activity has reached at least one of a plurality of completed states; an act of resolving arguments and variables of the scheduled activity prior to invoking the scheduled activity using the scheduled activity'"'"'s unique context; an act of determining, based on the scheduled activity'"'"'s unique context, that the scheduled activity comprises at least one work item that is to be queued at the top of the execution stack; and based on the determination, an act of queuing the at least one work item to the top of the execution stack; and an act of executing the one or more work items of the scheduled activity as queued in the execution stack of the established execution environment in the CBR, including executing the one or more work items of the scheduled activity without process affinity, by at least; executing a particular work item of the scheduled activity on a first process; pausing execution of the particular work item; and subsequent to pausing execution of the particular work item, resuming execution of the particular work item on a second, different, process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product for implementing a method for establishing a performant, predictable execution environment for executing activities in a continuation based runtime, the computer program product comprising one or more physical storage devices having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform the method, the method comprising:
-
an act of establishing an execution environment for executing activities in a continuation based runtime (CBR), wherein establishing the execution environment comprises instantiating an activity scheduler, the scheduler including a policy mechanism that is configured to provide configurable settings that are applied during activity execution, the scheduler being configured to perform the following; an act of scheduling an activity for execution in the CBR according to one or more settings defined in an activity execution policy, wherein the scheduled activity is associated with one or more work items and unique context information corresponding to the work items, the scheduling including adding the one or more work items to an execution stack and tracking pending activity of the one or more work items to determine when the scheduled activity has reached at least one of a plurality of completed states; an act of resolving arguments and variables of the schedule activity prior to invoking the scheduled activity using the scheduled activity'"'"'s unique context; an act of determining, based on the scheduled activity'"'"'s unique context, that the scheduled activity comprises at least one work item that is to be queued at the top of the execution stack; and based on the determination, an act of queuing the at least one work item to the top of the execution stack; and an act of executing the one or more work items of the scheduled activity as queued in the execution stack of the established execution environment in the CBR and according to the activity execution policy, including executing the one or more work items of the scheduled activity without process affinity, including; executing a particular work item of the scheduled activity on a first process; pausing execution of the particular work item; and subsequent to pausing execution of the particular work item, resuming execution of the particular work item on a second, different, process. - View Dependent Claims (19)
-
-
20. A computer system comprising the following:
-
one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for establishing an execution environment for executing activities in a continuation based runtime, the method comprising the following; an act of establishing an execution environment for executing activities in a continuation based runtime (CBR), wherein establishing the execution environment comprises instantiating an activity scheduler that is configured to perform the following; an act of scheduling an activity for execution in the CBR, wherein the scheduled activity is associated with one or more work items and unique context information corresponding to the work items, the scheduling including adding the one or more work items to an execution stack and tracking pending activity of the one or more work items to determine when the scheduled activity has reached at least one of a plurality of completed states; an act of resolving arguments and variables of the scheduled activity prior to invoking the scheduled activity using the scheduled activity'"'"'s unique context; an act of determining, based on the scheduled activity'"'"'s unique context, that the scheduled activity comprises at least one work item that is to be queued at the top of the execution stack; and based on the determination, an act of queuing the at least one work item to the top of the execution stack; and an act of executing the one or more work items of the scheduled activity as queued in the execution stack of the established execution environment in the CBR, including executing the one or more work items of the scheduled activity without process affinity, including; executing a particular work item of the scheduled activity on a first process; pausing execution of the particular work item; and subsequent to pausing execution of the particular work item, resuming execution of the particular work item on a second, different, process.
-
Specification