Granularity refers to the quantity of computation done in parallel relative to the dimension of the entire program. In parallel computing, granularity is a qualitative determine of the component of computation to communication. According to granularity of the technique, parallel- processing systems can be divided into two groups: fine-grain systems and coarse-grain systems. In fine-grained systems, parallel parts are comparatively little and that means more recurrent communication. They have short calculation to communication ratio and require high statement overhead. In coarse-grained systems parallel parts are comparatively great and that means extra computation and a smaller amount communication. If granularity is also fine it is feasible that the overhead required for communications and synchronization among tasks takes longer than the computation. On some other hand, in coarse-grain parallel systems, comparatively large quantity of computational work is complete. They have elevated computation to communication ratio and entail more opportunity for presentation increase.
The amount of granularity in a system is unwavering by the algorithm practical and the hardware environment in which it runs. On the architecturally neutral system, the granularity doesn't affect the performance of the resulting program. The statement of data required to start a big process may take a substantial amount of time. On the other hand, a huge process will often have minus communication to do during processing. A process may need only a little amount of data to get leaving, but may need to obtain more data to carry on processing, or may require doing a lot of communication with other Processes in order to achieve its processing. In most times the overhead associated with connections and synchronization is high virtual to execution speed so it is advantageous to have common granularity.