MLchartDataset catalogue

Patent · US10841236B1 · B1 · US

Distributed computer task management of interrelated network computing tasks

(11) Publication number
US10841236B1
(21) Application number
15/941,654
(22) Filing date
2018-03-30
(30) Priority date
2018-03-30
(43) Publication date
2020-11-17
(45) Date of grant
2020-11-17
(51) IPC
G06F 9/50; G06N 20/00; G06N 20/10; G06N 20/20; H04L 47/70
(52) CPC
  • H04L Transmission of digital information, e.g. telegraphic communication: 43/0876, 41/12, 41/145, 41/147, 41/149, 41/5019, 47/70, 47/83, 67/10, 67/1008, 67/1014, 67/1023
  • G06F Electric digital data processing: 2209/5019, 9/5005, 9/5072, 9/5077
  • G06N Computing arrangements based on specific computational models: 20/00, 20/10, 20/20
(73) Assignee
Electronic Arts Inc
(72) Inventors
Yu Jin; Sundeep Narravula; Navid Aghdaie; Kazi Atif-Uz Zaman; Preethi Ganeshan; Tushar Agarwal; Cong Feng; Drew John Zagieboylo
(54) Title
Distributed computer task management of interrelated network computing tasks
(57) Abstract

A system can manage distribution of computing jobs among a plurality of third-party network or cloud computing providers to maximize utilization of available computing resources purchased or otherwise obtained by an entity. The system can determine a dependency relationship between jobs and distribute the jobs among the network computing providers based at least in part on the dependency relationship between the jobs. Moreover, the system can use machine learning algorithms to generate one or more prediction algorithms to predict future computing resource usage demands for performing a set of scheduled and unscheduled jobs. Based at least in part on the resource prediction, the dependency relationship between jobs, service level agreements with network computing service providers, and job resource requirements, the system can determine an improved or optimal distribution of jobs among the network computing service providers that satisfies or best satisfies one or more objective functions to maximize resource utilization.

Full text
View on Google Patents

