Difference between Fine-Grained and Coarse-Grained SIMD Architecture

SIMD stands for Single Instruction Multiple Data is actually a class of parallel computers in Flynn’s Classification. It outlines the computers with multiple processing elements that can perform the same operation on multiple data points simultaneously.

And, Granularity is the concept of where systems are broken down into various small parts, we may say that either the system itself or the description/observation of the system. It is actually related when a larger entity is subdivided into various parts. For example, a plot is broken into yards for much finer granularity than just saying a plot.

SIMD (Single Instruction Multiple Data) can be classified as various types but the 2 main and most important types of SIMD are:



(i) Fine-Grained SIMD:
These are actually the detailed description which deals with the much smaller components which are in actual is composed of the much larger components.

(ii) Coarse-Grained SIMD:
These systems are consisting of fewer components which are obviously more than the original one but are much lesser than the Fine-Grained SIMD, but the size of components is much more (high/more) than the fine-grained subcomponents of a system.

Difference between Fine-Grained and Coarse-Grained SIMD Architecture:

S.No. Fine-Grained SIMD Coarse-Grained SIMD
1. Fine Grain SIMD have less computation time then the coarse grain architecture. Coarse Grain SIMD have more computation time then the Fine grain architecture.
2. Here, programs are broken into large number of small tasks. Here, programs are broken into small number of large task.
3 Fine Grain SIMD have much higher level of parallelism then Coarse grain SIMD. Coarse grain SIMD have lower level of parallelism then Fine Grain SIMD.
4. Here, Grain Size is over 1000 instructions. Here, Grain Size in range of 2-500 instructions.
5. Here, the size of subcomponents is much smaller than the Coarse grained. Here, the size of subcomponents is more than the Fine-Grained.
6. Here, two types of parallelism can be obtained –
a) Instruction Level Parallelism
b) Loop Level Parallelism
Here, these two types of parallelism can be obtained –
a) Sub-program
b) Program Level Parallelism
7. In Fine Grain SIMD, Load Balancing is proper. In Coarse Grain SIMD, Load Balancing is improper.
8. Here Parallelism can be detected using compiler. Here Parallelism can’t be detected using compiler.
9. Fine Grain SIMD is a much costlier process than the Coarse Grain SIMD. Coarse Grain SIMD is much cheaper than the Fine Grain SIMD.
10. Fine Grain is the concept of future multi-threaded architectures to be used in the future also. Coarse Grain is in one of the earlier concepts of single-threaded architectures.
11. The Detailed description is further divided into many small subcomponents and makes the processes less complex from the original one and from the coarse-grained also. The Detailed description is divided into large subcomponents and makes the processes less complex than the original one but more complex than Fine-Grained.
12. Examples –
Connection Machine (CM-2), J-Machine, etc.
Examples –
CRAY Y, etc.



My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.