- Order:
- Duration: 3:00
- Published: 07 Aug 2007
- Uploaded: 14 Feb 2011
- Author: stevebd1
Coarse-grained systems consist of fewer, larger components than fine-grained systems; a coarse-grained description of a system regards large subcomponents while a fine-grained description regards smaller components of which the larger ones are composed.
The terms granularity, coarse, and fine are relative, used when comparing systems or descriptions of systems. An example of increasingly fine granularity: a list of nations in the United Nations, a list of all states/provinces in those nations, a list of all counties in those states, etc.
The terms "fine" and "coarse" are used consistently across fields, but the term "granularity" itself is not. For example, in investing, "more granularity" refers to more positions of smaller size, while photographic film that is "more granular" has fewer and larger chemical "grains".
Fine-grained parallelism means individual tasks are relatively small in terms of code size and execution time. The data is transferred among processors frequently in amounts of one or a few memory words. Coarse-grained is the opposite: data are communicated infrequently, after larger amounts of computation.
The finer the granularity, the greater the potential for parallelism and hence speed-up, but the greater the overheads of synchronization and communication.
In order to attain the best parallel performance, the best balance between load and communication overhead needs to be found. If the granularity is too fine, the performance can suffer from the increased communication overhead. On the other side, if the granularity is too coarse, the performance can suffer from load imbalance.
In reconfigurable computing and in supercomputing these terms refer to the data path width. The use of about one bit wide processing elements like the configurable logic blocks (CLBs) in an FPGA is called fine-grained computing or fine-grained reconfigurability, whereas using wide data paths, such as, for instance 32 bits wide resources, like microprocessor CPUs or data-stream-driven data path units (DPUs) like in a reconfigurable datapath array (rDPA) is called coarse-grained computing coarse-grained reconfigurability.
# address = 200 2nd Ave. South #358, St. Petersburg, FL 33701-4313 USA
or with high granularity, as multiple fields:
# street address = 200 2nd Ave. South #358 # city = St. Petersburg # postal code = FL 33701-4313 # country = USA
or even higher granularity:
# street = 2nd Ave. South # address number = 200 # suite/apartment number = #358 # city = St. Petersburg # state = FL # postal-code = 33701 # postal-code-add-on = 4313 # country = USA
Higher granularity has overheads for data input and storage. This manifests itself in a higher number of objects and methods in the object-oriented programming paradigm or more subroutine calls for procedural programming and parallel computing environments. It does however offer benefits in flexibility of data processing in treating each data field in isolation if required. A performance problem caused by excessive granularity may not reveal itself until scalability becomes an issue.
This text is licensed under the Creative Commons CC-BY-SA License. This text was originally published on Wikipedia and was developed by the Wikipedia community.
He studied composition at the California Institute of the Arts and the University of California, San Diego and is Associate Professor at the University of California, Santa Barbara. He has previously taught at the University of Naples
This text is licensed under the Creative Commons CC-BY-SA License. This text was originally published on Wikipedia and was developed by the Wikipedia community.