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.
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
- Chapter 1
Single-processor Computing
PDF page 12 · read online
- Chapter 2
Parallel Computing
PDF page 57 · read online
- Chapter 3
Computer Arithmetic
PDF page 157 · read online
- Chapter 4
Numerical treatment of differential equations
PDF page 192 · read online
- Chapter 5
Numerical linear algebra
PDF page 212 · read online
- Chapter 6
Programming for performance
PDF page 261
- Chapter 7
High performance linear algebra
PDF page 281
Applications
- Chapter 8
Molecular dynamics
PDF page 346
- Chapter 9
Combinatorial algorithms
PDF page 363
- Chapter 10
Graph analytics
PDF page 374
- Chapter 11
N-body problems
PDF page 388
- Chapter 12
Monte Carlo Methods
PDF page 396
- Chapter 13
Machine learning
PDF page 400
Appendices
- Chapter 14
Linear algebra
PDF page 411
- Chapter 15
Complexity
PDF page 418
- Chapter 16
Partial Differential Equations
PDF page 422
- Chapter 17
Taylor series
PDF page 424
- Chapter 18
Minimization
PDF page 427
- Chapter 19
Random numbers
PDF page 432
- Chapter 20
Graph theory
PDF page 438
- Chapter 21
Automata theory
PDF page 446
- Chapter 22
Parallel Prefix
PDF page 448
Projects and codes
- Chapter 23
Class projects
PDF page 454
- Chapter 24
Teaching guide
PDF page 455
- Chapter 25
Cache simulation and analysis
PDF page 456
- Chapter 26
Evaluation of Bulk Synchronous Programming
PDF page 458
- Chapter 27
Heat equation
PDF page 459
- Chapter 28
The memory wall
PDF page 463
- 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).