Claims (20)

  1. A computer-implemented method comprising: as implemented by an interactive computing system configured with specific computer-executable instructions, receiving a plurality of job requests, the job requests corresponding to a plurality of jobs to be performed at a plurality of computing clusters comprising one or more network computing systems, each computing cluster located at a different data center, wherein each of the one or more network computing systems provide computing resources that are capable of performing at least one of the plurality of jobs; generating a job dependency topology indicating a dependency relationship between two or more jobs of the plurality of jobs; determining a predicted computer resource usage to process the plurality of jobs by applying at least the job dependency topology and job metadata associated with the plurality of jobs as inputs to a prediction model, wherein the prediction model predicts computing resource usage to complete sets of jobs, wherein the prediction model is generated based at least in part on historical data relating to previously completed jobs, and wherein the prediction model comprises a set of weighted parameters that are combined to form the prediction model, the set of weighted parameters determined based on the historical data; determining a network resource allocation at the plurality of computing clusters based at least in part on the predicted computer resource usage; allocating network computing resources at the plurality of computing clusters based at least in part on the network resource allocation determined based at least in part on the predicted computer resource usage; and distributing the plurality of jobs to the plurality of computing clusters based at least in part on the job dependency topology and the allocated network computing resources, wherein at least one job is provided to a different computing cluster of the plurality of computing clusters than at least one other job of the plurality of jobs.
  2. The computer-implemented method of claim 1, wherein each of a plurality of data centers that host the plurality of computing clusters is associated with a different entity than the interactive computing system, and wherein at least one of the plurality of data centers is associated with a different entity than at least one other of the plurality of data centers.
  3. The computer-implemented method of claim 1, wherein the job dependency topology further indicates a dependency relationship between a first portion of a job of the plurality of jobs and a second portion of a job of the plurality of jobs.
  4. The computer-implemented method of claim 1, wherein the job dependency topology indicates that at least one job from the plurality of jobs is not dependent on another job from the plurality of jobs.
  5. The computer-implemented method of claim 1, wherein the job metadata comprises data relating to at least one of a job type, a job priority level, a job owner that requested the job, or a job due date.
  6. The computer-implemented method of claim 1, further comprising generating the prediction model based at least in part on a machine learning algorithm.
  7. The computer-implemented method of claim 1, wherein determining the network resource allocation comprises providing the predicted computer resource usage to an objective function that determines the network resource allocation based on an objective.
  8. The computer-implemented method of claim 7, wherein the objective comprises one or more of reducing processing time, reducing cost, increasing utilization of available computing resources, or satisfying a service level agreement.
  9. The computer-implemented method of claim 1, further comprising updating the job dependency topology based at least in part on the network resource allocation to identify network computing resources assigned to each job within the job dependency topology.
  10. The computer-implemented method of claim 1, wherein allocating the network computing resources at the plurality of computing clusters further comprises maintaining an unallocated portion of network computing resources available at the plurality of computing clusters to enable the processing of unscheduled jobs.
  11. A system comprising: an electronic data store system configured to store job dependency topologies; and a computing task management system comprising one or more hardware processors, the computing task management system configured to execute specific computer-executable instructions to at least: receive a plurality of job requests, the job requests corresponding to a plurality of jobs to be performed at a plurality of computing clusters comprising one or more network computing systems, each computing cluster located at a different data center, wherein each of the one or more network computing systems provide computing resources that are capable of performing at least one of the plurality of jobs; generate a job dependency topology indicating a dependency relationship between two or more jobs of the plurality of jobs; store the job dependency topology at the electronic data store; determine a predicted computing resource usage to process the plurality of jobs by applying at least the job dependency topology and job metadata associated with the plurality of jobs as input to a prediction model, wherein the prediction model predicts computing resource usage to complete sets of jobs, wherein the prediction model is generated based at least in part on historical data relating to previously completed jobs, and wherein the prediction model comprises a set of weighted parameters that are combined to form the prediction model, the set of weighted parameters determined based on the historical data; determine a computing resource allocation at the plurality of computing clusters based at least in part on the predicted computing resource usage; allocate computing resources at the plurality of computing clusters based at least in part on the computing resource allocation determined based at least in part on the predicted computing resource usage; and distribute the plurality of jobs to the plurality of computing clusters based at least in part on the job dependency topology and the allocated computing resources, wherein at least one job is provided to a different computing cluster of the plurality of computing clusters than at least one other job of the plurality of jobs.
  12. The system of claim 11, wherein the dependency relationship between the two or more jobs comprises a dependency between a portion of a first job of the plurality of jobs and a portion of a second job of the plurality of jobs.
  13. The system of claim 11, wherein the computing task management system is further configured to generate the prediction model based at least in part on a machine learning algorithm.
  14. The system of claim 11, wherein the computing task management system is further configured to execute specific computer-executable instructions to at least determine the computing resource allocation using an objective function configured to maximize computing resource utilization of available computing resources at the plurality of computing clusters.
  15. The system of claim 11, wherein the computing task management system is further configured to execute specific computer-executable instructions to at least allocate a subset of the computing resources at the plurality of computing clusters to process one or more unscheduled jobs received separately from the plurality of job requests, and wherein the plurality of job requests comprise scheduled jobs.
  16. A non-transitory computer-readable storage medium storing computer executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising: receiving a plurality of jobs to be performed at a plurality of computing clusters comprising one or more network computing systems, each computing cluster located at a different data center, wherein each of the one or more network computing systems provide computing resources that are capable of performing at least one of the plurality of jobs; generating a job dependency topology indicating a dependency relationship between two or more jobs of the plurality of jobs; determining a predicted computing resource usage to process the plurality of jobs by applying at least the job dependency topology and job metadata associated with the plurality of jobs as input to a prediction model, wherein the prediction model predicts computing resource usage to complete sets of jobs, wherein the prediction model is generated based at least in part on historical data relating to previously completed jobs, and wherein the prediction model comprises a set of weighted parameters that are combined to form the prediction model, the set of weighted parameters determined based on the historical data; determining a computing resource allocation at the plurality of computing clusters based at least in part on the predicted computing resource usage; allocating computing resources at the plurality of computing clusters based at least in part on the computing resource allocation determined based at least in part on the predicted computing resource usage; and distributing the plurality of jobs to the plurality of computing clusters based at least in part on the job dependency topology and the allocated computing resources, wherein at least one job is provided to a different computing cluster of the plurality of computing clusters than at least one other job of the plurality of jobs.
  17. The non-transitory computer-readable storage medium of claim 16, wherein the job dependency topology further indicates a dependency relationship between a first portion of a job of the plurality of jobs and a second portion of the job of the plurality of jobs.
  18. The non-transitory computer-readable storage medium of claim 16, further comprising generating the prediction model based at least in part on an application of historical computing task data to a machine learning algorithm.
  19. The non-transitory computer-readable storage medium of claim 16, wherein the operations further comprise redistributing at least some of the plurality of jobs based at least in part on receiving a set of unscheduled jobs.
  20. The non-transitory computer-readable storage medium of claim 16, wherein the operations further comprise redistributing at least some of the plurality of jobs based at least in part on a change in availability of computing resources of at least one of the plurality of computing clusters.

