Victor Eijkhout · 3rd edition 2022

The Science of Computing (The Art of HPC, volume 1)

Victor Eijkhout’s textbook on the computational side of scientific computing: how processors and memory shape a computation, parallel computing, floating-point arithmetic and round-off, finite-difference methods for differential equations, and direct and iterative methods for linear systems, including conjugate gradients, GMRES and preconditioning.

Read chapters 1–5 onlineComplete PDF (487 pages, 45 MB)Complete LaTeX source ZIP (96 MB)

Complete English book: 3rd edition (2022), formatted 15 January 2026, 487 pages. The PDF and the source ZIP are copies of the author’s PDF and of his source repository at commit 80ca87f. Chapters 1–5 are also in the author’s HTML edition.

Before you start

Bring linear algebra (B40 — Linear Algebra) and calculus. Chapter 14 reviews the linear algebra the book uses and chapter 16 the background on partial differential equations. Some programming experience helps; the book contains code examples and class projects.

How it fits C110

C110 — Numerical Analysis teaches approximation, linear systems, interpolation, numerical calculus and differential equations from Leon Brin’s Tea Time Numerical Analysis. This book adds what numerical analysis courses often leave to computing courses: how floating-point numbers behave and how round-off errors arise (chapter 3); how finite-difference discretizations of ordinary and partial differential equations lead to large sparse linear systems (chapter 4); how such systems are solved by direct and iterative methods, including conjugate gradients, GMRES and preconditioners (chapter 5); and how this is done efficiently on real machines (chapters 1, 2, 6 and 7).

Chapters

Theory

  1. Chapter 1

    Single-processor Computing

    PDF page 12 · read online

  2. Chapter 2

    Parallel Computing

    PDF page 57 · read online

  3. Chapter 3

    Computer Arithmetic

    PDF page 157 · read online

  4. Chapter 4

    Numerical treatment of differential equations

    PDF page 192 · read online

  5. Chapter 5

    Numerical linear algebra

    PDF page 212 · read online

  6. Chapter 6

    Programming for performance

    PDF page 261

  7. Chapter 7

    High performance linear algebra

    PDF page 281

Applications

  1. Chapter 8

    Molecular dynamics

    PDF page 346

  2. Chapter 9

    Combinatorial algorithms

    PDF page 363

  3. Chapter 10

    Graph analytics

    PDF page 374

  4. Chapter 11

    N-body problems

    PDF page 388

  5. Chapter 12

    Monte Carlo Methods

    PDF page 396

  6. Chapter 13

    Machine learning

    PDF page 400

Appendices

  1. Chapter 14

    Linear algebra

    PDF page 411

  2. Chapter 15

    Complexity

    PDF page 418

  3. Chapter 16

    Partial Differential Equations

    PDF page 422

  4. Chapter 17

    Taylor series

    PDF page 424

  5. Chapter 18

    Minimization

    PDF page 427

  6. Chapter 19

    Random numbers

    PDF page 432

  7. Chapter 20

    Graph theory

    PDF page 438

  8. Chapter 21

    Automata theory

    PDF page 446

  9. Chapter 22

    Parallel Prefix

    PDF page 448

Projects and codes

  1. Chapter 23

    Class projects

    PDF page 454

  2. Chapter 24

    Teaching guide

    PDF page 455

  3. Chapter 25

    Cache simulation and analysis

    PDF page 456

  4. Chapter 26

    Evaluation of Bulk Synchronous Programming

    PDF page 458

  5. Chapter 27

    Heat equation

    PDF page 459

  6. Chapter 28

    The memory wall

    PDF page 463

  7. Chapter 29

    Codes

    PDF page 464

Author, sources and licence

Victor Eijkhout, with Edmond Chow and Robert van de Geijn. Licence: Creative Commons Attribution 4.0; the book’s code is under the MIT licence. Author’s book page · LaTeX source · The Art of HPC series.

Programme integration and study pages: Claude Opus 5.5 (Anthropic).