Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Granularity
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Computing== {{See also|Unit in the last place}} ===Parallel computing=== {{See also|Granularity (parallel computing)}} In [[parallel computing]], granularity means the amount of [[computation]] in relation to communication, i.e., the ratio of computation to the amount of communication.{{sfn|Spacey|Luk|Kelly|Kuhn|2012}} 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 is 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.<ref>[http://foldoc.org/granularity FOLDOC]</ref> Granularity disintegrators exist as well and are important to understand in order to determine the accurate level of granularity.<ref>{{cite web |title=Software Architecture: The Hard Parts |language=en |website=Thoughtworks |url=https://www.thoughtworks.com/insights/books/software-architecture-hard-parts |access-date=2023-01-15}}</ref> 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. ===Reconfigurable computing and supercomputing=== {{See also|Embedded Supercomputing}} In [[reconfigurable computing]] and [[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]] [[CPU]]s or data-stream-driven [[reconfigurable computing|data path units]] (DPU]) like in a reconfigurable datapath array ([[rDPA]]) is called coarse-grained computing or coarse-grained reconfigurability.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)