Description

Computers are ubiquitous and provide many different services. For example, computers are using to play video games, stream movies, perform complex calculations, backup pictures, store data, provide query requests, and many other functions. In many cases, tasks or jobs performed by computers are interrelated. Thus, the output of one task serves as an input for performing another task.

Many of the computer-related tasks or services performed by or provided by an enterprise are performed or provided by computers at a data center of the enterprise. For example, a business may have a set of server computers that provide news content to subscribers, video game access to users, or information regarding customer behavior. Maintaining and managing the set of server computers can be expensive and challenging. Each time new versions of software are released or server computers need to be upgraded or replaced, resources (such as human resources, time, and money) are expended by the business. It is not always feasible for the business to be competitive while maintaining the server computers.

Some of the above problems are solved by using network computing services provided by a third-party. These network computing services are sometimes referred to as “cloud computing” services. Some cloud computing services include Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. By using a network computing service, a business or other entity can access computing resources or provide computer related services while maintaining fewer or no computing systems.

Citations (27)

  • US7257635B2
  • US20030120709A1
  • US6847970B2
  • US7174540B2
  • US8782098B2
  • US7933794B2
  • US8122446B2
  • US20080016115A1
  • US8175863B1
  • US8893156B2
  • US8464208B2
  • US8423646B2
  • US9967318B2
  • US20130232497A1
  • US10333820B1
  • US9557879B1
  • US9851989B2
  • US20140366037A1
  • US20160253613A1
  • US9397896B2
  • US9521043B2
  • US10333791B2
  • US10291493B1
  • US10187260B1
  • US10200252B1
  • US20190213561A1
  • US10230601B1
