liveBook · Manning

Horizontal scaling

As explained in Fast Python: High performance techniques for large datasets

Horizontal scaling is adjusting system capacity by adding or removing computing nodes or equivalent instances that share or distribute the workload.

Horizontal scaling, or scaling out, adds computers to process data or computation that exceeds a single machine’s capacity. Dask supports this approach within the Python analytics ecosystem and can also use a single computer more efficiently. section 10.0

Dask provides a path from local execution to multi-machine computation:

  • Its distributed scheduler can schedule tasks across machines, with implementations for HPC clusters, SSH connections, and cloud providers. section 10.3
  • A local configuration offers the same building blocks without requiring a cluster or cloud access; Dask’s main added value comes when using more than one machine. section 10.3
  • The Mandelbrot image-generation task illustrates Dask’s array interface; combining Dask with Cython or Numba is identified as a more efficient option for very large images. section 10.3

How Fast Python: High performance techniques for large datasets covers it

How deep it goes
Defines scale-out and contrasts it with scale-up, then identifies Dask’s scheduler and larger-than-memory data as central topics.
Examples
Uses Mandelbrot image generation to exercise Dask’s array interface and compares pure Python with Cython or Numba implementations.
What you can do after
Operate Dask’s distributed scheduler locally or schedule tasks across machines using cluster, SSH, or cloud implementations.
How it connects
Connects horizontal scaling with Dask, parallel computing, NumPy, pandas, and distributed scheduling.

Also explained in

Compare how 13 books explain horizontal scaling →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Fast Python: High performance techniques for large datasets. The section links point to the parts of the book it draws on.