Granularity (also called graininess) is the degree to which a material or
system
A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its open system (systems theory), environment, is described by its boundaries, str ...
is composed of
distinguishable pieces,
"granules" or
"grains" (metaphorically).
It can either refer to the extent to which a larger entity is subdivided, or the extent to which groups of smaller indistinguishable entities have joined together to become larger distinguishable entities.
Precision and ambiguity
Coarse-grained materials or systems have fewer, larger discrete components than fine-grained materials or systems.
* A coarse-grained description of a system regards large subcomponents.
* A fine-grained description regards smaller components of which the larger ones are composed.
The concepts granularity, coarseness, and fineness are relative; and are used when comparing systems or descriptions of systems. An example of increasingly fine granularity: a list of nations in the
United Nations
The United Nations (UN) is the Earth, global intergovernmental organization established by the signing of the Charter of the United Nations, UN Charter on 26 June 1945 with the stated purpose of maintaining international peace and internationa ...
, a list of all states/provinces in those nations, a list of all cities in those states, etc.
Physics
A ''fine-grained'' description of a system is a detailed, exhaustive, low-level model of it. A ''coarse-grained'' description is a model where some of this fine detail has been smoothed over or averaged out. The replacement of a fine-grained description with a lower-resolution coarse-grained model is called ''coarse-graining''. (See for example
the second law of thermodynamics)
Molecular dynamics
In
molecular dynamics
Molecular dynamics (MD) is a computer simulation method for analyzing the Motion (physics), physical movements of atoms and molecules. The atoms and molecules are allowed to interact for a fixed period of time, giving a view of the dynamics ( ...
,
coarse graining consists of replacing an atomistic description of a biological molecule with a lower-resolution coarse-grained model that averages or smooths away fine details.
Coarse-grained models have been developed for investigating the longer time- and length-scale dynamics that are critical to many biological processes, such as lipid membranes and proteins. These concepts not only apply to biological molecules but also inorganic molecules.
Coarse graining may remove certain
degrees of freedom
In many scientific fields, the degrees of freedom of a system is the number of parameters of the system that may vary independently. For example, a point in the plane has two degrees of freedom for translation: its two coordinates; a non-infinite ...
, such as the vibrational modes between two atoms, or represent the two atoms as a single particle. The ends to which systems may be coarse-grained is simply bound by the accuracy in the dynamics and structural properties one wishes to replicate. This modern area of research is in its infancy, and although it is commonly used in biological modeling, the analytic theory behind it is poorly understood.
Computing
Parallel computing
In
parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
, granularity means the amount of
computation
A computation is any type of arithmetic or non-arithmetic calculation that is well-defined. Common examples of computation are mathematical equation solving and the execution of computer algorithms.
Mechanical or electronic devices (or, hist ...
in relation to communication, i.e., the ratio of computation to the amount of communication.
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. Granularity disintegrators exist as well and are important to understand in order to determine the accurate level of granularity.
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
In
reconfigurable computing
Reconfigurable computing is a computer architecture combining some of the flexibility of software with the high performance of hardware by processing with flexible hardware platforms like FPGA, field-programmable gate arrays (FPGAs). The princip ...
and
supercomputing
A supercomputer is a type of computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly measured in floating-point operations per second (FLOPS) instead of million instruc ...
, 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
A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
is called fine-grained computing or fine-grained reconfigurability, whereas using wide data paths, such as, for instance, 32 bits wide resources, like
microprocessor
A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
CPUs or data-stream-driven
data path units (DPU]) like in a reconfigurable datapath array (
rDPA) is called coarse-grained computing or coarse-grained reconfigurability.
Data and information
The ''granularity'' of data refers to the size in which data fields are sub-divided. For example, a postal address can be recorded, with ''coarse granularity'', as a single field:
# address = 200 2nd Ave S #358, St. Petersburg, FL 33701-4313 USA
or, with ''fine granularity'', as multiple fields:
# street address = 200 2nd Ave S #358
# city = St. Petersburg
# state = FL
# postal code = 33701-4313
# country = USA
or even finer granularity:
# street = 2nd Ave S
# address number = 200
# suite/apartment = #358
# city = St. Petersburg
# state = FL
# postal-code = 33701
# postal-code-add-on = 4313
# country = USA
Finer granularity has
overheads for data input and storage. This manifests itself in a higher number of
object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an a ...
s and
methods in the
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
paradigm or more
subroutine
In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times.
Callable units provide a ...
calls for
procedural programming
Procedural programming is a programming paradigm, classified as imperative programming, that involves implementing the behavior of a computer program as Function (computer programming), procedures (a.k.a. functions, subroutines) that call each o ...
and
parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
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
Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system.
In an economic context, a scalable business model implies that ...
becomes an issue.
Within
database design
Database design is the organization of data according to a database model. The designer determines what data must be stored and how the data elements interrelate. With this information, they can begin to fit the data to the database model.Teorey, T ...
and
data warehouse
In computing, a data warehouse (DW or DWH), also known as an enterprise data warehouse (EDW), is a system used for Business intelligence, reporting and data analysis and is a core component of business intelligence. Data warehouses are central Re ...
design,
data grain can also refer to the smallest combination of columns in a table which makes the rows (also called records) unique.
Data grain: What granularity means in terms of data modeling
/ref>
See also
* Complex system
A complex system is a system composed of many components that may interact with one another. Examples of complex systems are Earth's global climate, organisms, the human brain, infrastructure such as power grid, transportation or communication sy ...
* Complexity
Complexity characterizes the behavior of a system or model whose components interact in multiple ways and follow local rules, leading to non-linearity, randomness, collective dynamics, hierarchy, and emergence.
The term is generally used to c ...
* Cybernetics
Cybernetics is the transdisciplinary study of circular causal processes such as feedback and recursion, where the effects of a system's actions (its outputs) return as inputs to that system, influencing subsequent action. It is concerned with ...
* Dennett's three stances
* Granular computing
Granular computing is an emerging computing paradigm of Data processing, information processing that concerns the processing of complex information entities called "information granulation, granules", which arise in the process of data abstractio ...
* Granularity (parallel computing)
* High- and low-level
High-level and low-level, as technical terms, are used to classify, describe and point to specific goals of a systematic operation; and are applied in a wide range of contexts, such as, for instance, in domains as widely varied as computer scienc ...
* Levels of analysis
* Meta-system
A metasystem or meta-system is a "system about other systems", such as describing, generalizing, modelling, or analyzing the other system(s). It links the concepts of a system
A system is a group of interacting or interrelated elements that ...
* Multiple granularity locking
* Precision (computer science)
In computer science, the precision of a numerical quantity is a measure of the detail in which the quantity is expressed. This is usually measured in bits, but sometimes in decimal digits. It is related to precision in mathematics, which describe ...
* Self-organization
Self-organization, also called spontaneous order in the social sciences, is a process where some form of overall order and disorder, order arises from local interactions between parts of an initially disordered system. The process can be spont ...
* Specificity (linguistics)
In linguistics, specificity is a semantic feature of noun phrases (NPs) that distinguishes between entities/nouns/referents that are unique in a given context and those that are not. Several distinct known factors determine an entity/noun/referent ...
* Systems thinking
Systems thinking is a way of making sense of the complexity of the world by looking at it in terms of wholes and relationships rather than by splitting it down into its parts.Anderson, Virginia, & Johnson, Lauren (1997). ''Systems Thinking Ba ...
Notes
References
*
*{{cite journal
, last1=Spacey , first1=S.
, last2=Luk , first2=W.
, last3=Kelly , first3=P. H. J.
, last4=Kuhn , first4=D.
, year=2012
, title=Improving Communication Latency with the Write-Only Architecture
, journal=Journal of Parallel and Distributed Computing
, volume=72 , issue=12 , pages=1617–1627
, doi=10.1016/j.jpdc.2012.08.007
Statistical mechanics
Business terms