Work load assessment heuristic for optimal task parallelism determination
AssigneeInternational Business Machines Corporation
InventorsLyn Leguam Ashton, Cuong Minh Le, Jerry Wayne Pence, James Mitchell Ratliff, Glenn Randle Wilcock
Life of this patent
Estimating the term…
Abstract
A technique for determining an optimal number of tasks for processing requests is provided. It is determined whether there are one or more first requests that have not been processed. A parallelism assessment is performed for simulating the assignment of said first requests to one or more task representations.
Claims53
A method for determining an optimal number of tasks for processing requests, comprising the operations of:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, wherein the task representations include at least one of a projected task representation and an actual executing task representation that each have a corresponding work value, wherein a selected request is pseudo assigned to a selected task representation, and when the selected task representation is a projected task representation, determining whether to transform the projected task representation into an actual executing task based on whether the work value corresponding to the projected task representation is equal to or greater than a work threshold after the selected request is pseudo-assigned to the projected task representation.
A method for determining an optimal number of tasks for processing requests, comprising the operations of:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, where said parallelism assessment comprises the operations of:
- determining a first number representing the quantity of actual executing tasks that are processing requests;
- defining an existing task representation for each actual executing task, where each said existing task representation has a corresponding work value;
- defining a projected task representation having a corresponding work value if:
- a second number representing the quantity of existing task representations and projected task representations is not equal to a predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- said work values corresponding to said existing task representations and said projected task representations are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representations, where said selected task representation has a corresponding work value that is a minimum of all said work values corresponding to said existing task representations and said projected task representations, and said selected request has not been pseudo-assigned if:
- said number of said existing task representations is less than said predetermined limit;
- all said first requests have not been pseudo-assigned;
- and
- said work value corresponding to at least one of said existing task representations and said projected task representations is less than said work threshold;
- and
- starting said selected task representation if said selected task representation is a projected task representation and said work value corresponding to said selected task representation is equal to or greater than said work threshold after said selected request is pseudo-assigned to said selected task representation.
A method for determining an optimal number of tasks for processing requests, comprising the operations of:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, where said parallelism assessment comprises the operations of:
- determining a first number representing the quantity of actual executing tasks that are processing requests,
- defining an existing task representation for each actual executing task, where each said existing task representation has a corresponding work value;
- defining a projected task representation having a corresponding work value if:
- a second number representing the quantity of existing task representations and projected task representations is not equal, to a predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- said work values corresponding to said existing task representations and said projected task representations are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representations, where said selected task representation has a corresponding work value that is a minimum of all said work values corresponding to said existing task representations and said projected task representations, and said selected request has not been pseudo-assigned if:
- said number of said existing task representations is less than said predetermined limit;
- all said first requests have not been pseudo-assigned;
- and
- said work value corresponding to at least one of said existing task representations and said projected task representations is less than said work threshold;
- and
- indicating that said selected task representation is transformable into an actual task if said selected task representation is a projected task representation and said work value corresponding to said selected task representation is equal to or greater than said work threshold after said selected request is pseudo-assigned to said selected task representation.
A method for determining an optimal number of tasks for processing requests, comprising the operations of:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations if there are fewer than a predetermined limit of actual executing tasks that are processing one or more second requests, wherein the task representations include at least one of a projected task representation and an actual executing task representation that each have a corresponding work value, wherein a selected request is pseudo assigned to a selected task representation, and when the selected task representation is a projected task representation, indicating that the projected task representation is transformable into an actual executing task if a work value corresponding to the projected task representation is equal to or greater than a work threshold after the selected request is pseudo-assigned to the projected task representation.
A method for determining an optimal number of tasks for processing requests, comprising the operations of:
- determining if there are one or more first requests that have not been processed, and performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations if there are fewer than a predetermined limit of actual executing tasks that are processing one or more second requests, where said parallelism assessment comprises the operations of:
- determining a first number representing the quantity of actual executing tasks that are processing said second requests;
- defining an existing task representation for each said actual executing task, where each said existing task representation has a corresponding first work value;
- defining a projected task representation having a corresponding second work value if:
- a second number representing the sum of said first number and number of projected task representations is less than or equal to said predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- each of said first work values are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representation, where said selected task representation has a corresponding minimum work value that is a minimum of said first and second work values, if said selected request has not been pseudo-assigned and said minimum work value is less than said work threshold.
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for determining an optimal number of tasks for processing requests, the operations comprising:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, wherein the task representations include at least one of a projected task representation and an actual executing task representation that each have a corresponding work value, wherein a selected request is pseudo assigned to a selected task representation, and when the selected task representation is a projected task representation, determining whether to transform the projected task representation into an actual executing task based on whether the work value corresponding to the projected task representation is equal to or greater than a work threshold after the selected request is pseudo-assigned to the projected task representation.
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for determining an optimal number of tasks for processing requests, the operations comprising:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, where said parallelism assessment comprises the operations of:
- determining a first number representing the quantity of actual executing tasks that are processing requests;
- defining an existing task representation for each actual executing task, where each said existing task representation has a corresponding work value;
- defining a projected task representation having a corresponding work value if:
- a second number representing the quantity of existing task representations and projected task representations is not equal to a predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- said work values corresponding to said existing task representations and said projected task representations are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representations, where said selected task representation has a corresponding work value that is a minimum of all said work values corresponding to said existing task representations and said projected task representations, and said selected request has not been pseudo-assigned if:
- said number of said existing task representations is less than said predetermined limit;
- all said first requests have not been pseudo-assigned;
- and
- said work value corresponding to at least on of said existing task representations and said projected task representations is less than said work threshold;
- and
- starting said selected task representation if said selected task representation is a projected task representation and said work value corresponding to said selected task representation is equal to or greater than said work threshold after said selected request is pseudo-assigned to said selected task representation.
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for determining an optimal number of tasks for processing requests, the operations comprising:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, where said parallelism assessment comprises the operations of:
- determining the first number presenting the quantity of actual executing tasks that are precessing requests;
- defining an existing task representation for each actual executing task, where each said existing task representation has a corresponding work value;
- defining a projected task representation having a corresponding work value if:
- a second number representing the quantity of existing task representations and projected task representations is not equal to a predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- said work values corresponding to said existing task representations and said projected task representations are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representations, where said selected task representation has a corresponding work value that is a minimum of all said work values corresponding to said existing task representations and said projected task representations, and said selected request has not been pseudo-assigned if:
- said number of said existing task representations is less than said predetermined limit;
- all said first requests have not been pseudo-assigned;
- and
- said work value corresponding to at least one of said existing task representations and said projected task representations is less than said work threshold;
- and
- indicating that said selected task representation is transformable into an actual task if said selected task representation is a projected task representation and said work value corresponding to said selected task representation is equal to or greater than said work threshold after said selected request is pseudo-assigned to said selected task representation.
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for determining an optimal number of task for processing request, the operations comprising:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations if there are fewer than a predetermined limit of actual executing tasks that are processing one or more second requests, wherein the task representations include at least one of a projected task representation and an actual executing task representation that each have a corresponding work value, wherein a selected request is pseudo assigned to a selected task representation, and when the selected task representation is a projected task representation, indicating that the projected task representation is transformable into an actual executing task if a work value corresponding to the projected task representation is equal to or greater than a work threshold after the selected request is pseudo-assigned to the projected task representation.
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations for determining an optimal number of task for processing request, the operations comprising:
- determining if there are one or more first requests that have not been processed;
- and
- performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations if there are fewer than a predetermined limit of actual executing tasks that are processing one or more second requests, where said parallelism assessment comprises the operations of:
- determining a first number representing the quantity of actual executing tasks that are processing said second requests;
- defining an existing task representation for each said actual executing task, where each said existing task representation has a corresponding first work value;
- defining a projected task representation having a corresponding second work value if:
- a second number representing the sum of said first number and number of projected task representations is less than or equal to said predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- each of said first work values are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representation, where said selected task representation has a corresponding minimum work value that is a minimum of said first and second work values, if said selected request has not been pseudo-assigned and said minimum work value is less than said work threshold.
A system for determining an optimal number of tasks for processing requests, comprising:
- means for determining if there are one or more first requests that have not been processed;
- and
- means for performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, wherein the task representations include at least one of a projected task representation and an actual executing task representation that each have a corresponding work value, wherein a selected request is pseudo assigned to a selected task representation, and when the selected task representation is a projected task representation, determining whether to transform the projected task representation into an actual executing task based on whether the work value corresponding to the projected task representation is equal to or greater than a work threshold after the selected request is pseudo-assigned to the projected task representation.
A system for determining an optimal number of tasks for processing requests, comprising:
- means for determining if there are one or more first requests that have not been processed;
- and
- means for performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, where said parallelism assessment further comprises means for:
- determining a first number representing the quantity of actual executing tasks that are processing requests;
- defining an existing task representation for each actual executing task, where each said existing task representation has a corresponding work value;
- defining a projected task representation having a corresponding work value if:
- a second number representing the quantity of existing task representations and projected task representations is not equal to a predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- said work values corresponding to said existing task representations and said projected task representations are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representations, where said selected task representation has a corresponding work value that is a minimum of all said work values corresponding to said existing task representations and said projected task representations, and said selected request has not been pseudo-assigned if:
- said number of said existing task representations is less than said predetermined limit;
- all said first requests have not been pseudo-assigned;
- and
- said work value corresponding to at least one of said existing task representations and said projected task representations is less than said work threshold;
- and
- starting said selected task representation if said selected task representation is a projected task representation and said work value corresponding to said selected task representation is equal to or greater than said work threshold after said selected request is pseudo-assigned to said selected task representation.
A system for determining an optimal number of tasks for processing requests, comprising:
- means for determining if there are one or more first requests that have not been processed;
- and
- means for performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations, where said parallelism assessment further comprises means for:
- determining a first number representing the quantity of actual executing tasks that are processing requests,
- defining an existing task representation for each actual executing task, where each said existing task representation has a corresponding work value;
- defining a projected task representation having a corresponding work value if:
- a second number representing the quantity of existing task representations and projected task representations is not equal to a predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- said work values corresponding to said existing task representations and said projected task representations are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representations, where said selected task representation has a corresponding work value that is a minimum of all said work values corresponding to said existing task representations and said projected task representations, and said selected request has not been pseudo-assigned if:
- said number of said existing task representations is less than said predetermined limit;
- all said first requests have not been pseudo-assigned;
- and
- said work value corresponding to at least one of said existing task representations and said projected task representations is less than said work threshold;
- and
- indicating that said selected task representation is transformable into an actual task if said selected task representation is a projected task representation and said work value corresponding to said selected task representation is equal to or greater than said work threshold after said selected request is pseudo-assigned to said selected task representation.
A system for determining an optimal number of tasks for processing requests, comprising:
- means for determining if there are one or more first requests that have not been processed;
- and
- means for performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations if there are fewer than a predetermined limit of actual executing tasks that are processing one or more second requests, wherein the task representations include at least one of a projected task representation and an actual executing task representation that each have a corresponding work value, wherein a selected request is pseudo assigned to a selected task representation, and when the selected task representation is a projected task representation, indicating that the projected task representation is transformable into an actual executing task if a work value corresponding to the projected task representation is equal to or greater than a work threshold after the selected request is pseudo-assigned to the projected task representation.
A system for determining an optimal number of tasks for processing requests, comprising:
- means for determining if there are one or more first requests that have not been processed;
- and
- means for performing a parallelism assessment for simulating the assignment of said first requests to one or more task representations if there are fewer than a predetermined limit of actual executing tasks that are processing one or more second requests, where said parallelism assessment further comprises means for:
- determining a first number representing the quantity of actual executing tasks that are processing said second requests;
- defining an existing task representation for each said actual executing task, where each said existing task representation has a corresponding first work value;
- defining a projected task representation having a corresponding second work value if:
- second number representing the sum of said first number and number of projected task representations is less than or equal to said predetermined limit;
- all of said first requests are not pseudo-assigned;
- and
- each of said first work values are equal to or greater than a work threshold;
- pseudo-assigning a selected request, selected from all of said first requests, to a selected task representation that is selected from a group that includes said existing task representations and said projected task representation, where said selected task representation has a corresponding minimum work value that is a minimum of said first and second work values, if said selected request has not been pseudo-assigned and said minimum work value is less than said work threshold.
Dependencies are inferred from the claim text.