Site Tools


parallel-computing

**This is an old revision of the document!**

Table of Contents

Parallel computing

Parallel computing is a type of software engineering where you use parallelism (e.g. more threads, more processes, more nodes, etc.) to increase the amount of computation power to tackle a problem.

There are essentially three spheres of parallel computing: 1. CPU parallelism (OpenMP), 2. distributed parallelism (MPI), and 3. GPU parallelism (CUDA). I would classify FPGA

Parallel computing is related to performance engineering. This makes sense, because usually increasing parallelism increases performance, but this is not always so.

$$S(\text{N-cores}) = \frac{1}{(1 - P) + \frac{P}{N}}$$

  • $S(N)$ - Speed up
  • $P$ - Fraction of (percentage)
  • $1 - P$ - Fraction of the program that

parallel-computing.1781124825.txt.gz ยท Last modified: by Ivan Janevski