liveBook · Manning

Scalability

As explained in C++ Concurrency in Action, Second Edition

Scalability is the ability of a system or algorithm to increase its capacity as available resources increase.

Scalability describes how well a system uses additional processors to improve execution speed or throughput. A single-threaded program gains no performance from extra processors; ideally, performance rises in proportion to the available processing power. section 8.4 section 8.4.2

Serial work limits the gains: adding processors can speed up parallel work, but not sections where only one thread is useful. Waiting for other threads or I/O can also leave processors idle. section 8.4.2

Assess scalability by checking for common limits:

  • Estimate how much of the program is serial before expecting gains from more processors. section 8.4.2
  • Test across processor configurations: contention that is manageable on a small system can hurt performance on a larger one. section 11.2.6

Compare across workloads and systems

A 24-core system might be expected to run a workload 24 times faster than a single-core system, but serial work could cap the gain at threefold. Data-parallel work can also increase throughput: processing several files concurrently handles more data in the same time, even if each file still takes just as long. section 11.2.6 section 1.2.2

How C++ Concurrency in Action, Second Edition covers it

How deep it goes
Explains serial-versus-parallel limits through Amdahl’s law and identifies waiting and contention as additional constraints.
Examples
Compares single- and 24-core performance, serial-work limits, and processing multiple files concurrently.
What it assumes
Builds on thread division and concurrent data structures while explaining serial and parallel work in context.
What you can do after
Evaluate scalability by comparing performance across processor configurations and checking whether serial work or contention limits gains.
How it connects
Connects scalability to Amdahl’s law, data parallelism, and throughput.

Also explained in

Compare how 27 books explain scalability →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of C++ Concurrency in Action, Second Edition. The section links point to the parts of the book it draws on.