Glossary
- Accessor
A class with an interface to access one element of a data Field and its neighbors. See section Stencil Operators.
- Apply-Method
Main method of a Stencil Operator. Multiple overloads can exist for different Vertical Intervals. See section Apply-Method.
- Axis
A class to generate Vertical Regions of an Iteration Space. See section Stencil Composition.
- Backend
GridTools provides several backends, allowing to run the same code efficiently on different hardware architectures. See section Selecting the Backend.
- Boundary condition
An operation applied to points at the edges/corners/faces of a 3D cube (usually the Global Boundary). See section Boundary Conditions.
- Cache
- Computation
A set of Multi-Stages, see section Stencil Composition.
- Data Store
An object that manages a logical multidimensional array of values. See section Data Store Synopsis.
- Data View
An object that allows to access and modify the elements of a Data Store through a tuple of indices. See section Data View Synopsis.
- Execution Model
Definition of the order of execution of a GridTools Computations. See section Execution Model.
- Extent
The maximum relative offsets along the coordinate axes at which data is accessed around the Iteration Point. See section Stencil Operators.
- Field
Multi-dimensional data representing a physical field, e.g. temperature. Often used as a synonym for multi-dimensional data in general or a Data Store in particular.
- GCL
The GridTools Communication Module. See section Halo Exchanges.
- Global Boundary
Boundary of the Global Domain when using distributed computing. See section Distributed Boundary Conditions.
- Global Domain
The compute domain that is composed from all domains of the subprocesses that participate in a distributed computation. See section Distributed Boundary Conditions.
- Global Parameter
A special 0-dimensional Data Store for read-only data. See section Global Parameters.
- Grid
The grid is the object that defines the Iteration Space. See section Defining the Iteration Space: the Grid.
- Halo
Additional data points around the main compute data. Used for boundary conditions or distributed computations (see Halo Exchanges). Halo information is also in the Data Store to allow correct data alignment. The size of the Halo regions is often described by a Halo Descriptor. For boundary conditions, see sections Boundary Conditions and Distributed Boundary Conditions.
- Halo Descriptor
An object defining the Halo regions of a Computation. See section Halo Descriptor.
- Halo Exchange
Communication of Halo data points between multiple processes. See section Halo Exchanges and section Distributed Boundary Conditions.
- Iteration Point
A triple of indices. The horizontal indices are often denoted by i and j, while k refers to the vertical index. Stencil Operators are written relative to the current iteration point.
- Iteration Space
A set of Iteration Points on which a stencil is applied. See section Defining the Iteration Space: the Grid.
- Layout Map
A (compile time) sequence of integer values, defining the storage layout of a Data Store. See section Storage Library.
- Masked Dimension
A dimension with stride 0.
- Multi-Stage
A partially-order collection of Stages with an associated Vertical Execution Order. See Execution Model and section Stencil Composition.
- Placeholder
Placeholders allow compile-time naming of Stencil Operator arguments. See section The Notion of a Stage.
- Software-Managed Cache
User-defined caching of Fields during a Multi-Stage, which has a Cache Policy and a Cache Type. See section Software-Managed Caches.
- Stage
A Stencil Operator with associated Placeholders. See Execution Model and section Stencil Composition.
- Stencil Operator
Struct or class that defines a stencil operation. See section Stencil Operators.
- Storage Traits
Similar to the Backend, storage traits allow to select a storage type suitable for a given architecture. See, e.g., section Storage Traits.
- Vertical Execution Order
Order of execution (forward, backward, parallel) along the vertical axis on an Iteration Space. See Execution Model.
- Vertical Interval
A compile-time defined subset of an Iteration Space, possibly covering only parts of the vertical iteration range. See section Vertical Regions and Vertical Boundary Conditions.
- Vertical Region
A Vertical Interval with associated run-time vertical iteration range. See section Vertical Regions and Vertical Boundary Conditions.