US9391851B2 - System and method for determining total processing time for executing a plurality of jobs - Google Patents
System and method for determining total processing time for executing a plurality of jobs Download PDFInfo
- Publication number
- US9391851B2 US9391851B2 US14/505,794 US201414505794A US9391851B2 US 9391851 B2 US9391851 B2 US 9391851B2 US 201414505794 A US201414505794 A US 201414505794A US 9391851 B2 US9391851 B2 US 9391851B2
- Authority
- US
- United States
- Prior art keywords
- jobs
- processing time
- execution
- priority
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06313—Resource planning in a project environment
Definitions
- the present disclosure relates in general to systems and methods for determining total processing time required for executing multiple jobs received in real time.
- multiple computing resources are deployed at different geographical locations in order to execute jobs associated with software applications of different technologies.
- the execution of the jobs is managed through a service level agreement (SLA) between a service provider and a customer.
- SLA service level agreement
- the service provider facilitates the execution of the jobs belonging to the customer.
- the customer may prescribe its requirements regarding the execution of the jobs through the SLA.
- the customer may set a pre-defined time limit for the execution of the jobs. Based on the requirements of the customer, the service provider may have to accordingly plan and execute the jobs, so that the SLA is complied.
- the service provider may have to effectively analyze supply and demand of the computing resources, such that the jobs are executed within the pre-defined time limit set as per the SLA. Further, some of the jobs (priority jobs) may have to be executed with higher priority.
- the priority jobs may have distinct characteristics than the other jobs, and may be arriving in real time. Since the arrival of the priority jobs is dynamic and the priority jobs have distinct characteristics, it becomes a technical challenge to effectively plan and allocate the computing resources, such that the overall jobs including the priority jobs are executed as per the SLA.
- a system for determining a total processing time (T) for executing a plurality of jobs (n) including a set of jobs (z) and a set of priority jobs (x) may include a processor and a memory coupled to the processor for executing a plurality of modules stored in the memory.
- the plurality of modules may include a receiving module, a distributing module, and a determining module.
- the receiving module may be configured to receive the set of jobs (z), a mean processing time ( ⁇ ), and a queue length (k).
- the mean processing time ( ⁇ ) may be indicative of average time required for executing a job of the plurality of jobs (n).
- the queue length (k) may be indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the distributing module may be configured to distribute the plurality of jobs (n) for execution across a plurality of computing resources (p) based upon the queue length (k). Further, the distributing module may be configured to receive the set of priority jobs (x) when a subset of jobs (z ⁇ y) from the set of jobs (z) have been executed in a first processing time (T F ). The distributing module may be configured to 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).
- the distributing module may be configured to distribute the set of priority jobs (x) for execution based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x may be indicative of distribution of time for the execution of the priority jobs (x).
- the determining module may be further configured to determine a third processing time (T T ) required for the execution of the set of remaining jobs (y) based upon the first processing time (T F ). Furthermore, the determining module may be configured to 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).
- 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) may include receiving the set of jobs (z), a mean processing time ( ⁇ ), and a queue length (k).
- the mean processing time ( ⁇ ) may be indicative of average time required for executing a job of the plurality of jobs (n).
- the queue length (k) may be indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the method may further include distributing the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k).
- the method may include receiving the set of priority jobs (x) when a subset of jobs (z ⁇ y) from the set of jobs (z) have been executed in a first processing time (T F ).
- the method may further include 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).
- the method may include distributing the set of priority jobs (x) for execution based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x may be indicative of distribution of time for the execution of the set of priority jobs (x).
- the method may further include computing a second processing time (T S ) required for the execution of the set of priority jobs (x).
- the second processing time (T S ) ⁇ x ( ⁇ e ⁇ x /x!) [Q(t)] x .
- the method may further include determining a third processing time (T T ) required for the execution of the set of remaining jobs (y) based upon the first processing time (T F ). Furthermore, the method may include 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).
- At least one of the receiving, the distributing the set of jobs (z), the deferring, the distributing the set of priority jobs (x), the computing, the determining, and the summing are performed by a processor using a set of instructions stored in a memory.
- a computer program product having embodied thereon a computer program for determining a total processing time (T) for executing a plurality of jobs (n) including a set of jobs (z) and a set of priority jobs (x) is disclosed.
- the computer program product may include an instruction for receiving the set of jobs (z), a mean processing time ( ⁇ ), and a queue length (k).
- the mean processing time ( ⁇ ) may be indicative of average time required for executing a job of the plurality of jobs (n).
- the queue length (k) may be indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the computer program product may include an instruction for distributing the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k). Further, the computer program product may include an instruction for receiving the set of priority jobs (x) when a subset of jobs (z ⁇ y) from the set of jobs (z) have been executed in a first processing time (T F ). The computer program product may further include an instruction for 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). Further, the computer program product may comprise an instruction for distributing the set of priority jobs (x) for execution based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x may be indicative of distribution of time for the execution of the priority jobs (x).
- the computer program product may further include an instruction for determining a third processing time (T T ) required for the execution of the set of remaining jobs (y) based upon the first processing time (T F ).
- the computer program product may include an instruction for 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).
- FIG. 1 illustrates a network implementation of a system for determining a total processing time (T) for executing a plurality of jobs (n), in accordance with an embodiment of the present disclosure
- FIG. 2 illustrates the system, in accordance with an embodiment of the present disclosure
- FIG. 3 illustrates a method for determining a total processing time (T) for executing a plurality of jobs (n), in accordance with an embodiment of the present disclosure.
- the system may receive the set of jobs (z) along with a mean processing time ( ⁇ ), and a queue length (k).
- the mean processing time ( ⁇ ) may be indicative of average time required for executing a job of the plurality of jobs (n).
- the queue length (k) may be indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the system may distribute the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k).
- the system may receive the set of priority jobs (x).
- the set of priority jobs (x) may be received when a subset of jobs (z ⁇ y) from the set of jobs (z) have been executed in a first processing time (T F ). Therefore, the system may preempt execution of a set of remaining jobs (y) from the set of jobs (z) in order to first process the execution of the set of priority jobs (x).
- the system may distribute the set of priority jobs (x) based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x may be indicative of distribution of time for the execution of the priority jobs (x).
- the system may compute a second processing time (T S ) required for the execution of the set of priority jobs (x).
- the second processing time (T S ) ⁇ x ( ⁇ e ⁇ x /x!) [Q(t)] x .
- the system may determine a third processing time (T T ) required for the execution of the set of remaining jobs (y) based upon the first processing time (T F ).
- the system may determine the total processing time (T) by summing the first processing time (T F ), the second processing time (T S ), and the third processing time (T T ).
- a network implementation 100 of a system 102 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) is illustrated, in accordance with an embodiment of the present disclosure.
- the system 102 may be configured to receive the set of jobs (z), a mean processing time ( ⁇ ), and a queue length (k).
- the mean processing time (pt) may be indicative of average time required for executing a job of the plurality of jobs (n).
- the queue length (k) may be indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the system 102 may be configured to distribute the set of jobs (z) for execution across a plurality of computing resources (p) based upon the queue length (k). Further, the system 102 may be configured to receive the set of priority jobs (x) when a subset of jobs (z ⁇ y) from the set of jobs (n) have been executed in a first processing time (T F ). The system 102 may be configured to 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). Further, the system 102 may be configured to distribute the set of priority jobs (x) for execution based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x may be indicative of distribution of time for the execution of the priority jobs (x).
- the system 102 may be further configured to determine a third processing time (T T ) required for the execution of the set of remaining jobs (y) based upon the first processing time (T F ). Furthermore, the system 102 may be configured to 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).
- system 102 may also be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a network server, and the like.
- the system 102 may be implemented in a cloud-based environment. It will be understood that the system 102 may be accessed by multiple users through one or more user devices 104 - 1 , 104 - 1 , 104 - 2 , 104 - 3 , and 104 -N collectively also referred to as a user device 104 hereinafter, or applications residing on the user devices 104 .
- the user devices 104 may include, but are not limited to, a portable computer, a personal digital assistant, a handheld device, and a workstation.
- the user devices 104 are communicatively coupled to the system 102 through a network 106 .
- the network 106 may be a wireless network, a wired network or a combination thereof.
- the network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and the like.
- the network 106 may either be a dedicated network or a shared network.
- the shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another.
- the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
- the system 102 may include at least one processor 202 , an input/output (I/O) interface 204 , and a memory 206 .
- the at least one processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions.
- the at least one processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 206 .
- the I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like.
- the I/O interface 204 may allow the system 102 to interact with a user directly or through the user device 104 . Further, the I/O interface 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown).
- the I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite.
- the I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
- the memory 206 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
- volatile memory such as static random access memory (SRAM) and dynamic random access memory (DRAM)
- non-volatile memory such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
- ROM read only memory
- erasable programmable ROM erasable programmable ROM
- the modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks, functions or implement particular abstract data types.
- the modules 208 may include a receiving module 212 , a distributing module 214 , a determining module 216 , and other module 218 .
- the other module 218 may include programs or coded instructions that supplement applications and functions of the system 102 .
- the data 210 serves as a repository for storing data processed, received, and generated by one or more of the modules 208 .
- the data 210 may also other data 220 .
- the other data 220 may include data generated as a result of the execution of one or more modules in the other module 218 .
- a user may use the user device 104 to access the system 102 via the I/O interface 204 .
- the user may register themselves using the I/O interface 204 in order to use the system 102 .
- the working of the system 102 using the plurality of modules 208 is explained in detail referring to FIGS. 2 and 3 as explained below.
- an outsourcing entity has outsourced execution of a plurality of jobs, to an outsourcee entity.
- the outsourcee may have to allocate desired number of computing resources such as servers, hardware and/or software components, and the like in order to execute the plurality of jobs, as per the requirements of the outsourcing entity.
- the plurality of jobs may be continuously arriving for the execution at the outsourcee entity location, and hence need to be executed appropriately, satisfying the requirements of the outsourcing entity.
- the present system 102 enables the outsourcee entity to determine sufficient number of the computing resources to execute the plurality of jobs, the details of which is further explained as below.
- the receiving module 212 may be configured to receive a plurality of requirements of the outsourcing entity.
- the plurality of requirements may be associated to the execution of the plurality of jobs.
- the receiving module 212 may be configured to receive the plurality of jobs (n) comprising a set of jobs (z) and a set of priority jobs (x).
- the plurality of jobs (n) has to be executed by one or more software applications belonging to the outsourcee entity.
- the plurality of jobs (n) may be of similar or diverse skill types, and may be distributed across one or more geographical locations belonging to the outsourcee entity.
- the plurality of jobs (n) may be of the skill types comprising software development, software maintenance, Business Process Outsourcing (BPO), and the like.
- the one or more software applications may require effective number of the computing resources in order to execute the plurality of jobs (n) as per the plurality of requirements.
- the plurality of requirements further comprises receiving by the receiving module 212 , a mean processing time ( ⁇ ), and a queue length (k).
- the mean processing time ( ⁇ ) may be indicative of average time required for executing a job of the plurality of jobs (n).
- the queue length (k) may be indicative of a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the receiving module 212 may be configured to receive a plurality of parameters comprising a reference processing time (T R ), a standard deviation ( ⁇ ), a tolerance level ( ⁇ ) agreed upon in a service level agreement (SLA), and a confidence level (1- ⁇ ).
- T R reference processing time
- ⁇ standard deviation
- ⁇ tolerance level
- SLA service level agreement
- 1- ⁇ confidence level
- the reference processing time (T R ), the mean processing time ( ⁇ ), and the plurality of parameters are predefined in a service level agreement (SLA).
- the mean processing time ( ⁇ ) may indicate average time required for executing each job.
- the number of jobs (n) is ten, out of which four jobs require 50 minutes for the execution.
- the remaining jobs i.e. six out of 10
- the mean processing time ( ⁇ ) required for the execution of all ten jobs will be 44 minutes.
- the mean processing time ( ⁇ ) indicating the execution of each job corresponding to a batch of jobs may be received.
- the standard deviation ( ⁇ ) indicates such variance in the mean processing time ( ⁇ ).
- the standard deviation ( ⁇ ) indicates a variance in the mean processing time ( ⁇ ).
- the mean processing time ( ⁇ ) is 50 minutes, and the standard deviation ( ⁇ ) is also 50 minutes, then the variance allowable in the mean processing time ( ⁇ ) will be square of the standard deviation ( ⁇ ), i.e. ⁇ 2 , which will be 2500, in the aforementioned scenario.
- the outsourcee entity may also have to execute the plurality of jobs (n) based on the tolerance level ( ⁇ ).
- the tolerance level ( ⁇ ) may be indicative of a maximum time allowable in addition to the reference processing time (T R ) for executing the plurality of jobs (n).
- the reference processing time (T R ) may indicate a processing time agreed upon in the SLA for executing the plurality of jobs (n).
- reference processing time (T R ) may indicate the total time limit prescribed by the outsourcing entity to the outsourcee entity in order to complete the execution of the plurality of jobs (n).
- the outsourcee entity may be allowed to execute the plurality of jobs (n) with the maximum time allowable in addition to the reference processing time (T R ).
- T R reference processing time
- the outsourcee entity may be allowed to execute the plurality of jobs (n) in 105 minutes with the maximum allowable time of 5 minutes. It is to be understood that, though the outsourcee entity may be allowed to execute the plurality of jobs (n) as per the tolerance level ( ⁇ ) predefined in the SLA, the outsourcee entity may, depending on the number of computing resources and their configuration, execute the plurality of jobs (n) even before the expiry of the reference processing time (T R ).
- the outsourcee entity may complete the execution of the plurality of jobs (n) in less than 100 minutes, for example, 90 minutes, 85 minutes, and the like. However, the outsourcee entity may not be allowed to complete the execution of plurality of jobs (n) by taking a reference processing time (T R ) of greater than 105 minutes.
- the confidence level (1 ⁇ ) depends on the tolerance level ( ⁇ ). In one embodiment, the confidence level (1 ⁇ ) indicates maximum percentage of the plurality of jobs that is required to be executed in the reference processing time (T R ), and as per the service level agreement (SLA). Hence, the outsourcee entity may have to accordingly provide the sufficient and effective number of the computing resources in order to execute the plurality of jobs (n) in the reference processing time (T R ) and in accordance with the service level agreement (SLA).
- the reference processing time (T R ), the mean processing time ( ⁇ ), and the plurality of parameters may be processed in order to compute the queue length (k).
- the queue length (k) is indicative of ‘k’ jobs out of the plurality of jobs (n) to be executed by a single computing resource. The computation of the queue length (k) is further explained in detail as below.
- the queue length (k) may be computed using the normal distribution function as follows: N (( T R ⁇ k ⁇ )/ ⁇ k ⁇ 2 ⁇ 1 ⁇ (I) Applying normal inverse function on both sides of equation (I); ( T R ⁇ k ⁇ )/ ⁇ k ⁇ 2 ⁇ Normalinv(1 ⁇ ; ⁇ ; ⁇ 2 ) (II)
- N ( T R ⁇ k ⁇ )/ ⁇ k ⁇ 2 ⁇ Normalinv(1 ⁇ ; ⁇ ; ⁇ 2 )
- values corresponding to the mean processing time ( ⁇ ), and the standard deviation ( ⁇ ) may be 0 and 1 respectively.
- the mean processing time ( ⁇ ), and the standard deviation ( ⁇ ) may be having a numeric value of 0, and 1 respectively. Therefore, value of the variance in the normalized state may also be 1.
- the values of the mean processing time ( ⁇ ) and the variance ⁇ 2 is received in order to compute the queue length (k) of maximum value.
- the value of the inverse parameter ⁇ (Normalinv (1 ⁇ ; 0; 1) may be obtained from a normal inverse table 1 as shown below.
- the table below provides the value of the inverse parameter ⁇ based on the standard normal distribution, i.e. assuming the values of the mean processing time ( ⁇ ) and the variance ( ⁇ 2 ) as 0 and 1 respectively.
- the value of the inverse parameter ⁇ may be determined using the above table 1. It is to be noted that the above table 1 depicting the normal distribution using the Inverse cumulative distribution function is known in the art. It must be noted to one skilled in the art that values of (1 ⁇ ) and Inverse Parameter ( ⁇ ) listed in the table 1 have been considered in order to explain an exemplary embodiment of the present disclosure and hence should not be limited to these values.
- the value of inverse parameter ⁇ may be determined corresponding to any value of (1 ⁇ ) by referring to normal inverse tables available in the art. It must be understood that, in order to obtain the maximum value of the queue length (k), the above table 1 may be used for determining the inverse parameter ⁇ only when the distribution is standard normal distribution. Alternatively, when the distribution is normal, expected values of the mean processing time ( ⁇ ), and the standard deviation ( ⁇ ) may be utilized for the determination of the inverse parameter ⁇ .
- the queue length (k) may be computed based on the reference processing time (T R ), the mean processing time ( ⁇ ), the standard deviation ( ⁇ ), and the inverse parameter ( ⁇ ) using the equation IV as follows:
- the queue length indicates executing of ‘k’ jobs per queue, or the maximum number of jobs (k) capable of being executed by the single computing resource.
- the system 102 may be configured to compute the queue length (k) using Gamma Inverse Function.
- F(x) indicates the exponential distribution of the plurality of jobs (n)
- the queue length (k) may also be computed using equation VII-A, when the distribution of the jobs is exponential.
- the queue length indicates executing of ‘k’ jobs per queue, or the maximum number of jobs (k) capable of being executed by the single computing resource.
- the number of computing resources required for the execution of the plurality of jobs (n) may be determined. In one embodiment, the number of computing resources may be determined based on processing of the queue length (k) and the number of jobs (n). In one implementation, the number of computing resources is determined based on a ceiling function of division of the plurality of jobs (n) and the queue length (k).
- the number of computing resources (m) is determined based on the ceiling function of the division of the plurality of jobs (n) and the queue length, i.e. the ceiling function of (n/k).
- the I/O interface 204 may be adapted to display the queue length (k) and the number of computing resources (m) determined on the user device 104 .
- the I/O interface 204 may also export the queue length (k) and the number of the computing resources to an external display device associated to the outsourcing entity.
- the system 102 based on the determination of the computing resources, may be configured to allocate the executing of the plurality of jobs (n) to the computing resources, such that each computing resource is capable of executing k jobs out of the n jobs in the total processing time (T), and hence the plurality of jobs (n) may be executed in the total processing time (T).
- the queue length (k) may be computed using the equation VII as follows:
- the queue length (k) enables determining the number of computing resources required for execution of the plurality of jobs (n).
- the queue length (k) thus computed, and the number of computed resources enables in distributing the execution of the plurality of jobs (n) along with the set of priority jobs (x), which is explained in detail as below.
- the distributing module 214 may be configured to distribute the set of jobs (z) for execution across the plurality of computing resources (p). In one implementation, the distributing module 214 may distribute the set of jobs (z) for the execution across the plurality of computing resources (p) based upon the queue length (k).
- the queue length (k) indicates maximum number of jobs capable of being executed by a single computing resource of the plurality of computing resources (p) in a predefined time period.
- the distributing module 214 may be configured to distribute the set of jobs (z) across the plurality of computing resources (p).
- the queue length (k) is three and the number of jobs (z) to be executed is 75.
- the distributing module 214 may be configured to receive the set of priority jobs (x). Specifically, the set of priority jobs (x) may be received when a subset of jobs (z ⁇ y) from the set of jobs (z) have been executed in a first processing time (T F ), while a set of remaining jobs (y) from the set of jobs (z) are yet to be executed. Specifically, the execution of the set of remaining jobs (y) is preempted by the receipt of the set of priority jobs (x) while the subset of jobs (z ⁇ y) have been executed in the first processing time (T F ).
- the set of priority jobs (x) may be appearing in random and have distinct characteristics as compared to the set of jobs (z).
- the set of remaining jobs (z ⁇ y) are yet to be executed, the execution of the set of priority jobs (x) is prioritized over the execution of remaining jobs (z ⁇ y). Specifically, the execution of the remaining jobs (z ⁇ y) is deferred in order to execute the set of priority jobs (x).
- the plurality of jobs (n) is the summation of the subset of jobs (z ⁇ y), the set of remaining jobs (y), and the set of priority jobs (x).
- the distributing module 214 may be configured to distribute the set of priority jobs (x) for execution across the plurality of computing resources (p).
- the distribution of the set of priority jobs (x) for the execution is based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x is indicative of distribution of time for the execution of the set of priority jobs (x).
- the probability distribution function [Q(t)] x represent a Compound Poisson Distribution time (CPDT).
- the determining module 216 may be configured to compute a second processing time (T S ), a third processing time (T T ), and the total processing time (T) as described in detail in subsequent paragraphs.
- the determining module 216 may be configured to compute the second processing time (T S ).
- the second processing time (T S ) indicates processing time required for the execution of the set of priority jobs (x).
- the determining module 216 may be configured to determine the third processing time (T T ).
- the third processing time (T T ) indicates processing time required for the execution of the set of remaining jobs (n ⁇ y).
- the determining module 216 may determine the third processing time (T T ) based upon the first processing time (T F ). Specifically, the determining module 216 may determine the third processing time using following formulation:
- T T T F * Number ⁇ ⁇ of ⁇ ⁇ the ⁇ ⁇ set ⁇ ⁇ of ⁇ ⁇ remaining ⁇ ⁇ jobs ⁇ ( y ) Number ⁇ ⁇ of ⁇ ⁇ the ⁇ ⁇ subset ⁇ ⁇ of ⁇ ⁇ jobs ⁇ ( z ⁇ - ⁇ y ) ( X )
- the determining module 216 may be configured to determine the total processing time (T) required for the execution of the plurality of jobs (n) and the set of priority jobs (x).
- the determining module 216 may determine the total processing time by summing the first processing time (T F ), the second processing time (T S ), and the third processing time (T T ).
- the total processing time (T) may be determined based on 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.
- the determination of the total processing time (T) is further explained with an example as below.
- CPDT Compound Poisson Distribution time
- the second processing time (T S ) may be normalized or standardized using various statistical methods known in the art.
- the second processing time may be normalized based upon a natural logarithm of T S obtained using the equation IX.
- T S ln (4.707705e +18 ) which is equal to 43 minutes.
- T F 2.238806 minutes
- T S 43 minutes
- T T 6.626866 minutes
- Some embodiments of the present disclosure enable the computation of the queue length (k) indicating maximum number of jobs capable of being executed by a single server.
- Some embodiments of the present disclosure enable the determination of the number of servers required for the executing of the number of jobs (n) arriving in real time.
- Some embodiments of the present disclosure enable real time allocation of the number of servers for the execution of the number of jobs based on the queue length (k) and the number of jobs (n).
- Some embodiments of the present disclosure enables computing processing time required for executing a set of priority jobs (x) arriving in between the execution of a set of jobs (z), wherein the set of jobs (z) and the set of priority jobs (x) collectively forms the number of jobs (n).
- Some embodiments of the present disclosure enables determining total processing time required for the execution of the set of jobs and the set of priority jobs.
- a method 300 for determining total processing time required for executing a plurality of jobs is shown, in accordance with an embodiment of the present disclosure.
- the method 300 may be described in the general context of computer executable instructions.
- computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types.
- the method 300 may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network.
- computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
- the order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 300 or alternate methods. Additionally, individual blocks may be deleted from the method 300 without departing from the spirit and scope of the disclosure described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. However, for ease of explanation, in the embodiments described below, the method 300 may be considered to be implemented in the above described system 102 .
- the set of jobs (z), the mean processing time ( ⁇ ), and the queue length (k) may be received.
- the set of jobs (z), the mean processing time ( ⁇ ), and the queue length (k) may be received by the receiving module 212 .
- the set of jobs (z) may be received from the outsourcing entity.
- the mean processing time ( ⁇ ) indicates average time required for executing a job.
- the queue length (k) indicates a maximum number of jobs capable of being executed by a single computing resource in a predefined time period.
- the number of set of jobs (z), the mean processing time ( ⁇ ), and the queue length (k) may be stored in the data 210 .
- the set of jobs (z) may be distributed for execution across a plurality of computing resources (p) based upon the queue length (k).
- the set of jobs (z) may be distributed by the distributing module 214 .
- the set of priority jobs (x) may be received.
- the set of priority jobs (x) may be received by the distributing module 214 .
- the set of priority jobs (x) are received when a subset of jobs (z ⁇ y) from the set of jobs (z) has been executed. Further, the subset of jobs (z ⁇ y) is executed in a first processing time (T F ).
- the execution of a set of remaining jobs (y) from the set of jobs (z) may be deferred on receipt of the set of priority jobs (x).
- the execution of the set of remaining jobs (y) is deferred by the distributing module 214 .
- the set of priority jobs (x) may be distributed for execution across the plurality of computing resources (p) based on a probability distribution function [Q(t)] x .
- the probability distribution function [Q(t)] x is indicative of distribution of time for the execution of the priority jobs (x).
- the set of priority jobs (x) may be distributed by the distributing module 214 .
- a second processing time (T S ) required for the execution of the set of priority jobs (x) may be computed.
- the second processing time (T S ) may be computed by the determining module 216 .
- a third processing time (T T ) required for the execution of the set of remaining jobs (y) may be determined.
- the third processing time (T T ) may be determined based upon the first processing time (T F ).
- the third processing time (T T ) may be determined by the determining module 216 .
- a total processing time (T) required for the execution of the plurality of jobs (n) comprising the set of (z) and the set of priority jobs (x) may be determined.
- the total processing time (T) may be determined by summing the first processing time (T F ), the second processing time (T S ), and the third processing time (T T ).
- the total processing time (T) may be determined by the determining module 216 .
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Physics & Mathematics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Game Theory and Decision Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Educational Administration (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
Description
N((T R −kμ)/√kσ 2≧1−α (I)
Applying normal inverse function on both sides of equation (I);
(T R −kμ)/√kσ 2≧Normalinv(1−α;μ;σ2) (II)
In one embodiment, assuming the mean processing time (μ), and the standard deviation (σ) are received in normalized state, values corresponding to the mean processing time (μ), and the standard deviation (σ) may be 0 and 1 respectively. Specifically, the mean processing time (μ), and the standard deviation (σ) may be having a numeric value of 0, and 1 respectively. Therefore, value of the variance in the normalized state may also be 1. Now, substituting the values of the mean processing time (μ), and the standard deviation (σ) in the normalized state, equation II may be modified as follows:
(T R −kμ)√kσ 2≧Normalinv(1−α;0;1) (III)
(T R −kμ)√kσ 2≧γ (IV)
Wherein, ‘γ’=Normalinv (1−α; 0; 1), and wherein ‘γ’ is an inverse parameter and ‘k’ indicates the queue length or ‘k’ jobs per queue or ‘k’ jobs being executed by the single resource. Further, ‘TR’ indicates the reference processing time.
| TABLE 1 |
| Normal distribution - Inverse cumulative distribution function |
| Value of | Value of Inverse Parameter (γ) (assuming mean | ||
| (1 − α) | processing time (μ) = 0; and variance (σ2) = 1) | ||
| 0.50 | 0.0000 | ||
| 0.51 | 0.0251 | ||
| 0.52 | 0.0502 | ||
| 0.53 | 0.0753 | ||
| 0.54 | 0.1004 | ||
| . | |||
| . | |||
| . | |||
| 0.95 | 1.6449 | ||
| 0.96 | 1.7507 | ||
| 0.97 | 1.8808 | ||
| 0.98 | 2.0537 | ||
| 0.99 | 2.3263 | ||
Inverse parameter γ=((Normalinv(1−α;0;1))*expected value of variance (σ2))+expected value of mean processing time (μ) (V)
Now, substituting the expected values in equation V,
Inverse parameter γ=(1.6449*2500)+50
Thus, the value of the Inverse parameter γ in the above example will be 4162.
(T R −kμ)/√kσ 2≧γ,
Therefore, (T R −kμ)−γ/√kσ 2≧0 (VI),
From the above equation VI, the queue length (k) may computed using quadratic equation kμ+γσ√k≦TR, wherein,
√k=(−γσ±√γ2σ2+4μT R)/2μ (VII)
Therefore, the queue length (k) may be computed using equation VII, as mentioned above. The queue length indicates executing of ‘k’ jobs per queue, or the maximum number of jobs (k) capable of being executed by the single computing resource.
F(T R ;k;1/μ)=1−Σ(1/n!)e −T R /μ(T R/μ)n≧1−α, wherein n=0 to k−1 (VII-A)
m= ┌(n/k)┐ (VIII)
wherein, ‘m’ indicates the number of computing resources, and
┌(n/k)┐ indicates the ceiling function of (n/k), and
Wherein n indicates the number of jobs, and k indicates the queue length.
Therefore, √k=(−γσ+√γ2σ2+4μT R)/2μ (A)
OR
√k=(−γσ−√γ2σ2+4μT R)/2μ (B)
Substituting the values in equation (A),
√k={−1.64*50+√(1.64*1.64*2500+4×240×50)}/100
Therefore, √k=1.52 (C)
Alternatively, substituting the values in equation (B),
√k={−1.64*50−√(1.64*1.64*2500+4×240×50)}/100
Therefore, √k=−3.16 (D)
T F=Elapsed Time/Number of computing resources(p) (VIII)
T S=Σx(μe −μx /x!)[Q(t)]x (IX)
Claims (8)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN454MU2014 IN2014MU00454A (en) | 2014-02-07 | 2014-02-07 | |
| IN454/MUM/2014 | 2014-02-07 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20150229542A1 US20150229542A1 (en) | 2015-08-13 |
| US9391851B2 true US9391851B2 (en) | 2016-07-12 |
Family
ID=53775955
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/505,794 Active 2035-04-08 US9391851B2 (en) | 2014-02-07 | 2014-10-03 | System and method for determining total processing time for executing a plurality of jobs |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9391851B2 (en) |
| IN (1) | IN2014MU00454A (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110059902B (en) * | 2018-01-19 | 2023-04-21 | 招商局国际信息技术有限公司 | Method, device, computer equipment and storage medium for dispatching field bridge |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5923873A (en) * | 1995-12-28 | 1999-07-13 | Lucent Technologies Inc. | Method for determining server staffing in management of finite server queueing systems |
| US20070240161A1 (en) * | 2006-04-10 | 2007-10-11 | General Electric Company | System and method for dynamic allocation of resources in a computing grid |
| US20080289017A1 (en) * | 2004-06-10 | 2008-11-20 | International Business Machines Corporation | Apparatus, methods, and computer programs for identifying or managing vulnerabilities within a data processing network |
| US7734676B2 (en) * | 2001-06-27 | 2010-06-08 | International Business Machines Corporation | Method for controlling the number of servers in a hierarchical resource environment |
| US20130346994A1 (en) * | 2012-06-20 | 2013-12-26 | Platform Computing Corporation | Job distribution within a grid environment |
| US20140032257A1 (en) * | 2010-06-21 | 2014-01-30 | Avraham Y. Goldratt Institute, Lp | Method And System For Determining The Relative Priority Of In-Process Project Work Tasks And Focusing Improvements In Task Time Estimates |
| US8650298B2 (en) * | 2009-12-04 | 2014-02-11 | Creme Software Limited | Resource allocation system |
| US20140208327A1 (en) * | 2013-01-18 | 2014-07-24 | Nec Laboratories America, Inc. | Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors |
| US8863096B1 (en) * | 2011-01-06 | 2014-10-14 | École Polytechnique Fédérale De Lausanne (Epfl) | Parallel symbolic execution on cluster of commodity hardware |
| US20150143363A1 (en) * | 2013-11-19 | 2015-05-21 | Xerox Corporation | Method and system for managing virtual machines in distributed computing environment |
| US9183050B2 (en) * | 2014-02-28 | 2015-11-10 | Tata Consultancy Services Limited | System and method for determining total processing time for executing a plurality of jobs |
-
2014
- 2014-02-07 IN IN454MU2014 patent/IN2014MU00454A/en unknown
- 2014-10-03 US US14/505,794 patent/US9391851B2/en active Active
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5923873A (en) * | 1995-12-28 | 1999-07-13 | Lucent Technologies Inc. | Method for determining server staffing in management of finite server queueing systems |
| US7734676B2 (en) * | 2001-06-27 | 2010-06-08 | International Business Machines Corporation | Method for controlling the number of servers in a hierarchical resource environment |
| US20080289017A1 (en) * | 2004-06-10 | 2008-11-20 | International Business Machines Corporation | Apparatus, methods, and computer programs for identifying or managing vulnerabilities within a data processing network |
| US20070240161A1 (en) * | 2006-04-10 | 2007-10-11 | General Electric Company | System and method for dynamic allocation of resources in a computing grid |
| US8650298B2 (en) * | 2009-12-04 | 2014-02-11 | Creme Software Limited | Resource allocation system |
| US20140032257A1 (en) * | 2010-06-21 | 2014-01-30 | Avraham Y. Goldratt Institute, Lp | Method And System For Determining The Relative Priority Of In-Process Project Work Tasks And Focusing Improvements In Task Time Estimates |
| US8863096B1 (en) * | 2011-01-06 | 2014-10-14 | École Polytechnique Fédérale De Lausanne (Epfl) | Parallel symbolic execution on cluster of commodity hardware |
| US20130346994A1 (en) * | 2012-06-20 | 2013-12-26 | Platform Computing Corporation | Job distribution within a grid environment |
| US20140208327A1 (en) * | 2013-01-18 | 2014-07-24 | Nec Laboratories America, Inc. | Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors |
| US20150143363A1 (en) * | 2013-11-19 | 2015-05-21 | Xerox Corporation | Method and system for managing virtual machines in distributed computing environment |
| US9183050B2 (en) * | 2014-02-28 | 2015-11-10 | Tata Consultancy Services Limited | System and method for determining total processing time for executing a plurality of jobs |
Non-Patent Citations (5)
| Title |
|---|
| Bhattacharja, Bonane, "A better numerical approach for finding the steady-state waiting time and the average queue length of a system for the arithmetic GI/G/1 queue", Nov. 2011 (Thesis). |
| Lik Gan Alex Sung, "Autonomic Resource Management for a Cluster that Executes Batch Jobs", Waterloo, Ontario, Canada, 2006 (Thesis). |
| Utilization difference between a multiple server, single queue and a multiple server, multiple queue system, Jun. 19, 2013. |
| Vidhyacharan Bhaskar, & G. Lavanya, "Equivalent single-queue-single-server model for a Pentium processor", Applied Mathematical Modelling, vol. 34, p. 2531-2545 (2010); online pub. Nov. 20, 2009. |
| Xiaofeng Zhao, "Approximation methods for the standard deviation of flow times in the g/g/s queue", Aug. 2007 (Dissertation). |
Also Published As
| Publication number | Publication date |
|---|---|
| IN2014MU00454A (en) | 2015-09-25 |
| US20150229542A1 (en) | 2015-08-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8819683B2 (en) | Scalable distributed compute based on business rules | |
| Bai et al. | Performance analysis of heterogeneous data centers in cloud computing using a complex queuing model | |
| US9588813B1 (en) | Determining cost of service call | |
| US10360074B2 (en) | Allocating a global resource in a distributed grid environment | |
| US8606905B1 (en) | Automated determination of system scalability and scalability constraint factors | |
| CN113076224B (en) | Data backup method, data backup system, electronic device and readable storage medium | |
| WO2019056695A1 (en) | Task scheduling method and apparatus, terminal device, and computer readable storage medium | |
| US20220171653A1 (en) | Cloud Native Adaptive Job Scheduler Framework for Dynamic Workloads | |
| WO2019193570A1 (en) | Batch jobs execution time prediction using distinct service demand of threads and instantaneous cpu utilization | |
| US9183050B2 (en) | System and method for determining total processing time for executing a plurality of jobs | |
| CN109189563A (en) | Resource regulating method, calculates equipment and storage medium at device | |
| WO2018128998A1 (en) | Secure intelligent networked architecture with dynamic feedback | |
| Gupta et al. | Long range dependence in cloud servers: a statistical analysis based on google workload trace | |
| US20180107513A1 (en) | Leveraging Shared Work to Enhance Job Performance Across Analytics Platforms | |
| US20150106143A1 (en) | Optimizing Allocation of Configuration Elements | |
| US11856053B2 (en) | Systems and methods for hybrid burst optimized regulated workload orchestration for infrastructure as a service | |
| US20230185622A1 (en) | Graph Execution Engine | |
| US9391851B2 (en) | System and method for determining total processing time for executing a plurality of jobs | |
| US9407517B2 (en) | System and method for determining number of computing resources for executing a plurality of jobs | |
| CN118394468A (en) | Task scheduling method, system and computing device | |
| US20180143851A1 (en) | Workflow Job Distribution in a Data Processing System with Agent Time Window Constraints | |
| Martinovic et al. | Cutting stock problems with nondeterministic item lengths: a new approach to server consolidation | |
| Abdurahman et al. | Scalable HPC job scheduling and resource management in SST | |
| Anes et al. | Agile teams’ assignment model for Scaling Agile | |
| US20250190266A1 (en) | Reserving computing resources in cloud computing environments |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: TATA CONSULTANCY SERVICES, INDIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VIJAYARANGAN, NATARAJAN;SOMASUNDARAM, MURALIDHARAN;PADMANABHAN, KISHORE;REEL/FRAME:033892/0311 Effective date: 20140925 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: M1554); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |