In general, the quality of being composed of large particles.
In parallel computing, the quality of being composed of large chunks of code that can run in parallel. Also defined as the ratio of computation to communication.
- Low computation/communication ratio
- Small amounts of work done between communication
- Easier to load-balance
- High computation/communication ratio
- Large amounts of work done between communication
- Harder to load-balance
Usually it is better create a coarse program because the overheads of communication and synchronization
are relatively high (cpu
s sit idle
while waiting), although it depends on the algorithm
environment. For example, if you have 500 identical nodes and simply want to split up a large array of independent elements to be processed (once), program coarsely. If you have a heterogeneous
environment with constantly changing requests, program finely to allow for load-balancing (e.g., a large database