Levels of Parallelism
Julia offers 3 levels of a parallelism:
- SIMD: Single-Instruction, Multiple Data
- Lets a single instruction calculate multiple things at the same time
- Ex: Multiple multiplications in one CPU instruction
- Threads
- Shared Memory Parallelism
- Small overhead, most share the same memory (multicore processors)
- Processes
- Overhead is much higher
- Can distribute work amongst multiple computers
In addition, Julia can be used with GPGPUs and Xeon Phis