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

See Software-Managed 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.