Record as JSON
{
  "publication_number": "US10841236B1",
  "country": "US",
  "kind": "B1",
  "title": "Distributed computer task management of interrelated network computing tasks",
  "abstract": "A system can manage distribution of computing jobs among a plurality of third-party network or cloud computing providers to maximize utilization of available computing resources purchased or otherwise obtained by an entity. The system can determine a dependency relationship between jobs and distribute the jobs among the network computing providers based at least in part on the dependency relationship between the jobs. Moreover, the system can use machine learning algorithms to generate one or more prediction algorithms to predict future computing resource usage demands for performing a set of scheduled and unscheduled jobs. Based at least in part on the resource prediction, the dependency relationship between jobs, service level agreements with network computing service providers, and job resource requirements, the system can determine an improved or optimal distribution of jobs among the network computing service providers that satisfies or best satisfies one or more objective functions to maximize resource utilization.",
  "claims": [
    "1. A computer-implemented method comprising: as implemented by an interactive computing system configured with specific computer-executable instructions, receiving a plurality of job requests, the job requests corresponding to a plurality of jobs to be performed at a plurality of computing clusters comprising one or more network computing systems, each computing cluster located at a different data center, wherein each of the one or more network computing systems provide computing resources that are capable of performing at least one of the plurality of jobs; generating a job dependency topology indicating a dependency relationship between two or more jobs of the plurality of jobs; determining a predicted computer resource usage to process the plurality of jobs by applying at least the job dependency topology and job metadata associated with the plurality of jobs as inputs to a prediction model, wherein the prediction model predicts computing resource usage to complete sets of jobs, wherein the prediction model is generated based at least in part on historical data relating to previously completed jobs, and wherein the prediction model comprises a set of weighted parameters that are combined to form the prediction model, the set of weighted parameters determined based on the historical data; determining a network resource allocation at the plurality of computing clusters based at least in part on the predicted computer resource usage; allocating network computing resources at the plurality of computing clusters based at least in part on the network resource allocation determined based at least in part on the predicted computer resource usage; and distributing the plurality of jobs to the plurality of computing clusters based at least in part on the job dependency topology and the allocated network computing resources, wherein at least one job is provided to a different computing cluster of the plurality of computing clusters than at least one other job of the plurality of jobs.",
    "2. The computer-implemented method of claim 1, wherein each of a plurality of data centers that host the plurality of computing clusters is associated with a different entity than the interactive computing system, and wherein at least one of the plurality of data centers is associated with a different entity than at least one other of the plurality of data centers.",
    "3. The computer-implemented method of claim 1, wherein the job dependency topology further indicates a dependency relationship between a first portion of a job of the plurality of jobs and a second portion of a job of the plurality of jobs.",
    "4. The computer-implemented method of claim 1, wherein the job dependency topology indicates that at least one job from the plurality of jobs is not dependent on another job from the plurality of jobs.",
    "5. The computer-implemented method of claim 1, wherein the job metadata comprises data relating to at least one of a job type, a job priority level, a job owner that requested the job, or a job due date.",
    "6. The computer-implemented method of claim 1, further comprising generating the prediction model based at least in part on a machine learning algorithm.",
    "7. The computer-implemented method of claim 1, wherein determining the network resource allocation comprises providing the predicted computer resource usage to an objective function that determines the network resource allocation based on an objective.",
    "8. The computer-implemented method of claim 7, wherein the objective comprises one or more of reducing processing time, reducing cost, increasing utilization of available computing resources, or satisfying a service level agreement.",
    "9. The computer-implemented method of claim 1, further comprising updating the job dependency topology based at least in part on the network resource allocation to identify network computing resources assigned to each job within the job dependency topology.",
    "10. The computer-implemented method of claim 1, wherein allocating the network computing resources at the plurality of computing clusters further comprises maintaining an unallocated portion of network computing resources available at the plurality of computing clusters to enable the processing of unscheduled jobs.",
    "11. A system comprising: an electronic data store system configured to store job dependency topologies; and a computing task management system comprising one or more hardware processors, the computing task management system configured to execute specific computer-executable instructions to at least: receive a plurality of job requests, the job requests corresponding to a plurality of jobs to be performed at a plurality of computing clusters comprising one or more network computing systems, each computing cluster located at a different data center, wherein each of the one or more network computing systems provide computing resources that are capable of performing at least one of the plurality of jobs; generate a job dependency topology indicating a dependency relationship between two or more jobs of the plurality of jobs; store the job dependency topology at the electronic data store; determine a predicted computing resource usage to process the plurality of jobs by applying at least the job dependency topology and job metadata associated with the plurality of jobs as input to a prediction model, wherein the prediction model predicts computing resource usage to complete sets of jobs, wherein the prediction model is generated based at least in part on historical data relating to previously completed jobs, and wherein the prediction model comprises a set of weighted parameters that are combined to form the prediction model, the set of weighted parameters determined based on the historical data; determine a computing resource allocation at the plurality of computing clusters based at least in part on the predicted computing resource usage; allocate computing resources at the plurality of computing clusters based at least in part on the computing resource allocation determined based at least in part on the predicted computing resource usage; and distribute the plurality of jobs to the plurality of computing clusters based at least in part on the job dependency topology and the allocated computing resources, wherein at least one job is provided to a different computing cluster of the plurality of computing clusters than at least one other job of the plurality of jobs.",
    "12. The system of claim 11, wherein the dependency relationship between the two or more jobs comprises a dependency between a portion of a first job of the plurality of jobs and a portion of a second job of the plurality of jobs.",
    "13. The system of claim 11, wherein the computing task management system is further configured to generate the prediction model based at least in part on a machine learning algorithm.",
    "14. The system of claim 11, wherein the computing task management system is further configured to execute specific computer-executable instructions to at least determine the computing resource allocation using an objective function configured to maximize computing resource utilization of available computing resources at the plurality of computing clusters.",
    "15. The system of claim 11, wherein the computing task management system is further configured to execute specific computer-executable instructions to at least allocate a subset of the computing resources at the plurality of computing clusters to process one or more unscheduled jobs received separately from the plurality of job requests, and wherein the plurality of job requests comprise scheduled jobs.",
    "16. A non-transitory computer-readable storage medium storing computer executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising: receiving a plurality of jobs to be performed at a plurality of computing clusters comprising one or more network computing systems, each computing cluster located at a different data center, wherein each of the one or more network computing systems provide computing resources that are capable of performing at least one of the plurality of jobs; generating a job dependency topology indicating a dependency relationship between two or more jobs of the plurality of jobs; determining a predicted computing resource usage to process the plurality of jobs by applying at least the job dependency topology and job metadata associated with the plurality of jobs as input to a prediction model, wherein the prediction model predicts computing resource usage to complete sets of jobs, wherein the prediction model is generated based at least in part on historical data relating to previously completed jobs, and wherein the prediction model comprises a set of weighted parameters that are combined to form the prediction model, the set of weighted parameters determined based on the historical data; determining a computing resource allocation at the plurality of computing clusters based at least in part on the predicted computing resource usage; allocating computing resources at the plurality of computing clusters based at least in part on the computing resource allocation determined based at least in part on the predicted computing resource usage; and distributing the plurality of jobs to the plurality of computing clusters based at least in part on the job dependency topology and the allocated computing resources, wherein at least one job is provided to a different computing cluster of the plurality of computing clusters than at least one other job of the plurality of jobs.",
    "17. The non-transitory computer-readable storage medium of claim 16, wherein the job dependency topology further indicates a dependency relationship between a first portion of a job of the plurality of jobs and a second portion of the job of the plurality of jobs.",
    "18. The non-transitory computer-readable storage medium of claim 16, further comprising generating the prediction model based at least in part on an application of historical computing task data to a machine learning algorithm.",
    "19. The non-transitory computer-readable storage medium of claim 16, wherein the operations further comprise redistributing at least some of the plurality of jobs based at least in part on receiving a set of unscheduled jobs.",
    "20. The non-transitory computer-readable storage medium of claim 16, wherein the operations further comprise redistributing at least some of the plurality of jobs based at least in part on a change in availability of computing resources of at least one of the plurality of computing clusters."
  ],
  "description_excerpt": "Computers are ubiquitous and provide many different services. For example, computers are using to play video games, stream movies, perform complex calculations, backup pictures, store data, provide query requests, and many other functions. In many cases, tasks or jobs performed by computers are interrelated. Thus, the output of one task serves as an input for performing another task.\n\nMany of the computer-related tasks or services performed by or provided by an enterprise are performed or provided by computers at a data center of the enterprise. For example, a business may have a set of server computers that provide news content to subscribers, video game access to users, or information regarding customer behavior. Maintaining and managing the set of server computers can be expensive and challenging. Each time new versions of software are released or server computers need to be upgraded or replaced, resources (such as human resources, time, and money) are expended by the business. It is not always feasible for the business to be competitive while maintaining the server computers.\n\nSome of the above problems are solved by using network computing services provided by a third-party. These network computing services are sometimes referred to as “cloud computing” services. Some cloud computing services include Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. By using a network computing service, a business or other entity can access computing resources or provide computer related services while maintaining fewer or no computing systems.",
  "cpc": [
    "H04L 43/0876",
    "G06F 2209/5019",
    "G06F 9/5005",
    "G06F 9/5072",
    "G06F 9/5077",
    "G06N 20/00",
    "G06N 20/10",
    "G06N 20/20",
    "H04L 41/12",
    "H04L 41/145",
    "H04L 41/147",
    "H04L 41/149",
    "H04L 41/5019",
    "H04L 47/70",
    "H04L 47/83",
    "H04L 67/10",
    "H04L 67/1008",
    "H04L 67/1014",
    "H04L 67/1023"
  ],
  "ipc": [
    "G06F 9/50",
    "G06N 20/00",
    "G06N 20/10",
    "G06N 20/20",
    "H04L 47/70"
  ],
  "assignees": [
    "Electronic Arts Inc"
  ],
  "inventors": [
    "Yu Jin",
    "Sundeep Narravula",
    "Navid Aghdaie",
    "Kazi Atif-Uz Zaman",
    "Preethi Ganeshan",
    "Tushar Agarwal",
    "Cong Feng",
    "Drew John Zagieboylo"
  ],
  "filing_date": "2018-03-30",
  "publication_date": "2020-11-17",
  "grant_date": "2020-11-17",
  "priority_date": "2018-03-30",
  "application_number": "US-201815941654-A",
  "family_id": "73263941",
  "cited_by_count": 108,
  "citations": [
    "US7257635B2",
    "US20030120709A1",
    "US6847970B2",
    "US7174540B2",
    "US8782098B2",
    "US7933794B2",
    "US8122446B2",
    "US20080016115A1",
    "US8175863B1",
    "US8893156B2",
    "US8464208B2",
    "US8423646B2",
    "US9967318B2",
    "US20130232497A1",
    "US10333820B1",
    "US9557879B1",
    "US9851989B2",
    "US20140366037A1",
    "US20160253613A1",
    "US9397896B2",
    "US9521043B2",
    "US10333791B2",
    "US10291493B1",
    "US10187260B1",
    "US10200252B1",
    "US20190213561A1",
    "US10230601B1"
  ]
}

Record 1,890 of 8,000 in Patents full text (MLC-0201). Request the full dataset.