Resource allocation optimization for cloud-based video processing
First Claim
1. A method executed by an electronic device implementing a video streaming platform, the method to optimize resource utilization while processing media workflows by the video streaming platform, the method comprising:
- receiving a request to initiate a set of training sessions, the request including a set of parameters describing characteristics of each training session in the set of training sessions;
for each training session in the set of training sessions, initiating a set of training workflows to be processed by the video streaming platform;
creating a task graph for each training workflow in the set of training workflows, the task graph being a directed acyclic graph of tasks with each node of the task graph representing a media processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task;
assigning a worker from a set of workers of the video streaming platform to each training session;
collecting raw performance data from each assigned worker after each set of training workflows is processed;
generating a platform performance profile of the video streaming platform based on the raw performance data from the each assigned worker, wherein the platform performance profile is used to predict resource requirements of media workflows to be processed by the video streaming platform;
receiving a request to create a media workflow for a video source;
predicting a set of resource requirements necessary to process the media workflow based on the platform performance profile and characteristics of the video source, wherein the predicting of the set of resource requirements includes creating a task graph for the media workflow, and predicting the set of resource requirements for each task of the task graph based on the platform performance profile and the characteristics of the video source; and
selecting one or more workers based on the set of predicted resource requirements and current resource availability of workers in the video streaming platform.
3 Assignments
0 Petitions
Accused Products
Abstract
A method executed by an electronic device to optimize resource utilization while processing media workflows by a video streaming platform is disclosed. In one embodiment, a request to initiate a set of training sessions is received, and for each training session, a set of training workflows to be processed is initiated and a task graph for each training workflow is created. Then a worker of the video streaming platform is assigned to each training session. The raw performance data from each assigned worker is then collected, and a platform performance profile is generated based on the raw performance data from the each assigned worker. The platform performance profile is used to predict resource requirements of media workflows to be processed by the video streaming platform. A system to perform the method and a storage medium storing instructions to perform the method are disclosed too.
-
Citations
15 Claims
-
1. A method executed by an electronic device implementing a video streaming platform, the method to optimize resource utilization while processing media workflows by the video streaming platform, the method comprising:
-
receiving a request to initiate a set of training sessions, the request including a set of parameters describing characteristics of each training session in the set of training sessions; for each training session in the set of training sessions, initiating a set of training workflows to be processed by the video streaming platform; creating a task graph for each training workflow in the set of training workflows, the task graph being a directed acyclic graph of tasks with each node of the task graph representing a media processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task; assigning a worker from a set of workers of the video streaming platform to each training session; collecting raw performance data from each assigned worker after each set of training workflows is processed; generating a platform performance profile of the video streaming platform based on the raw performance data from the each assigned worker, wherein the platform performance profile is used to predict resource requirements of media workflows to be processed by the video streaming platform; receiving a request to create a media workflow for a video source; predicting a set of resource requirements necessary to process the media workflow based on the platform performance profile and characteristics of the video source, wherein the predicting of the set of resource requirements includes creating a task graph for the media workflow, and predicting the set of resource requirements for each task of the task graph based on the platform performance profile and the characteristics of the video source; and selecting one or more workers based on the set of predicted resource requirements and current resource availability of workers in the video streaming platform. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An electronic device to serve as an orchestrator cluster of a video streaming platform, the electronic device comprising:
-
a processor; and a non-transitory machine-readable storage medium coupled to the processor, the non-transitory machine-readable storage medium containing operations executable by the processor, wherein the electronic device is operative to receive a request to initiate a set of training sessions, the request including a set of parameters describing characteristics of each training session in the set of training sessions, for each training session in the set of training sessions, to initiate a set of training workflows to be processed by the video streaming platform, to create a task graph for each training workflow in the set of training workflows, the task graph being a directed acyclic graph of tasks with each node of the task graph representing a media processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task, to assign a worker from a set of workers of the video streaming platform to each training session, to collect raw performance data from each assigned worker after each set of training workflows is processed, to generate a platform performance profile of the video streaming platform based on the raw performance data from the each assigned worker, wherein the platform performance profile is used to predict resource requirements of media workflows to be processed by the video streaming platform, to receive a request to create a media workflow for a video source, to predict a set of resource requirements necessary to process the media workflow based on the platform performance profile and characteristics of the video source, wherein prediction of the set of resource requirements includes creating a task graph for the media workflow, and predicting the set of resource requirements for each task of the task graph based on the platform performance profile and the characteristics of the video source, and to select one or more workers based on the set of predicted resource requirements and current resource availability of workers in the video streaming platform. - View Dependent Claims (9, 10, 11)
-
-
12. A non-transitory machine-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations in an electronic device implementing a video streaming platform, wherein the operations optimize resource utilization while processing media workflows by the video streaming platform, the operations comprising:
-
receiving a request to initiate a set of training sessions, the request including a set of parameters describing characteristics of each training session in the set of training sessions; for each training session in the set of training sessions, initiating a set of training workflows to be processed by the video streaming platform; creating a task graph for each training workflow in the set of training workflows, the task graph being a directed acyclic graph of tasks with each node of the task graph representing a media processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task; assigning a worker from a set of workers of the video streaming platform to each training session; collecting raw performance data from each assigned worker after each set of training workflows is processed; generating a platform performance profile of the video streaming platform based on the raw performance data from the each assigned worker, wherein the platform performance profile is used to predict resource requirements of media workflows to be processed by the video streaming platform; receiving a request to create a media workflow for a video source; predicting a set of resource requirements necessary to process the media workflow based on the platform performance profile and characteristics of the video source, wherein the predicting of the set of resource requirements includes creating a task graph for the media workflow, and predicting the set of resource requirements for each task of the task graph based on the platform performance profile and the characteristics of the video source; and selecting one or more workers based on the set of predicted resource requirements and current resource availability of workers in the video streaming platform. - View Dependent Claims (13, 14, 15)
-
Specification