IP Library › Granted Patent US 9,391,851
Granted Patent B2
US 9,391,851 · App. 14/505,794 · Granted Jul 12, 2016

System and method for determining total processing time for executing a plurality of jobs

Inventors: Natarajan Vijayarangan (Tamil Nadu, IN); Muralidharan Somasundaram (Tamil Nadu, IN); Kishore Padmanabhan (Tamil Nadu, IN)
Assignee: Tata Consultancy Services Limited
H04L41/5054G06Q10/06313
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 9,391,851
App. No.
14/505,794
Granted
Jul 12, 2016
Kind
B2
Abstract

Method and system for determining the total processing time required for executing a plurality of jobs. In certain aspects, a set of jobs along with a mean processing time and a queue length are received. The set of jobs are distributed across computing resources based upon the queue length. A set of priority jobs is received when the execution of a subset of jobs from the set of jobs has been executed in a first processing time (T F ). Further, the set of priority jobs is distributed for execution across the plurality of computing resources. A second processing time (T S ) required for the execution of the set of priority jobs is computed. Further, a third processing time (T T ) required for the execution of the set of remaining jobs from the set of jobs is determined. Finally, the total processing time is determined by summing T F , T S , and T T .

Claims (40)

1. A method for determining a total processing time (T) for executing a plurality of jobs (n) comprising a set of jobs (z) and a set of priority jobs (x), the method comprising:

receiving the set of jobs (z), a mean processing time (μ), and a queue length (k), wherein the mean processing time (μ) is indicative of average time required for executing a job of the plurality of jobs (n), and wherein the queue length (k) is indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period;

distributing the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k);

receiving the set of priority jobs (x) when a subset of jobs (z−y) from the set of jobs (z) has been executed in a first processing time (T F );

deferring an execution of a set of remaining jobs (y) from the set of jobs (z) on receipt of the set of priority jobs (x);

distributing the set of priority jobs (x) for execution based on a probability distribution function [Q(t)] x , wherein the probability distribution function [Q(t)] x is indicative of distribution of time for the execution of the priority jobs (x);

computing, via a processor, a second processing time (T S ) required for the execution of the priority jobs (x), and wherein the second processing time (T S )=Σ x (μe −μx /x!)[Q(t)] x ; and

determining, via the processor, a third processing time (T T ) required for the execution of the remaining jobs (y) based upon the first processing time (T F ); and

summing the first processing time (T F ), the second processing time (T S ), and the third processing time (T T ) in order to determine the total processing time (T).

2. The method of claim 1 , further comprising

receiving a plurality of parameters comprising a reference processing time (T R ), standard deviation (σ), a tolerance level (α) agreed upon in a service level agreement (SLA), and a confidence level (1−α),

wherein the reference processing time (T R ) indicates a processing time agreed upon in the SLA for executing the plurality of jobs (n), and

wherein the standard deviation (σ) indicates a variance in the mean processing time (μ), and

wherein the tolerance level (α) is indicative of a maximum time allowable in addition to the reference processing time (T R ) for executing the plurality of jobs (n).

3. The method of claim 2 , wherein the queue length (k) is based upon the reference processing time (T R ), the mean processing time (μ), and the plurality of parameters, and wherein the reference processing time (T R ), the mean processing time (μ), and the plurality of parameters are predefined in the SLA.

4. The method of claim 1 , wherein the first processing time (T F ) is obtained by dividing the elapsed time with the number of computing resources (p), wherein the elapsed time indicates processing time required for the execution of the subset of jobs (z−y) from the set of jobs (z).

5. The method of claim 1 , wherein the total processing time (T) is an integral function of Fx z-y (T T −y) and Fx y (y), wherein (y) indicates the number of the set of remaining jobs.

6. A system for determining a total processing time (T) for executing a plurality of jobs (n) comprising a set of jobs (z) and a set of priority jobs (x), the system comprising:

a processor; and

a memory coupled to the processor, wherein the processor is capable of executing a plurality of modules stored in the memory, and wherein the plurality of modules comprises:

a receiving module configured to receive the set of jobs (z), a mean processing time (μ), and a queue length (k), wherein the mean processing time (μ) is indicative of average time required for executing a job of the plurality of jobs (n), and wherein the queue length (k) is indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period;

a distributing module configured to,

distribute the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k),

receive the set of priority jobs (x) when a subset of jobs (z−y) from the set of jobs (z) has been executed in a first processing time (T F ),

defer an execution of a set of remaining jobs (y) from the set of jobs (z) on receipt of the set of priority jobs (x), and

distribute the set of priority jobs (x) for execution based on a probability distribution function [Q(t)] x , wherein the probability distribution function [Q(t)] x is indicative of distribution of time for the execution of the priority jobs (x); and

a determining module configured to,

compute a second processing time (T S ) required for the execution of the priority jobs (x), and wherein the second processing time (T S )=Σx (μe−μx/x!) [Q(t)] x ,

determine a third processing time (T T ) required for the execution of the remaining jobs (y) based upon the first processing time (T F ), and

sum the first processing time (T F ), the second processing time (T S ), and the third processing time (T T ) in order to determine the total processing time (T).

7. The system of claim 6 , wherein the receiving module is further configured to receive a plurality of parameters comprising a reference processing time (T R ), standard deviation (σ), a tolerance level (α) agreed upon in a service level agreement (SLA), and a confidence level (1−α), wherein the reference processing time (T R ) indicates a processing time agreed upon in the SLA for executing the plurality of jobs (n), and wherein the standard deviation (σ) indicates a variance in the mean processing time (μ), and wherein the tolerance level (α) is indicative of a maximum time allowable in addition to the reference processing time (T R ) for executing the plurality of jobs (n).

8. A non-transitory computer program product having embodied thereon a computer program for determining a total processing time (T) for executing a plurality of jobs (n) comprising a set of jobs (z) and a set of priority jobs (x), the computer program product comprising a set of instructions, the set of instructions comprising instructions for:

receiving the set of jobs (z), a mean processing time (.mu.), and a queue length (k), wherein the mean processing time (.mu.) is indicative of average time required for executing a job of the plurality of jobs (n), and wherein the queue length (k) is indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period;

distributing the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k);

receiving the set of priority jobs (x) when a subset of jobs (z−y) from the set of jobs (n) has been executed in a first processing time (T.sub.F);

deferring an execution of a set of remaining jobs (y) from the set of jobs (z) on receipt of the set of priority jobs (x);

distributing the set of priority jobs (x) for execution based on a probability distribution function [Q(t)].sup.x, wherein the probability distribution function [Q(t)].sup.x is indicative of distribution of time for the execution of the priority jobs (x);

computing a second processing time (T.sub.S) required for the execution of the priority jobs (x), and wherein the second processing time (T.sub.S)=.SIGMA.x (.mu.e−.mu.x/x!) [Q(t)].sup.x; and

determining a third processing time (T.sub.T) required for the execution of the remaining jobs (y) based upon the first processing time (T.sub.F); and

summing the first processing time (T.sub.F), the second processing time (T.sub.S), and the third processing time (T.sub.T) in order to determine the total processing time (T).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2014
From: VIJAYARANGAN, NATARAJAN; SOMASUNDARAM, MURALIDHARAN; PADMANABHAN, KISHORE
To: TATA CONSULTANCY SERVICES
Reel/Frame 033892/0311 →
Priority Claims (1)
IN 454/MUM/2014 · Feb 7, 2014 · national
Continuity (1)
Related Publication 20150229542A1 · Aug 13, 2015