IP Library › Granted Patent US 9,400,683
Granted Patent B2
US 9,400,683 · App. 14/515,520 · Granted Jul 26, 2016

Optimizing execution of processes

Inventor: Unmesh Sreedharan (Kottayam, IN)
Assignee: SAP SE
G06F9/4881G06F8/314G06F8/45G06F8/10G06F8/456
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,400,683
App. No.
14/515,520
Granted
Jul 26, 2016
Kind
B2
Abstract

Methods and system for optimizing an execution of a business process are disclosed. In one aspect, a request to execute a business process is received. The business process is executed on multiple threads, which may include multiple computations. The business process is optimized by determining an optimal number of threads for executing the business process by a thread optimization model. From the determined optimal number of threads, the computations in the threads may be distributed or reallocated iteratively by executing an inter-thread computations optimization model. Executing the thread optimization model and the inter-thread computations optimization model optimizes the execution of the business process.

Claims (49)

1. A computer-implemented method to optimize an execution of a business process, comprising:

receiving a request to execute a business process;

upon receiving the request, determining, by a processor of the computer, an optimal number of threads for executing the business process by a thread optimization model;

iteratively distributing, by the processor of the computer, one or more computations in the determined optimal number of threads by an inter-thread optimization model, comprising:

determining a time required to generate a first thread from the optimal number of threads, and a total time required to execute one or more computations in the generated first thread; and

partitioning the one or more computations in the generated first thread into one or more time slots, wherein the one or more time slots are at least equal to the time required to generate the first thread; and

based on the determined optimal number of threads and the iterative distribution of the one or more computations, optimizing, by the processor of the computer, the execution of the business process.

2. The computer-implemented method of claim 1 , wherein determining the optimal number of threads for executing the business process by the thread optimization model, comprises:

calculating, by the processor of the computer, a total time required to execute one or more computations associated with the business process by iteratively incrementing a value of a thread count for executing the business process; and

for each iteration, comparing, by the processor of the computer, the calculated total time and a corresponding value of the thread count to determine the optimal number of threads for executing the business process.

3. The computer-implemented method of claim 2 , wherein the calculated total time corresponds to a lowest total time required for executing the one or more computations associated with the business process.

4. The computer-implemented method of claim 1 , wherein iteratively distributing the one or more computations in the determined optimal number of threads by inter-thread optimization model, further comprises:

based on a total time required to execute the one or more computations in a last thread, iteratively determining, by the processor of the computer, one or more available free time slots in the optimal number of threads; and

reallocating, by the processor of the computer, the one or more computations from the last thread between the one or more available free time slots in the optimal number of threads, wherein the reallocation optimizes the execution of the business process.

5. The computer-implemented method of claim 1 , further comprising: releasing the last thread, by the processor of the computer, from the optimal number of threads upon determining that the one or more computations corresponding to the last thread are iteratively distributed between a remaining optimal number of threads.

6. The computer-implemented method of claim 1 , wherein the total time required to execute the one or more computations is based on the one or more computations in one or more threads corresponding to the determined optimal number of threads.

7. A computer system to optimize an execution of a business process, comprising:

a processor; and

one or more memory devices communicatively coupled with the processor and the one or more memory devices storing instructions to:

receive a request to execute a business process;

determine an optimal number of threads for executing the business process by a thread optimization model; and

iteratively distribute one or more computations in the determined optimal number of threads by an inter-thread optimization model, comprising:

determining a time required to generate a first thread from the optimal number of threads, and a total time required to execute one or more computations in the generated first thread; and

partitioning the one or more computations in the generated first thread into one or more time slots, wherein the one or more time slots are at least equal to the time required to generate the first thread; and

based on the determined optimal number of threads and the iterative distribution of the one or more computations, optimize the execution of the business process.

8. The computer system of claim 7 , wherein determining the optimal number of threads for executing the business process by the thread optimization model, comprises:

calculating a total time required to execute one or more computations associated with the business process by iteratively incrementing a value of a thread count for executing the business process; and

for each iteration, comparing the calculated total time and a corresponding value of the thread count to determine the optimal number of threads for executing the business process.

9. The computer system of claim 8 , wherein the calculated total time corresponds to a lowest total time required for executing the one or more computations associated with the business process.

10. The computer system of claim 7 , wherein iteratively distributing the one or more computations in the determined optimal number of threads by inter-thread optimization model, comprises:

determining a time required to generate a first thread from the optimal number of threads, and a total time required to execute the one or more computations in the generated first thread; and

partitioning the one or more computations in the optimal number of threads into one or more time slots, wherein the one or more time slots are equal to the time required to generate the first thread.

11. The computer system of claim 10 , further comprising: releasing the last thread from the optimal number of threads upon determining that the one or more computations corresponding to the last thread are iteratively distributed between a remaining optimal number of threads.

12. The computer system of claim 7 , wherein the total time required to execute the one or more computations is based on the one or more computations in one or more threads corresponding to the determined optimal number of threads.

13. A non-transitory computer readable storage medium tangibly storing instructions, which when executed by a computer, cause the computer to execute operations comprising:

receive a request to execute a business process;

determine an optimal number of threads for executing the business process by a thread optimization model; and

iteratively distribute one or more computations in the determined optimal number of threads by an inter-thread optimization model, comprising:

determining a time required to generate a first thread from the optimal number of threads, and a total time required to execute one or more computations in the generated first thread; and

partitioning the one or more computations in the generated first thread into one or more time slots, wherein the one or more time slots are at least equal to the time required to generate the first thread; and

based on the determined optimal number of threads and the iterative distribution of the one or more computations, optimize the execution of the business process.

14. The non-transitory computer readable storage medium of claim 13 , wherein determining the optimal number of threads for executing the business process by the thread optimization model, comprises:

calculate a total time required to execute one or more computations associated with the business process by iteratively incrementing a value of a thread count for executing the business process; and

for each iteration, compare the calculated total time and a corresponding value of the thread count to determine the optimal number of threads for executing the business process.

15. The non-transitory computer readable storage medium of claim 14 , wherein the calculated total time corresponds to a lowest total time for executing the one or more computations associated with the business process.

16. The non-transitory computer readable storage medium of claim 13 , wherein iteratively distributing the one or more computations in the determined optimal number of threads by inter-thread optimization model, comprises:

determine a time required to generate a first thread from the optimal number of threads, and a total time required to execute the one or more computations in the generated first thread; and

partition the one or more computations in the optimal number of threads into one or more time slots, wherein the one or more time slots are equal to the time required to generate the first thread.

17. The non-transitory computer readable storage medium of claim 16 , further storing instructions, which when executed by a computer, cause the computer to execute operations comprising: release the last thread from the optimal number of threads upon determining that the one or more computations corresponding to the last thread are iteratively distributed between a remaining optimal number of threads.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2015
From: SREEDHARAN, UNMESH
To: SAP SE
Reel/Frame 034804/0874 →
Continuity (1)
Related Publication 20160110217A1 · Apr 21, 2016