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 sequence of Multi-Stages which is applied on a Grid with the run() method as an entry-point, see section Composition of Stencils.

Data Store

An object that manages a logical multidimensional array of values. See section Data Store.

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.

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 and Accessors.

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 stored in the Storage Info 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 Module. Also used to define the process layout in an multi-process setup. For this usage, see section Storage Info.

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 Composition of Stencils.

Placeholder

Placeholders allow compile-time naming of Stencil Operator arguments. See section Preparing Arguments: Storage Placeholders.

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 Composition of Stencils.

Stencil Operator

Struct or class that defines a stencil operation. See section Stencil Operators.

Storage Info

This concept describes the dimensions, alignment and layout of a multidimensional array. See section Storage Info.

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.