Granularity (system architecture)
Granularity is a term from the field of parallel computer architectures . It denotes the number of subdivisions of an element, e.g. B. a memory .
Technical characteristics
If one looks at the granularity of an architecture, one differentiates between fine, medium and coarse granular.
- A fine-grained architecture is particularly small in its way of working and fast in terms of its processing time. If you want to run processes in parallel on this architecture, only a small amount of data has to be exchanged between the processes for synchronization , but this very often.
- In contrast, there are coarse-grained architectures, the processes of which have a long execution time and therefore only have to exchange a little data for synchronization, since the latter works mostly independently.
- In numerical problems one often uses the term middle granularity , as their parallelism occurs between the often not parallelizable loop iterations in the data structure.
Basically the following applies:
- Machine command level (≤ 1 LOC )
- Block level (some LOC)
- Procedure level (10-100 LOC)
- Thread level (100-1000 LOC)
- Process level (> 1000 LOC)
The usable parallelism increases from the process level to the machine command level.
Since a high volume of communication is to be expected with fine-grained processes or architectures , these will usually be implemented as a shared memory system , while coarse-grained architectures are usually implemented using message passing . In practice this means that a high degree of parallelism can only be achieved with coarse-grained architectures, because only those have independent instructions .
Individual evidence
- ↑ System architecture. (PDF; 82 kB) Ulm University , accessed on November 23, 2012 .
- ↑ Granularity of services. Retrieved November 23, 2012 .
- ↑ Multi-core processors improve software granularity. computerwoche.de, accessed on November 23, 2012 .