Fine-Grained Vs Coarse-Grained
- Fine-grain parallelism (typically loop level)
- can be done incrementally, one loop at a time
- does not require deep knowledge of the code
- a lot of loops have to be parallel for decent speedup
- potentially many synchronization points (at the end of each parallel loop)
-
-
-
-
-
- Coarse-grain parallelism
- make larger loops parallel at higher call-tree level potentially in-closing many small loops
- more code is parallel at once
- fewer synchronization points, reducing overhead
- requires deeper knowledge of the code