IP Library Granted Patent US 7,509,646
Granted Patent B1
US 7,509,646 · App. 10/669,041 · Granted Mar 24, 2009

Method of managing workloads in a distributed processing system

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 7,509,646
App. No.
10/669,041
Granted
Mar 24, 2009
Kind
B1
Abstract

An embodiment of the present invention is a method for generating a simulated processor load on a system of CPU's, and introducing a controlled workload into the system that is spread evenly across the available CPU resources and may be arranged to consume a precise, controllable portion of the resources.

Claims (35)

1. In a network of affiliated processors (CPUs), a computer system for selecting a subset group of said processors (CPUs) to be utilized for processing a total workload comprising:

(a) means for selecting a subset group of said processors (CPUs) to be utilized for processing, where said subset group is less than or equal to the total number “TN” of the processors (CPU) in said network;

(b) means for distributing the total workload among the selected subset group of processors (CPUs);

(c) means for allocating a percentage of the total workload which is to be allocated to each of the processors (CPUs) in the selected subset group of processors (CPUs), said means (c) for allocating said total workload including:

(c1) means for determining how many processor (CPU) operations are required to generate a workload of “P” percent on each processor (CPU) in the selected subset group of processors (CPUs);

(c2) means for starting a process thread on each processor in said selected subset group of processors (CPUs); and

(c3) means for calculating amount of work (MYWORK) that each processor (CPU) in said selected subset group of processors (CPUs) must do to enable completion of the total workload for the selected subset group of processors (CPUs), said means (c3) for calculating amount of work (MYWORK) including:

(c3a) means for determining a minimum time “M” for one processor (CPU) in the selected subset group of processors (CPUs) to accomplish one work unit (WU);

(c3b) means for determining the number of work units (WU) that each processor in said selected subset group can execute in one second;

(c3c) means for calculating the number of work units (WU) per second needed to execute the total workload (TW);

(c3d) means, operating in parallel, for starting one process thread on each of the processors (CPUs) in the selected subset group;

(c3e) means for determining amount of work each thread should do during a selected 0.1 to 1 sec time period designated as the Time Quantum (TQ) to enable completion of the total workload for the selected subset group of processors (CPUs);

(c3f) means for deriving a Work Quantum (WQ) for each processor (CPU) of the selected subset group where:

WQ =MYWORK× TQ ; and

(c3g) means for indicating when the Work Quantum (WQ) completed has matched the total workload;

(d) means for counting the processing work completed by each processor in the selected subset group of processors (CPUs); and

(e) means for determining when said total workload is fully completed.

2. In a system of multiple processors (CPUs), a method for allocating the workload of application processing to a selected group of processors (CPUs) comprising the steps of:

(a) determining the total number of processors in said system;

(b) specifying a percentage of the total system processor resources to be consumed and designating this as an input parameter;

(c) specifying a subset group of processors that will be utilized to handle applications;

(d) setting each of the processors in said selected subset group to operate at an equal share of the selected input parameter, that is, the total workload divided by the number of processors selected for the utilized subset of processors (CPUs);

(e) setting the minimum time “M” for work units of each processor (CPU) to a large number “L” of microseconds where “M” designates the minimum time for one processor to perform one local work unit;

(f) establishing the time “T” that it takes to perform one processor (CPU) local work unit on any of the processors (CPUs) in the selected subset group of processors (CPUs);

(g) repeating steps (e) and (f) until a consistent average minimum value “M” is obtained;

(h) determining the number of each processor's (CPU's) local work units that can be accomplished by each subset group processor (CPU) per second;

(i) calculating the number of work units per second (w/sec) of the processors in the selected subset group of processors (CPUs) needed to equal the total workload placed on the system;

(j) allocating one thread of a running application to each processor (CPU) in the selected subset group of processors (CPUs);

(k) calculating how much work each of the processors in the selected subset group of processors (CPUs) must do by dividing the number of work units/sec (w/sec) by the number of processors (CPUs) in the selected subset group where this value is designated MYWORK;

(l) choosing a time quantum (TQ) between 0.1 and 1.0 seconds;

(m) determining the amount of work each process thread should do in the time period “TQ” by multiplying the value of MYWORK by the chosen time quantum (TQ) thus to allocate the required workload for each of the processors in the selected subset group of processors (CPUs) where the value of MYWORK*TQ is designated as the work quantum (WQ);

(n) performing, by each processor (CPU) in the selected subset group of processors (CPUs), of the work units (MYWORK) established for each processor (CPU) in the selected subset group of processors (CPUs);

(o) checking to see that each processor (CPU) in the selected subset group of processors (CPUs) has accomplished its designated work quantum (WQ);

(p) utilizing a “Work-Quantum Completed” Counter, shared by all the processors (CPUS) in the selected subset group of processors (CPUs), to update each set of (1 WQ) of work units completed by a processor (CPU) in the selected subset group of processors (CPUs); and

(q) checking said “WQ” Completed Counter to indicate that the work Quantum (WQ) completed value indicates that all the ongoing applications involved have been fully processed.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
PATENT SECURITY AGREEMENT (JUNIOR LIEN) Recorded Oct 13, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023364/0098 →
PATENT SECURITY AGREEMENT (PRIORITY LIEN) Recorded Oct 12, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023355/0001 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023086/0255 →
SECURITY AGREEMENT Recorded Jun 20, 2006
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
To: CITIBANK, N.A.
Reel/Frame 018003/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2003
From: MAW, PATRICIA LYNN; MAW, DAVID GEORGE
To: UNISYS CORPORATION
Reel/Frame 014543/0506 →