Overview

9. Overview#

We learn how to unleash the full power of our computers. This includes

  • Vectorization: single instructions can operate on multiple data, for example perform four double precision multiplications simultaneously.

  • Pipelining: several vector-instructions can be started per clock cycle, but it takes several cycles to complete. Start new work before results of old work are ready.

  • Caches: getting data from main memory is slow. Caches keep recently used data in fast but small cache memory.

  • Parallelization: most CPUs have several physical cores. Write multi-threaded code to split the work across multiple cores.

Fork and clone github repo ASC-HPC.

This repository contains another github project as a git submodule, which you have to initialize using

git submodule update --init