Overview

8. 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 simulteneously

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

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

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

Fork and clone github repo ASC-HPC.

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

git submodule update --init