System and method for dynamic task scheduling
A system for dynamically scheduling tasks accesses a plurality of tasks. The system determines execution attributes associated with the plurality of tasks. The execution attributes impact an execution of the plurality of tasks. The system determines device attributes associated with devices that are tasked to execute the plurality of tasks. The device attributes impact the execution of the plurality of tasks and a performance of the devices. The system determines that a first task is scheduled to be executed. The system determines that by scheduling the first task, at least one of the execution attributes and device attributes is not optimized. The system creates a second task that comprises at least a subset of operations of the first task based on the execution attributes and device attributes. The system scheduled the second task to be executed according to scheduling rules such that the execution attributes and device attributes are optimized.
1 . A system for dynamic task scheduling, comprising:
a memory configured to store:
a plurality of tasks comprising a first task, wherein the first task comprises a first set of operations; and
a set of scheduling rules that indicates requirements for scheduling each of the plurality of tasks;
a set of software instructions associated with a task analysis machine learning algorithm and a scheduling machine learning algorithm; and
a processor operably coupled with the memory, and configured to execute the set of software instructions to:
access the plurality of tasks;
train a task analysis machine learning algorithm on a first training dataset comprising scheduling information of the plurality of tasks, wherein the scheduling information comprises patterns of an arrival time, an execution time, a delay time, and processing resources used to execute a given task;
determine, by the trained task analysis machine learning algorithm, a plurality of execution attributes associated with each of the plurality of tasks, wherein the plurality of execution attributes impacts an execution of each of the plurality of tasks;
determine, by the trained task analysis machine learning algorithm, a plurality of device attributes associated with one or more devices that are tasked to execute the plurality of tasks, wherein the plurality of device attributes impacts the execution of each of the plurality of tasks and a performance of the one or more devices;
train a scheduling machine learning algorithm on a second training dataset comprising the plurality of tasks, with each task being associated with a respective execution attribute and a device attribute;
determine, by the trained scheduling machine learning algorithm a scheduling suggestion to execute the first task;
extract, by the trained task analysis machine learning algorithm, a first set of task attributes from the first task, wherein:
the first set of task attributes is represented by a first vector comprising numerical values; and
the first set of task attributes comprises a start time of execution of the first task;
extract, by the trained task analysis machine learning algorithm, a second set of task attributes from a historical task, wherein:
the second set of task attributes is represented by a second vector comprising numerical values; and
the second set of task attributes comprises a task anomaly comprising a delay in a start time of execution of the historical task;
simulate, by the trained scheduling machine learning algorithm, an execution of the first task according to the scheduling suggestion by the one or more devices;
compare a first result of the simulated execution of the first task with a second result of the historical task;
determine, based at least on the comparison, that by scheduling the first task, at least one of the plurality of execution attributes and the plurality of device attributes is not optimized; and
in response to determining that by scheduling the first task, at least one of the plurality of execution attributes and the plurality of device attributes is not optimized:
determine, by the trained scheduling machine learning algorithm, a reason for the at least one of the plurality of execution attributes and the plurality of device attributes not being optimized;
cause the processor to provide the determined reason as feedback from the trained scheduling machine learning algorithm to the trained task analysis machine learning algorithm stored in the memory, indicating that the at least one of the plurality of execution attributes and the plurality of device attributes is not optimized when the first task is simulated to be executed according to the scheduling suggestion;
refine the trained task analysis machine learning algorithm according to the feedback;
create, by the refined task analysis machine learning algorithm, based at least in part upon the feedback, the plurality of execution attributes, and the plurality of device attributes, a second task that comprises at least a subset of the first set of operations;
update, via the trained scheduling machine learning algorithm, the scheduling suggestion such that the delay in the start time of execution of the first task is reduced;
schedule the second task to be executed according to the updated scheduling suggestion and the set of scheduling rules such that the at least one of the plurality of execution attributes and the plurality of device attributes is optimized; and
communicate the second task to a second processor; and
the second processor communicatively coupled with the processor, and configured to execute the second task according to the updated scheduling suggestion.
2 . The system of claim 1 , wherein the plurality of execution attributes with respect to each task comprises at least one of time constraints, access requirements to various data needed to perform each task, dependencies to other tasks, processing resource requirements, and memory resource requirements.
3 . The system of claim 1 , wherein the plurality of device attributes comprises at least one of a processing resource availability and a memory resource availability with respect to the one or more devices.
4 . The system of claim 1 , wherein the set of scheduling rules comprises at least one of:
a time gap between every two adjacent tasks not to be more than a threshold time gap;
a memory resource utilization by executing each task not to be less than a threshold memory resource utilization;
a processing resource utilization by executing each task not to be less than a threshold processing resource utilization;
a completion time delay of each task not to be more than a threshold time delay; and
a load balancing parameter at the one or more devices not to be less than a threshold percentage.
5 . The system of claim 1 , wherein:
creating the second task comprises splitting the first task into at least a first subset of operations and a second subset of operations; and
scheduling the second task comprises:
scheduling the first subset of operations to be executed at a first particular time;
scheduling another task to be executed at a second particular time after the first particular time; and
scheduling the second subset of operations to be executed at a third particular time after the second particular time.
6 . The system of claim 1 , wherein creating the second task comprises merging the first task with at least a subset of operations of a third task from among the plurality of tasks.
7 . The system of claim 1 , wherein the first task comprises a web application development, a software application development, or a mobile application development.
8 . A method for dynamic task scheduling, comprising:
accessing a plurality of tasks comprising a first task that comprises a first set of operations;
training a task analysis machine learning algorithm on a first training dataset comprising scheduling information of the plurality of tasks, wherein the scheduling information comprises patterns of an arrival time, an execution time, a delay time, and processing resources used to execute a given task;
determining, by the trained task analysis machine learning algorithm, a plurality of execution attributes associated with each of the plurality of tasks, wherein the plurality of execution attributes impacts an execution of each of the plurality of tasks;
determining, by the trained task analysis machine learning algorithm, a plurality of device attributes associated with one or more devices that are tasked to execute the plurality of tasks, wherein the plurality of device attributes impacts the execution of each of the plurality of tasks and a performance of the one or more devices;
training a scheduling machine learning algorithm on a second training dataset comprising the plurality of tasks, with each task being associated with a respective execution attribute and a device attribute;
determining, by the trained scheduling machine learning algorithm, a scheduling suggestion to execute the first task;
extracting, by the trained task analysis machine learning algorithm, a first set of task attributes from the first task, wherein:
the first set of task attributes is represented by a first vector comprising numerical values; and
the first set of task attributes comprises a start time of execution of the first task;
extracting, by the trained task analysis machine learning algorithm, a second set of task attributes from a historical task, wherein:
the second set of task attributes is represented by a second vector comprising numerical values; and
the second set of task attributes comprises a task anomaly comprising a delay in a start time of execution of the historical task;
simulating, by the trained scheduling machine learning algorithm, an execution of the first task according to the scheduling suggestion by the one or more devices;
comparing a first result of the simulated execution of the first task with a second result of the historical task;
determining, based at least on the comparison, that by scheduling the first task, at least one of the plurality of execution attributes and the plurality of device attributes is not optimized; and
in response to determining that by scheduling the first task, at least one of the plurality of execution attributes and the plurality of device attributes is not optimized:
determining, by the trained scheduling machine learning algorithm, a reason for the at least one of the plurality of execution attributes and the plurality of device attributes not being optimized;
causing the processor to provide the determined reason as feedback from the trained scheduling machine learning algorithm to the trained task analysis machine learning algorithm stored in the memory, indicating that the at least one of the plurality of execution attributes and the plurality of device attributes is not optimized when the first task is simulated to be executed according to the scheduling suggestion;
refining the trained task analysis machine learning algorithm according to the feedback;
creating, by the refined task analysis machine learning algorithm, based at least in part upon the feedback, the plurality of execution attributes and the plurality of device attributes, a second task that comprises at least a subset of the first set of operations;
updating, via the trained scheduling machine learning algorithm, the scheduling suggestion such that the delay in the start time of execution of the first task is reduced;
scheduling the second task to be executed according to the updated scheduling suggestion and a set of scheduling rules such that the at least one of the plurality of execution attributes and the plurality of device attributes is optimized, wherein the set of scheduling rules indicates requirements for scheduling each of the plurality of tasks; and
executing the second task according to the updated scheduling suggestion.
9 . The method of claim 8 , wherein the plurality of execution attributes with respect to each task comprises at least one of time constraints, access requirements to various data needed to perform each task, dependencies to other tasks, processing resource requirements, and memory resource requirements.
10 . The method of claim 8 , wherein the plurality of device attributes comprises at least one of a processing resource availability and a memory resource availability with respect to the one or more devices.
11 . The method of claim 8 , wherein the set of scheduling rules comprises at least one of:
a time gap between every two adjacent tasks not to be more than a threshold time gap;
a memory resource utilization by executing each task not to be less than a threshold memory resource utilization;
a processing resource utilization by executing each task not to be less than a threshold processing resource utilization;
a completion time delay of each task not to be more than a threshold time delay; and
a load balancing parameter at the one or more devices not to be less than a threshold percentage.
12 . The method of claim 8 , wherein:
creating the second task comprises splitting the first task into at least a first subset of operations and a second subset of operations; and
scheduling the second task comprises:
scheduling the first subset of operations to be executed at a first particular time; scheduling another task to be executed at a second particular time after the first particular time; and
scheduling the second subset of operations to be executed at a third particular time after the second particular time.
13 . The method of claim 8 , wherein creating the second task comprises merging the first task with at least a subset of operations of a third task from among the plurality of tasks.
14 . The method of claim 8 , wherein the first task comprises a web application development, a software application development, or a mobile application development.
15 . A non-transitory computer-readable medium storing instructions that when executed by a processor causes the processor to:
access a plurality of tasks comprising a first task that comprises a first set of operations;
train a task analysis machine learning algorithm on a first training dataset comprising scheduling information of the plurality of tasks, wherein the scheduling information comprises patterns of an arrival time, an execution time, a delay time, and processing resources used to execute a given task;
determine, by the trained task analysis machine learning algorithm, a plurality of execution attributes associated with each of the plurality of tasks, wherein the plurality of execution attributes impacts an execution of each of the plurality of tasks;
determine, by the trained task analysis machine learning algorithm, a plurality of device attributes associated with one or more devices that are tasked to execute the plurality of tasks, wherein the plurality of device attributes impacts the execution of each of the plurality of tasks and a performance of the one or more devices;
train a scheduling machine learning algorithm on a second training dataset comprising the plurality of tasks, with each task being associated with a respective execution attribute and a device attribute;
determine, by the trained scheduling machine learning algorithm, a scheduling suggestion to execute the first task;
extract, by the trained task analysis machine learning algorithm, a first set of task attributes from the first task, wherein:
the first set of task attributes is represented by a first vector comprising numerical values; and
the first set of task attributes comprises a start time of execution of the first task;
extract, by the trained task analysis machine learning algorithm, a second set of task attributes from a historical task, wherein:
the second set of task attributes is represented by a second vector comprising numerical values; and
the second set of task attributes comprises a task anomaly comprising a delay in a start time of execution of the historical task;
simulate, by the trained scheduling machine learning algorithm, an execution of the first task according to the scheduling suggestion by the one or more devices;
compare a first result of the simulated execution of the first task with a second result of the historical task;
determine, based at least on the comparison, that by scheduling the first task, at least one of the plurality of execution attributes and the plurality of device attributes is not optimized; and
in response to determining that by scheduling the first task, at least one of the plurality of execution attributes and the plurality of device attributes is not optimized:
determine, by the trained scheduling machine learning algorithm, a reason for the at least one of the plurality of execution attributes and the plurality of device attributes not being optimized;
cause the processor to provide the determined reason as feedback from the trained scheduling machine learning algorithm to the trained task analysis machine learning algorithm stored in the memory, indicating that the at least one of the plurality of execution attributes and the plurality of device attributes is not optimized when the first task is simulated to be executed according to the scheduling suggestion;
refine the trained task analysis machine learning algorithm according to the feedback;
create, based at least in part upon the feedback, the plurality of execution attributes and the plurality of device attributes, a second task that comprises at least a subset of the first set of operations;
update, via the trained scheduling machine learning algorithm, the scheduling suggestion such that the delay in the start time of execution of the first task is reduced;
schedule the second task to be executed according to the updated scheduling suggestion and a set of scheduling rules such that the at least one of the plurality of execution attributes and the plurality of device attributes is optimized, wherein the set of scheduling rules indicates requirements for scheduling each of the plurality of tasks; and
execute the second task according to the updated scheduling suggestion.
16 . The non-transitory computer-readable medium of claim 15 , wherein the plurality of execution attributes with respect to each task comprises at least one of time constraints, access requirements to various data needed to perform each task, dependencies to other tasks, processing resource requirements, and memory resource requirements.
17 . The non-transitory computer-readable medium of claim 15 , wherein the plurality of device attributes comprises at least one of a processing resource availability and a memory resource availability with respect to the one or more devices.
18 . The non-transitory computer-readable medium of claim 15 , wherein the set of scheduling rules comprises at least one of:
a time gap between every two adjacent tasks not to be more than a threshold time gap;
a memory resource utilization by executing each task not to be less than a threshold memory resource utilization;
a processing resource utilization by executing each task not to be less than a threshold processing resource utilization;
a completion time delay of each task not to be more than a threshold time delay; and
a load balancing parameter at the one or more devices not to be less than a threshold percentage.
19 . The non-transitory computer-readable medium of claim 15 , wherein:
creating the second task comprises splitting the first task into at least a first subset of operations and a second subset of operations; and
scheduling the second task comprises:
scheduling the first subset of operations to be executed at a first particular time;
scheduling another task to be executed at a second particular time after the first particular time; and
scheduling the second subset of operations to be executed at a third particular time after the second particular time.
20 . The non-transitory computer-readable medium of claim 15 , wherein creating the second task comprises merging the first task with at least a subset of operations of a third task from among the plurality of tasks.