Cpe Module IV
Cpe Module IV
Workload
Workload characterization dates back to the early 70’s. Since then, this discipline has evolved
following the evolution of computer architecture. In the early days, computers were mainframes,
and their workloads were basically composed of batch jobs and transactions. The advent of time-
sharing systems and computer networks has changed the approach of the users toward the systems.
This advent, which has been coupled with an increased processing power of the systems and with
the introduction of graphical user interfaces, has opened the systems to new processing
requirements. All this has also led to the development of distributed systems and of client/server
applications. The new services provided on top of Internet, such as the World Wide Web, have
introduced the concept of multimedia workloads. These workloads consist of a mix of different
types of application (e.g., file transfers, real time audio applications) characterized by different
performance requirements on the resources of servers and clients as well as of the networks
The performance of any type of system cannot be determined without knowing the workload, that
is, the requests being processed. Workload characterization consists of a description of the
workload by means of quantitative parameters and functions; the objective is to derive a model
able to show, capture, and reproduce the behavior of the workload and its most important features.
The performance of a computer system depends not only on its design and implementation, but
also on the workload to which it is subjected. Different workloads may lead to different absolute
performance numbers and in some cases to different relative ranking of systems or designs.
Traditionally, the term workload is defined as the set of all inputs (programs, commands, and data)
from the users to the system. Depending on the objective of the performance evaluation study, the
workload may include programs, commands, and data submitted by the users, and also system
programs (compilers, editors, etc) requested by the users.
In computer performance evaluation, a workload is simply: The set of tasks, programs, jobs, or
requests that a computer system processes over a period of time. It represents what the system is
asked to do. A workload is the collection of tasks and requests imposed on a computer system,
defining how system resources are exercised and forming the basis for performance evaluation. A
workload may consist of: Programs or applications, User requests or transactions, Jobs submitted
to the system, Data sizes and access patterns or/ and Arrival rates and execution times.
Workload types categorize computing tasks by their demands, including Transactional High-
volume, short, quick database operations (e.g., banking, e-commerce checkouts), Batch Large,
scheduled data processing jobs, often overnight (e.g., billing, payroll), Analytical Complex queries
on large datasets for business intelligence (e.g., data warehousing, reporting), High-
Performance Computing (HPC) (scientific simulations), Streaming Continuous data ingestion and
processing (e.g., IoT, real-time monitoring), AI/ML Training complex models and serving
predictions (inference), and Web/Microservices (APIs, web apps), plus deployment-specific types
like VMs, Containers, and Serverless, each requiring different resources and optimization
strategies.
Workload Characteristics refers to the demands placed by the requests on the various system
resources and can be described by:
Workload characterization is the process of analyzing, describing, and modeling the workload
imposed on a computer system in order to understand its performance behavior and to support
accurate performance evaluation, capacity planning, and system design. Workload characterization
aims to:
Workload Model
When it comes to load testing, choosing the right workload model is crucial for accurately
simulating real-world user behavior and understanding how your application will perform under
different conditions.
Workload models are a strategy that defines how users interact with your application during a load
test. They help simulate the conditions your application will face in production, allowing you to
identify potential bottlenecks and optimize performance. The choice of workload can significantly
influence the behavior of your tests and the insights you gain from them.
Workload models in computer performance evaluation represent real-world system demands (like
user actions, data volume, request types) as quantifiable patterns to predict performance, ensuring
systems handle expected loads, peak traffic, and user behaviors accurately before deployment,
using key metrics like concurrent users, request frequency, and task mix. These models are built
by collecting real data and applying statistical methods to capture features like burstiness,
correlations, and different user types, moving beyond simple counts to structural models of
workload generators. Examples of workload models includes instruction mix models (early CPU
focus), synthetic workloads (standardized like SPEC benchmarks), kernel benchmarks, and real-
application benchmarks
ii. Another purpose is that when there are some production performance issues detected in the
live environment then workload modelling helps to replicate the same condition to
reproduce the issue in the performance test environment.
iii. Represent Real System Usage: Workload models capture how users and applications
actually use a system, including: Job arrival rates, execution times, resource demands etc.
ensuring performance studies reflect real-world behavior.
iv. Enable Performance Evaluation: They provide input to: Analytical models (e.g., queueing
theory), simulation models, benchmarking experiments etc. Without workload models,
performance results lack meaning.
vi. Facilitate Capacity Planning: They help answer questions such as:
vii. Predict Future Performance: By varying workload parameters, models help predict:
i. System behavior under increased load
viii. Reduce Complexity: Real workloads are complex and unpredictable. Workload models:
i. Abstract essential characteristics
Types of workload
i. Real Workload
A real workload is derived directly from actual usage of a system. It represents real users, real
applications, and real operating conditions, hence, if performance evaluations are made on a
system when executing the actual programs, commands, and data submitted by the user(s) during
a particular time interval, then the performance measures are said to be obtained under real
workload. Consequently, real test workloads can only be used in measurement experiments on real
systems. Examples are Apache web server access logs, E-commerce transaction histories, Mobile
app usage traces and Production ML inference request logs.
Workloads appear in many contexts, and therefore have many different types. To construct a
workload model, the following steps are involved:
1. Understand or define the specific workload to be modeled as well as the objectives of the
workload. For instance, web server workload, java workload, database workloads,
transaction processing workload etc.
2. Choice of suitable instrumentation, that is, use of existing performance/monitoring tools or
construction of ad-hoc ones.
3. Experimental measurement
4. Analysis of workload data
(a) Preliminary analysis
(b) Analysis of the parameter distributions
(c) Sampling
5. Construction of static/dynamic workload model
(a) Static analysis
(b) Dynamic analysis
6. Representative (customize phase). The matching of the model with the type of system
under test.
Model Formulation refers to the process of making judicious choices regarding the assumptions
and structure of simplified representations used to model real-world systems in Earth and Planetary
Sciences. It is the step where our knowledge of a natural system is translated in mathematical form.
It involves two steps: the construction of a conceptual model and the formulation of this conceptual
model into mathematical equations
2) Constructive approach.
The constructive approach is the more fundamental and general. However, readers with less
analytic skill may prefer the template approach. The template approach is essentially a “model in
a can” approach. In this approach, examples of standard applications are illustrated in substantial
detail. If you have a problem that closely resembles one of these “template” models, you may be
able to adjust it to your situation by making modest changes to the template model. The advantage
of this approach is that the user may not need much technical background if there is a template
model that closely fits the real situation.
Parameterization is the process of assigning values to variables within a model in order to ensure
that it is as accurate as feasible or appropriate. In a simulation model as well as the actual values
to be used, there will be some consideration of the appropriate distribution to be used for generating
the values. It is important that we consider the availability of data to assist in parameterizing our
models from the outset of model design and construction.
BENCHMARK
In computing, a benchmark is the act of running a computer program, a set of programs, or other
operations, in order to assess the relative performance of an object, normally by running a number
of standard tests and trials against it. It could also be used absolutely to determine if the system
will perform a given function or not. Benchmarking is usually associated with assessing
performance characteristics of computer hardware, for example, the floating-point operation
performance of a CPU, but there are circumstances when the technique is also applicable to
software. Software benchmarks are, for example, run against compilers or database management
systems and so on. Benchmarks provide a method of comparing the performance of various
subsystems across different chip/system architectures. Benchmark programs are specific programs
written and implemented by the user to test the performance of a given system. Benchmarking is
one part of computer performance evaluation process, which includes qualitative as well as
quantitative considerations.
Cost includes:
(a) Acquisition cost
(b) Installation cost
(c) Operation cost
(d) Training cost
(e) Application development cost
(f) Maintenance cost
Productivity includes:
(a) Cost-performance ratio
(b) Quality of life (i.e interactive access, high speed graphics, powerful editors, debuggers and
on line documentation)
Reliability: This involves how reliable the system is, especially when applications need to run for
several hours and even days.
Performance: Performance measurement helps in pointing out the strength and weaknesses of
current system architecture.
Types of Benchmark
Linpack Benchmark
Linpack uses linear algebra algorithms to solve a set of equations with or without floating-point
operations, using compilers such as Fortran. This implies that it can be used to test both scalar and
vector floating-point performance. This will result in test metrics such as MIPS (million
instructions per second), MFPPS (million floating points per second). The tests represent the
equations by an n x n matrix, i.e 100 x 100, 300 x 300 or 1000 x 1000 with 100 x 100 array being
the standard case. The main routine may be configured for half, single (32 bits), double (64 bits)
or full precision tests. At the centre of LINPACK benchmark is the Double precision AX + Y.
That is, a scalar A is multiplied by a vector X and the vector result is also vectorially added to
vector Y. This procedure which is referred to by the acronym DAXPY is the same procedure for
performing Gaussian elimination in system of linear equation.
Whetstones Benchmark
This is a synthetic benchmark for basic arithmetic operations; used to test performance of mid-size
and small computers.
Dhrystones Benchmark
Developed in 1984 by Reinhold Weicker at Siemens. This kernel contains many procedure calls
and is considered to represent systems programming environments. This is a synthetic benchmark
for system-programming operations; used to test non-numeric performance of mid-size and small
computers.
AIM Benchmark
This program is written in C and is used to test Unix system performance. It is also called AIM
Benchmark Suite VII or AIM7 and was developed by AIM Technology Inc. The tests carried out
by AIM benchmark include disk/file system, database management system, compilers, word
processing, spreadsheet and accounting packages.
SPEC benchmark
Standard Performance Evaluation Corporation (SPEC) developed two benchmarks for testing the
performance of CPU when performing integer and floating-point operations. These are SPECint
and SPECfp.
1. SPECint: This is a computer benchmark specification for CPU’s integer processing power.
It is maintained by the Standard Performance Evaluation Corporation (SPEC). The files
for SPECint are written in a standard programming language, which is then compiled for
each particular CPU architecture and operating system. Thus, the performance measured
is that of the CPU, RAM, and compiler, and does not test I/O networking, or graphics.
2. SPECfp: This is a computer benchmark designed to test the floating-point performance of
a CPU. To compute the SPECfp score, benchmark applications are run on a reference
machine and the time each application requires for completion is recorded as the reference
time. When evaluating the performance of another machine, the benchmark applications
are run on that system and the time the applications required for completion is recorded.
Then the ratio between the recoded time and the reference time is computed.
For example, [Link] application takes 1280 seconds to complete on the AlphaStation
machine, while it takes 1700 seconds on the reference machine. Then, the ratio is:
1700/1280 = 1.328. This implies that AlphaStation machine is 32.8% faster than the
reference machine in running [Link] application.
Multiple Benchmark
We want to summarize the performance of a computer; the easiest way is to use a single number
that can be compared against the numbers of other machines. This typically involves running tests
on the machine and taking some sort of mean; the mean of a set of numbers is the central value
when the set represents fluctuations about that value. There are a number of different ways to
define a mean value; among them the arithmetic mean, the geometric mean, and the harmonic
mean.
An acceptable practice is to evaluate the performance of more than one benchmark program on
more than one computer. From the result obtained, a unit metric characterizing performance can
be obtained. An example from smith, 1988 of three computers computational speed on two
benchmark programs of about 100 floating point operations is shown in the table below. The
computational rates are given in second.
Execution time of two programs on three different computers
Explanations
1. Arithmetic mean: This is the sum of the rates divided by the number of programs.
E.g for Computer1: (100 + 0.1) /2 = 50.05, Computer2: (10 + 1)/2 = 5.5, Computer3: (5 +
5 / 2) = 5
2. Geometric mean: This is the nth root of the product of the rates. Where “n” is the total
number of benchmark programs. E.g for Computer1: √100 ∗ 0.1 = 3.2 , Computer2:
√10 ∗ 1 = 3.2, Computer3: √5 ∗ 5 = 5
3. Harmonic mean: This is the sum of the reciprocals of the rates and the result divided by
the number of programs. Then, the numerator and denominator are interchanged to get the
final result.
E.g for Computer1: 1/100 + 1/0.1 = 1001/100 * 1/2 = 1001/200 = 200/1001 = 0.2 sec
Computer2: 1/10 + 1/1 = 11/10 * 1/2 = 11/20 = 20/11 = 1.8 sec
Computer3: 1/5 + 1/5 = 2/5 * 1/2 = 2/10 = 1/5 = 5/1 = 5 sec
The result of this computation is used to summarize performance expressed as a rate. It is expected
to correspond to the execution time of real programs. One can write a matrix inversion in say
Pascal, C, or BASIC and then test the three programs on three hardware and configurationally
different computers. Using the statistical metrics of arithmetic, geometric, and harmonic mean to
determine the best of the three.
CPU Benchmarks
Berkeley Design Technology, Inc. (BDTI) is a technical services company that has focused
exclusively on Digital Signal Processing since 1991. BDTI provides the industry standard BDTI
Benchmarks™, a proprietary suite of DSP benchmarks. BDTI also develops custom benchmarks
to determine performance on specific applications The benchmarks contain DSP routines such as
FIR filter, IIR filter, FFT, dot- product, and Viterbi decoder.
MediaBench
The MediaBench benchmark suite consists of several applications belonging to image processing,
communications and DSP applications. Examples of applications that are included are JPEG,
MPEG, GSM, G.721 Voice compression, Ghostscript, ADPCM, etc. JPEG is the compression
program for images, MPEG involves encoding/decoding for video transmission, Ghostscript is
an interpreter for the Postscript language, and ADPCM is Adaptive differential pulse code
modulation. The Media Bench is an academic effort to assemble several media processing related
benchmarks.
Java Benchmarks
SPECjbb2000 (Java Business Benchmark) is SPEC's first benchmark for evaluating the
performance of server-side Java. The benchmark emulates an electronic commerce workload in
a 3-tier system. The benchmark contains business logic and object manipulation, primarily
representing the activities of the middle tier in an actual business server. It models a wholesale
company with warehouses serving a number of districts. Customers initiate a set of operations
such as placing new orders and checking the status of existing orders. It is written in Java,
adapting a portable business-oriented benchmark called pBOB written by IBM. Although it is
a benchmark that emulates business transactions, it is very different from the Transaction
Processing Council (TPC) benchmarks. There are no actual clients, but they are replaced by
driver threads. Similarly, there is no actual database access. Data is stored as binary trees of
objects.
The CaffeineMark 2.5 is the latest in the series of CaffeineMark benchmarks. The
benchmark suite analyses Java system performance in eleven different areas, nine of which can
be run directly over the internet. It is almost the industry standard Java benchmark. The
CaffeineMark can be used for comparing appletviewers, interpreters and JIT compilers from
different vendors. The CaffeineMark benchmarks can also be used as a measure of Java
applet/application performance across platforms.
VolanoMark is a pure Java server benchmark with long-lasting network connections and
high thread counts. It can be divided into two parts: server and client, although they are provided
in one package. It is based on a commercial chat server application, the VolanoChat which is
used in several countries world-wide. The server accepts connections from the chat client. The
chat client simulates many chat rooms and many users in each chat room. The client
continuously sends messages to the server and waits for the server to broadcast the messages to
the users in the same chat room. VolanoMark creates two threads for each client connection.
VolanoMark can be used to test both speed and scalability of a system. In speed test, it is run in
an iterative fashion on a single machine. In scalability test, the server and client are run on
separate machines with high-speed network connection.
The Transaction Processing Council (TPC) is a non-profit corporation founded in 1988 to define
transaction processing and database benchmarks and to disseminate objective, verifiable TPC
performance data to the industry. The term transaction is often applied to a wide variety of
business and computer functions. Look at it as a computer function, a transaction could refer to
a set of operations including disk read/writes, operating system calls, or some form of data
transfer from one subsystem to another. TPC regards a transaction as commonly understood in
the business world: a commercial exchange of goods, services, or money. A typical transaction,
as defined by TPC, would include the updating to a database system for such things as inventory
control (goods), airline reservations (services), or banking (money). In these environments, a
number of customers or service representatives input and manage their transactions via a
terminal or desktop computer connected to a database. Typically, the TPC produces benchmarks
that measure transaction processing (TP) and database (DB) performance in terms of how many
transactions a given system and database can perform per unit of time, e.g., transactions per
second or transactions per minute. The TPC benchmarks can be classified into 2 categories, On-
Line Transaction Processing (OLTP) and Decision Support Systems (DSS). OLTP systems are
used in day-to-day business operations (airline reservations, banks), and are characterized by
large number of clients who continually access and update small portions of the database
through short running transactions. Decision support systems are primarily used for business
analysis purposes, to understand business trends, and for guiding future business directions.
Information from the OLTP side of the business is periodically fed into the DSS database and
analyzed. DSS workloads are characterized by long running queries that are primarily read-only
and may span a large fraction of the database. There are four benchmarks that are active, TPC-
C, TPC-W, TPC-R and TPC-H. These benchmarks can be run with different data sizes, or scale
factors. In the smallest case (or scale factor =1), the data size is approximately 1 GB. The earlier
TPC benchmarks, namely TPC-A, TPC-B, and TPC-D have become obsolete.
TPC-C
TPC-C is an OLTP benchmark. It simulates a complete computing environment where a
population of users executes transactions against a database. The benchmark is centered around
the principal activities (transactions) of a business similar to that of a worldwide wholesale
supplier. The transactions include entering and delivering orders, recording payments, checking
the status of orders, and monitoring the level of stock at the warehouses. While the benchmark
portrays the activity of a wholesale supplier, TPC-C is not limited to the activity of any
particular business segment, but rather represents any industry that manages, sells, or distributes
a product or service. TPC-C involves a mix of five concurrent transactions of different types
and complexities, either executed on-line or queued for deferred execution. There are multiple
on-line terminal sessions. The benchmark can be configured to use any commercial database
system such as Oracle, DB2 (IBM) or Informix. Significant disk input and output are involved.
The databases consist of many tables with a wide variety of sizes, attributes, and relationships.
The queries result in contention on data accesses and updates. TPC-C performance is measured
in new-order transactions per minute. The primary metrics are the transaction rate (tpmC) and
price per transaction ($/tpmC).
TPC-H
The TPC Benchmark (TPC-H) is a decision support system (DSS) benchmark. It consists of a
suite of business-oriented ad-hoc queries and concurrent data modifications. The queries and the
data populating the database have been chosen to have broad industry-wide relevance. This
benchmark is modeled after decision support systems that examine large volumes of data, execute
queries with a high degree of complexity, and give answers to critical business questions. There
are 22 queries in the benchmark. The performance metric reported by TPC-H is called the TPC-
H Composite Query-per-Hour Performance Metric and the TPC-H Price/Performance metric.
One may not perform optimizations based on apriori knowledge of queries in TPC-H.
TPC-R
The TPC Benchmark R (TPC-R) is a decision support benchmark similar to TPC-H, but which
allows additional optimizations based on advance knowledge of the queries. It consists of a suite
of business-oriented queries and concurrent data modifications. As in TPC-H, there are 22
queries. The performance metric reported by TPC-R is called the TPC-R Composite Query-
per-Hour Performance Metric and the TPC-R Price/Performance metric.
TPC-W
TPC Benchmark W (TPC-W) is a transactional web benchmark. The workload simulates the
activities of a business oriented transactional web server in an electronic commerce environment.
It supports many of the features of the TPC-C benchmark and has several additional features
related to dynamic page generation with database access and updates. Multiple on-line browser
sessions and on-line transaction processing are supported. Contention on data accesses and updates
are modeled. The performance metric reported by TPC-W is the number of web interactions
processed per second (WIPS). Multiple web interactions are used to simulate the activity of a retail
store, and each interaction is subject to a response time constraint. Different profiles can be
simulated by varying the ratio of browsing and buying i.e. simulating customers who are primarily
browsing and those who are primarily shopping.
SPECweb99 is the SPEC benchmark for evaluating the performance of World Wide Web
Servers. It measures a system's ability to act as a web server. The initial effort from SPEC in
this direction was SPECweb96, but it contained only static workloads, meaning that the requests
were for simply downloading web pages that do not involve any computation. But if one examines
the use of the web, it is clear that many downloads involve computation to generate the
information the client is requesting. Such web pages are referred to as dynamic web pages.
SPECweb99 includes dynamic web pages. The file accesses are made to closely match today’s
real-world web server access patterns. The pages also contain dynamic ad rotation using cookies
and table lookups.
System File Server Version 2.0 (SFS 2.0) is SPEC’s benchmark for measuring NFS (Network
File System) file server performance across different vendor platforms. It contains a workload that
was developed based on a survey of more than 1,000 file servers in different application
environments.
PC Benchmarks
A variety of benchmarks are available, primarily from Ziff Davis, and Bapco to benchmark the
Windows based personal computer. Table 6 lists the most common PC benchmarks. Ziff Davis
Winstone and Bapco SYSMARK are benchmarks that measure overall performance while the
other benchmarks are intended to measure performance of one subsystem such as video or audio
or one aspect such as power.
Popular personal computer benchmarks
Benchmark Description
Business A system-level, application-based benchmark that measures a PC's
Winstone overall performance when running today's top-selling Windows-based
32-bit applications. It runs real 32-bit business applications through a
series of scripted activities and uses the time a PC takes to complete
those activities to produce its performance scores. The suite includes
five Microsoft Office 2000 applications (Access, Excel, FrontPage,
PowerPoint, and Word), Microsoft Project 98, Lotus Notes R5,
NicoMak WinZip, Norton AntiVirus, and Netscape Communicator.
WinBench99 A subsystem-level benchmark that measures the performance of a
PC’s graphics, disk, and video subsystems in a Windows environment.
3DwinBench Tests the bus used to carry information between the graphics
adapter and the processor subsystem. Hardware graphics adapters,
drivers, and enhancing technologies such as MMX/SSE are tested.
CD WinBench99 Measures the performance of a PC’s CD-ROM subsystem, which
includes the CD drive, controller, and driver, and the system processor.
Audio WinBench Measures the performance of a PC’s audio subsystem, which includes
99 the sound card and its driver, the processor, the DirectSound and
DirectSound 3D software, and the speakers.
Battery Mark Measures battery life on notebook computers.
I-bench A comprehensive, c r o s s -platform benchmark that tests the
performance and capability of Web clients. The benchmark provides a
series of tests that measure both how well the client handles features
and the degree to which network access speed affects performance.
Techniques and tools for performance evaluation improve year by year. For instance, performance
monitoring counters were not available to the public until 1997. Benchmarks get updated
almost every year. Those interested in experimental performance evaluation should
continuously monitor the state-of-the-art.