IP Library › Granted Patent US 11,397,611
Granted Patent B2
US 11,397,611 · App. 16/597,802 · Granted Jul 26, 2022

Predictive scheduling of computing tasks

Inventors: Hendrik Kleine (Dublin, IE); Vicente Rubén Del Pino Ruiz (Dublin, IE)
Assignee: OPTUM SERVICES (IRELAND) LIMITED
G06F9/4881G06N3/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,397,611
App. No.
16/597,802
Filed
Oct 9, 2019
Granted
Jul 26, 2022
Kind
B2
Art Unit
2196
USPC
718/102
Abstract

For each computing task of a plurality of computing tasks, a computing system is configured to apply a machine learning process that determines an expected usage time for output data associated with the computing task. Execution of the computing task generates the output data associated with the computing task. The expected usage time for the output data associated with the computing task is a time at which a user associated with the computing task can be expected to access the output data associated with the computing task. The computing system is configured to schedule execution of one or more of the computing tasks such that expected times of completion of the one or more computing tasks are prior to the expected usage times for the one or more computing tasks.

Claims (79)

1. A method of scheduling a plurality of computing tasks for performance by a computing system, the method comprising:

obtaining, by the computing system, task metadata for the plurality of computing tasks, wherein, for each of the plurality of computing tasks, the task metadata for the computing task indicates a user associated with the computing task and one or more computer programs to execute the computing task;

for each computing task of the plurality of computing tasks:

obtaining, by the computing system, user usage data for the computing task, wherein the user usage data for the computing task includes data indicating one or more times at which the user associated with the computing task accesses the output data associated with the computing task;

applying, by the computing system, a machine learning process that determines an expected usage time for output data associated with the computing task based on the user usage data and the task metadata for the computing task, wherein execution of the computing task generates the output data associated with the computing task, wherein the expected usage time for the output data associated with the computing task is a time at which the user associated with the computing task can be expected to access the output data associated with the computing task;

determining, by the computing system, a start time for the computing task that is prior to the expected usage time for the computing task by at least an expected running time of the computing task; and

determining, by the computing system, a score for the computing task based on a position of the user in an organization;

generating a list of the plurality of computing tasks basing on the scores of the plurality of computing tasks; and

scheduling execution of one or more of the plurality of computing tasks based at least in part on an order of the one or more of the plurality of computing tasks in the list and the start times of the one or more of the plurality of computing tasks.

2. The method of claim 1 , wherein:

the method further comprises, for each computing task of the plurality of computing tasks:

obtaining, by the computing system, the user usage data for the computing task; and

determining, by the computing system, based on the user usage data for the computing task, whether or not to schedule the execution of the computing task.

3. The method of claim 1 , wherein:

the plurality of computing tasks includes a specific computing task,

the method further comprises:

receiving, by the computing system, an information request that requests output data associated with the specific computing task;

in response to the information request:

storing, by the computing system, user usage data that indicates a time associated with the information request; and

delivering, by the computing system, up-to-date output data associated with the specific computing task, and

applying the machine learning process comprises applying the machine learning process to determine, based on the user usage data that indicates the time associated with the information request, an expected usage time for the specific computing task.

4. The method of claim 3 , wherein the method further comprises:

for each computing task of the plurality of computing tasks, storing, by the computing system, the output data associated with the computing task in an output data repository;

in response to the information request, determining, by the computing system, whether the output data repository stores up-to-date output data associated with the specific computing task; and

delivering, by the computing system, the up-to-date output data associated with the specific computing task to a user device in response to determining that the output data repository stores the up-to-date output data associated with the specific computing task.

5. The method of claim 3 , wherein the method further comprises:

for each computing task of the plurality of computing tasks, storing, by the computing system, the output data associated with the computing task in an output data repository;

in response to the information request, determining, by the computing system, whether the output data repository stores up-to-date output data associated with the specific computing task; and

based on a determination that the output data repository does not store the up-to-date output data associated with the specific computing task, initiating, by the computing system, execution of the specific computing task to generate the up-to-date output data associated with the specific computing task.

6. The method of claim 1 , wherein the plurality of computing tasks includes a specific computing task and applying the machine learning process comprises applying, by the computing system, an artificial neural network that outputs the expected usage time for the output data associated with the specific computing task.

7. The method of claim 6 , wherein input to the machine learning process includes one or more of: data indicating the specific computing task of the plurality of computing tasks, data indicating a job title of the user, data indicating a workplace location of the user, data indicating a current time zone or location of the user, data indicating a number of users associated with the specific computing task, data indicating a volume of data generated by the specific computing task, or data indicating a number of people subordinate to the user.

8. The method of claim 1 , further comprising:

detecting, by the computing system, an upcoming surge in demand for concurrent processing of the computing tasks; and

scheduling, by the computing system, the execution of the one or more of the plurality of computing tasks during one or more idle periods of the computing system, wherein for each respective computing tasks of the one or more of the plurality of computing tasks, the schedule idle period precedes the expected usage time of the respective computing tasks and the detecting upcoming surge in demand by at least the start time of the respective computing task.

9. A computing system comprising:

one or more processing circuits configured to:

