# Knowledge Base & Community Wiki

## Universal Scalability Law

*Please Note: Content for this section was taken from Dr. Neil Gunther’s website PerfDynamics. To see the entire post on Universal Scalability Law please visit PerfDynamics. Copyright for this content including PerfDynamics belongs to Dr. Neil Gunther.*

The original derivation of the *Universal Scalability Law*, or USL, was presented at the 1993 CMG conference by Dr. Neil Gunter. A brief account of its application to parallel processing performance (under the name *super-serial model*) was presented in Chaps. 6 and 14 of Dr. Neil Gunther’s first book titled, “Practical Performance Analyst”.

A more complete derivation with example applications is presented in Chaps. 4-6 of Dr. Neil Gunther’s book titled, “Guerrilla Capacity Planning. According to Dr. Neil Gunther, some reasons why one should understand the USL include:

- A lot of people use the term “scalability” without clearly defining it, let alone defining it quantitatively. Computer system scalability must be quantified. If you can’t quantify it, you can’t guarantee it. The
*universal law of computational scaling*provides that quantification. - One of the greatest impediments to applying queueing-theory models (whether analytic or simulation) is the inscrutability of service times within an application. Every queueing facility in a performance model requires a service time as an input parameter. Without the appropriate queues in the model, system performance metrics like throughput and response time, cannot be predicted. The USL leapfrogs this entire problem by NOT requiring ANY low-level service time measurements as inputs.

The USL (universal scalability law) combines the following essential effects:

- Equal Bang For Buck : α = 0, β = 0
- Cost of sharing resources: α > 0, β = 0
- Diminishing returns from contention: α > 0, β = 0
- Negative returns from incoherency: α >> 0, β > 0

Into a single scalability model that defines the relative capacity C(N) :

**C(N) = N / [ 1 + α (N-1) + β N (N-1) ]**

The three terms in the denominator of eqn. (1) are associated respectively with *the three Cs*:

- the level of
*Concurrency*or ideal parallelism: basically, linear scaling - the level of
*Contention*(with strength α) due to waiting or queueing for shared resources - the level of
*Coherency*(with strength β) due to the delay for data to become consistent (or coherent) by virtue of point-to-point exchange

These parameter values are defined over the range: 0 ≤ α, β < 1. The independent variable N can represent either Software Scalability or Hardware Scalability.

**Software Scalability**: Here, the number of users or load generators (N) is incremented on a fixed hardware configuration. In this case, the number of users acts as the independent variable while the processor configuration remains fixed over the range of user-load measurements. This is the most common situation found in load testing environments where tools like HP’s LoadRunner or Apache JMeter are used.

**Hardware Scalability**: Here, the number of physical processors (N) is incremented in the hardware configuration while keeping the user load per processor fixed. In this case, the number of users executing per processor (e.g., 100 users per processor) is assumed to remain the same for every added processor. For example, on a 32 processor platform you would apply a load of N = 3200 users to the test platform.

The above equation tells us that hardware and application scalability are two sides of the same coin: something not generally recognized. A non-zero value of β is associated with measured throughput that goes retrograde, i.e., decreases with increasing load or platform configuration.

To read the rest of this article or to learn more about Universal Scalability Law please visit *PerfDynamics*.

**Modelling Solution:** VisualizeIT offers access to a bunch of Analytical Models, Statistical Models and Simulation Models. Access to all the Analytical (Mathematical) models is free. We recommend you try out the Analytical models at VisualizeIT which are free to use and drop us a note with your suggestions, input and comments. You can access the VisualizeIT website here and the VisualizeIT modelling solution here –VisualizeIT.