Network aware process scheduling
First Claim
Patent Images
1. A system comprising:
- a plurality of processors, receiving input stream of data from a source;
a queue manager that;
receives a scheduling graph from an analyzer, said scheduling graph comprising executable elements and relationships between said executable elements, said relationships comprising data dependency relationships;
from said scheduling graph,identifies a first executable element that receives said input stream from the source;
identifies a first set of executable elements comprising a plurality of executable elements being executed downstream from said first executable element; and
identifies a second set of executable elements comprising a plurality of executable elements being executed upstream from said first executable element;
schedules said second set of executable elements, said second set of executable elements being executed at an elevated priority by preempting other executable elements; and
schedules said first set of executable elements such that a process scheduler causes said first set of executable elements to process said input stream of data;
a load manager that;
monitors performance of said executable elements, bywhen processing of said input stream of data is operating at maximum capacity, continues said monitoring;
when processing of said input stream is not operating at maximum capacity, identifies a second executable element downstream from said first executable element, said second executable element being a bottleneck for processing output from said first executable element; and
allocates additional processing resources to said second executable element until said executable elements is operating at full capacity.
2 Assignments
0 Petitions
Accused Products
Abstract
A schedule graph may be used to identify executable elements that consume data from a network interface or other input/output interface. The schedule graph may be traversed to identify a sequence or pipeline of executable elements that may be triggered from data received on the interface, then a process scheduler may cause those executable elements to be executed on available processors. A queue manager and a load manager may optimize the resources allocated to the executable elements to maximize the throughput for the input/output interface. Such as system may optimize processing for input or output of network connections, storage devices, or other input/output devices.
-
Citations
17 Claims
-
1. A system comprising:
-
a plurality of processors, receiving input stream of data from a source; a queue manager that; receives a scheduling graph from an analyzer, said scheduling graph comprising executable elements and relationships between said executable elements, said relationships comprising data dependency relationships; from said scheduling graph, identifies a first executable element that receives said input stream from the source; identifies a first set of executable elements comprising a plurality of executable elements being executed downstream from said first executable element; and identifies a second set of executable elements comprising a plurality of executable elements being executed upstream from said first executable element; schedules said second set of executable elements, said second set of executable elements being executed at an elevated priority by preempting other executable elements; and schedules said first set of executable elements such that a process scheduler causes said first set of executable elements to process said input stream of data; a load manager that; monitors performance of said executable elements, by when processing of said input stream of data is operating at maximum capacity, continues said monitoring; when processing of said input stream is not operating at maximum capacity, identifies a second executable element downstream from said first executable element, said second executable element being a bottleneck for processing output from said first executable element; and
allocates additional processing resources to said second executable element until said executable elements is operating at full capacity. - View Dependent Claims (2, 3, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
4. A computerized method comprising:
-
receiving a scheduling graph from an analyzer, said scheduling graph comprising executable elements and relationships between said executable elements, said relationships comprising data dependency relationships; receiving an input stream, comprising a plurality of data items from a data source, said input stream being consumed by a first executable element defined within said scheduling graph; identifying a second executable element from said scheduling graph, said second executable element having a data dependency relationship with said first executable element; identifying a third executable element from said scheduling graph, said first executable element being dependent on said third executable element prior to consuming said input stream; scheduling said third executable element such that said process scheduler causes said third executable element to be executed prior to said first executable element; scheduling said second executable element such that a process scheduler causes said second executable element to be executed after said first executable element; identifying a fourth executable element being dependent on said first executable element, said fourth executable element causing said first executable element to wait to process said input stream; and
allocating additional processing resources to said fourth executable element;determining a current rate at which said first executable element processes said input stream; and
measuring a change in said current rate when said fourth executable element has been allocated said additional processing resources;when said change is positive, adding additional processing resources; and
when said change is not positive, removing at least some of said additional processing resources. - View Dependent Claims (5, 6, 15, 16, 17)
-
Specification