obtain task metadata for a plurality of computing tasks, wherein, for each of the plurality of computing tasks, the task metadata for the computing task indicates a user associated with the computing task and one or more computer programs to execute the computing task;

for each computing task of the plurality of computing tasks:

obtain user usage data for the computing task, wherein the user usage data for the computing task includes data indicating one or more times at which the user associated with the computing task accesses the output data associated with the computing task;

apply a machine learning process that determines an expected usage time for output data associated with the computing task based on the user usage data and the task metadata for the computing task, wherein execution of the computing task generates the output data associated with the computing task, wherein the expected usage time for the output data associated with the computing task is a time at which the user associated with the computing task can be expected to access the output data associated with the computing task;

determine a start time for the computing task that is prior to the expected usage time for the computing task by at least an expected running time of the computing task; and

determine a score for the computing task based on a position of the user in an organization;

generate a list of the plurality of computing tasks based on the scores of the plurality of computing tasks; and

schedule execution of one or more of the plurality of computing tasks based at least in part on an order of the one or more of the plurality of computing tasks in the list and the start times of the one or more of the plurality of computing tasks; and

one or more storage devices configured to store an output data repository that includes output data associated with the one or more computing tasks.

10. The computing system of claim 9 , wherein:

the one or more processing circuits are further configured to, for each of the computing tasks:

obtain the user usage data for the computing task;

determine, based on the user usage data, whether or not to schedule the execution of the computing task;

schedule the execution of the computing task based on a determination to schedule the execution of the computing task; and

not schedule the execution of the computing task based on a determination not to schedule execution of the computing task.

11. The computing system of claim 9 , wherein:

the plurality of computing tasks includes a specific computing task,

the one or more processing circuits are further configured to:

receive an information request that requests output data associated with the specific computing task;

in response to the information request:

store user usage data that indicates a time associated with the information request; and

deliver up-to-date output data associated with the specific computing task, and

the machine learning process determines, based on the user usage data that indicates the time associated with the information request, an expected usage time for the specific computing task.

12. The computing system of claim 11 , wherein:

the one or more storage devices are further configured to store output data associated with the specific computing task in the output data repository, and

the one or more processing circuits are further configured to:

in response to the information request, determine whether the output data repository stores up-to-date output data associated with the specific computing task;

deliver the up-to-date output data associated with the specific computing task to a user device in response to determining that the output data repository stores the up-to-date output data associated with the specific computing task; and

based on a determination that the output data repository does not store the up-to-date output data associated with the specific computing task, initiate execution of the specific computing task to generate the up-to-date output data associated with the specific computing task.

13. The computing system of claim 9 , wherein the plurality of computing tasks includes a specific computing task and the one or more processing circuits are configured such that, as part of applying the machine learning process to determine the expected usage times for the output data associated with the computing tasks, the one or more processing circuits apply an artificial neural network that outputs an expected usage time for output data associated with the specific computing task.

14. The computing system of claim 9 , wherein input to the machine learning process includes one or more of: data indicating a specific computing task of the plurality of computing tasks, data indicating a job title of the user, data indicating a workplace location of the user, data indicating a current time zone or location of the user, data indicating a number of users associated with the computing task, data indicating a volume of data generated by the specific computing task, or data indicating a number of people subordinate to the user.

15. The system of claim 9 , wherein the one or more processing circuits is further configured to:

detect an upcoming surge in demand for concurrent processing of the computing tasks; and

schedule the execution of the one or more of the plurality of computing tasks during one or more idle periods of the computing system, wherein for each respective computing task of the one or more of the plurality of computing tasks, the scheduled idle period precedes the expected usage time of the respective computing task and the detected upcoming surge in demand by at least the start time of the respective computing task.

16. A non-transitory computer-readable data storage medium having instructions stored thereon that, when executed cause a computing system to:

obtain task metadata for a plurality of computing tasks, wherein for each of the plurality of computing tasks, the task metadata for the computing task indicates a user associated with the computing task and one or more computer programs to execute the computing task;

for each computing task of the plurality of computing tasks:

obtain user usage data for the computing task, wherein the user usage data for the computing task includes data indicating one or more times at which the user associated with the computing task accesses the output data associated with the computing task;

apply a machine learning process that determines an expected usage time for output data associated with the computing task based on the user usage data and the task metadata for the computing task, wherein execution of the computing task generates the output data associated with the computing task, wherein the expected usage time for the output data associated with the computing task is a time at which the user associated with the computing task can be expected to access the output data associated with the computing task;

determine a start time for the computing task that is prior to the expected usage time for the computing task by at least an expected running time of the computing task; and

determine a score for the computing task based on a position of the user in an organization;

generate a list of the plurality of computing tasks based on the scores of the plurality of computing tasks; and

schedule execution of one or more of the plurality of computing tasks based at least in part on an order of the one or more of the plurality of computing tasks in the list and the start times of the one or more of the plurality of computing tasks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2019
From: KLEINE, HENDRIK; DEL PINO RUIZ, VICENTE RUBÉN
To: OPTUM SERVICES (IRELAND) LIMITED
Reel/Frame 050672/0060 →
Continuity (1)
Related Publication 20210109779A1 · Apr 15, 2021