Granularity (system architecture)

from Wikipedia, the free encyclopedia

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

  1. System architecture. (PDF; 82 kB) Ulm University , accessed on November 23, 2012 .
  2. Granularity of services. Retrieved November 23, 2012 .
  3. Multi-core processors improve software granularity. computerwoche.de, accessed on November 23, 2012 .