14 Glossary

This glossary defines terms used in Earth system modeling to describe parallel computer architectures, grids and grid decompositions, and numerical and computational methods.

360-day calendar
A calendar in which every one of twelve months has thirty days. See also Calendar, no-leap calendar.

Accumulator
A facility for collecting and averaging data values. Generally accumulators are associated with temporal averaging, although they might be associated with other weighted averaging operations. ESMF does not yet have accumulators.

Application Programming Interface (API)
API refers to the set of routines and types in a software package that are available to its users. It doesn't include private or internal routines or types.

Alarm
Like a real alarm clock, the ESMF Alarm class notifies the user of an event that occurs at a particular time (or set of times). In order to determine whether it is "ringing", an ESMF Alarm is “read” by an explicit application action. An Alarm is associated with a particular Clock.

Application
A coherent computational entity run as a single executable or set of communicating executables. It typically consists of a set of interacting components. See also component.

Array
An ESMF class that represents a multi-dimensional data array. Unlike a native Fortran or C++ array, an ESMF Array can store information about halo points. See also halo.

Background grid
A background grid associates each point in an observational data stream (Location Stream) with a location on a grid. A single grid cell may contain zero or more Location Stream points. See also Location Stream, cell.

BUFR
Binary Universal Form of Representation. This is a World Meteorological Organization data format. See BUFR links.

FieldBundle
The ESMF FieldBundle class represents a set of fields that are associated with the same physical grid and are distributed in the same fashion across the same physical axes. Fields within a FieldBundle may be staggered differently and may have different (non-distributed) dimensions. See also Field, Packed FieldBundle, Loose FieldBundle.

Calendar
The Calendar is an ESMF class that stores a representation of a particular calendar type, such as Gregorian. See also specific calendar types such as 360-day and no-leap.

Cell
A physical location that is specified by both its extent (vertices) and nominal central location, and is associated with a single integer index value or a set of integer index values ( e.g. (i) for 1-d, (i,j) for 2-d, (i,j,k) for 3d ). See also index.

CF Conventions
Climate and Forecast Conventions. These are emerging conventions for expressing Earth science metadata. See the CF home page.

Change Review Board (CRB)
The Change Review Board is the ESMF management body that sets project schedules and priorities. Its Terms of Reference are in the ESMF Project Plan.

Clock
Clock is an ESMF class that tracks the passage of time and reports the current time instant. An ESMF Clock is stepped forward in increments of a time step, and can be associated with one or more Alarms. See also Time, Time Interval, Alarm.

Component
The ESMF Component class represents large-scale computational entities associated with a particular physical process or computational function, such as a land model. Currently ESMF supports Gridded Component and Coupler Component classes. Components may be generic or user-supplied.

Computational domain
For a given DE, the data points that have unique global indices and are updated by the DE. See also exclusive domain, total domain, halo.

Computational resource
Something that appears as a physical or virtual computer resource. Example of computational resources are a CPU, a network connection, a communication API, a protocol, a particular network fabric or a piece of computer memory.

Concurrent execution
Concurrent execution of model components occurs when two or more components, whether in the same or different executables, run simultaneously. See also Sequential execution.

Congruent
If all Fields in a FieldBundle contain the same data type, rank, shape, and relative locations, the FieldBundle is said to be congruent.

Coupler Component
An ESMF Component that includes all data and actions needed to enable communication between two or more Gridded Components. See also component, Gridded Component.

Curvilinear grid
A curvilinear grid is a logically rectangular grid in which coordinates in physical space must be specified by giving the explicit coordinates for each point. Curvilinear grids are often uniform or rectilinear grids that have been warped, for example in order to place a pole over land points so it does not affect the computations performed on an ocean model grid. See also logically rectangular grid, Uniform grid, Rectilinear grid.

Data dependency
The property of a computational operator that defines the data indices required to perform the computation at a point.

Data parallel
The quality of an application that allows roughly the same calculation to be performed by all processors at the same time on the same data set, which is partitioned among multiple memory locations. Single components that do not contain nested components are often data parallel. See also task parallel, SPMD, MPMD.

Data transpose
Rearrangement of data arrays that share the same global domain.

Day of year
The day number in the calendar year. January 1 is day 1 of the year. Day of year expressed in a floating point format is used to express the day number plus the time of day. For example, assuming a Gregorian calendar:

date day of year
10 January 2000, 6Z 10.25
31 December 2000, 18Z 366.75

DE
Short for Decomposition Element.

DELayout
DELayout is the ESMF class that defines the topology of a set of DEs and specifies how the DEs are assigned to PETs in an ESMF Virtual Machine.

Decomposition Element (DE)
A DE is the smallest unit of decomposition of a computational task. DEs are virtual units, not necessarily having a 1-to-1 correspondence to the Persistent Execution Threads (PETs) of a VM or the physical Processing Elements (PEs) in the underlying physical machine. Consequently there are no restrictions on the number of DEs that can be created. The application writer may chose the number of DEs to best match the computational problem and the employed algorithm. A DELayout assigns a topology to Decomposition Elements. See also DELayout.

Deep object
In an environment in which the calling and implementation language of a library are different, deep objects are defined as those whose memory is allocated by the implementation language. See also shallow object.

Distributed Grid
DistGrid is the ESMF class that defines the decomposition of a Grid's global index space across a DELayout. DistGrid objects are contained in an ESMF Grid. See also Grid, DELayout.

Distribution
The function that expresses the relationship between the indices in a Distributed Grid and the elements in a DELayout. See also Distributed Grid, DELayout.

Domain decomposition
The act of grid distribution: creating a DistGrid, and associating grid points with the DistGrid. The dimensionality of the domain decomposition is the same as the dimensionality of the associated DistGrid.

Exact
The word exact is used to denote entities, such as time instants and time intervals, for which truncation-free arithmetic is required.

Exchange grid
A grid whose vertices are formed by the intersection of the vertices of two overlying grids. Each cell in the exchange grid overlies exactly one cell in each grid of the exchange. See also grid, cell.

Exchange Packets
Exchange Packets are a private ESMF class that contains data in an optimal form for data transfers.

Exclusive domain
For a given DE, the set of data points that are not replicated on any other DE. See also total domain, computational domain, halo.

Executable
A program that is under independent control by the operating system.

Export State
The data and metadata that a component can make available for exchange with other components. This may be data at a physical boundary (e.g land-atmosphere interface) or in other cases, it might be the entire model state. See also State, import State.

Field
The ESMF Field class represents a tangible or derived quantity defined within a continuous region of space. The Field class includes the physical grid associated with the quantity and a decomposition that specifies how data associated with points in the physical grid are distributed in computer memory and/or how computational work is divided among threads. A Field also includes a specification of gridpoint staggering and any metadata necessary for a full description of its data. See also Grid.

Framework
We use the term framework to refer to a structured collection of software building blocks that can be used and customized to develop components, assemble them into an application, and run the application.

Generic component
A generic component is one supplied by the framework. The user is not expected to customize or otherwise modify it. ESMF does not currently contain any generic components. See also user component, component.

Generic transform
A generic transform is an operation supplied by the framework, for example, a method that converts gridded data from one supported grid and/or decomposition to another using a specified technique. See also user transform.

Global domain
A global domain refers to the full extent of a DELayout or Grid.

Global reduction
Reduction operations (sum, max, min, etc.) that condense data distributed over a global domain. See also global broadcast.

Global broadcast
Scatter operations on data distributed over a global domain. See also global reduction.

Gregorian
The Gregorian calendar is the most widely used calendar in the world. The calendar's zeroth year is at the birth of Jesus Christ. Years after the origin (anno Domini, or AD) are positive, and before (Before Christ, or BC) are negative. Several corrections (leap year, 100 year, 400 year) are necessary to keep the calendar aligned with solar cycles. See also Calendar.

GRIB
The GRid in Binary Data format from the World Meteorological Organization. This format is frequently used by operational weather centers. See the GRIB home page, and GRIB2 reference guide.

Grid
The discrete division of space associated with a particular coordinate system. The ESMF Grid class contains coordinate, domain decomposition, and memory organization information required to manipulate Fields, as well as to create and execute Grid transforms. See also Distributed Grid, DELayout.

Grid staggering
A descriptor of relative locations of scalar and vector data on a structured grid. On different staggered grids, vector data may lie at cell faces or vertices, while scalar data may lie in the interior.

Grid topology
Description of data connectivities for a grid.

Grid union
The formation of a new grid by taking the union of the vertices of two input grids. See also Grid.

Gridded Component
An ESMF class that represents a component that is associated with one or more grids. No requirements may be placed on the physical content of a Gridded Component's data or on the nature of its computations. See also component, Coupler Component.

Halo
For a given DE, a halo is a set of data points from the computational domains of neighboring DEs that are replicated locally for computational convenience. A halo can be defined as all the data points in a DE's total domain excluding those in its computational domain. See also computational domain, total domain, exclusive domain.

Halo update
A halo update operation involves synchronization of the values of some or all halo points with the current values of those points on other DEs. See also halo.

Import State
The data and metadata that a component requires from other components in order to run. See also State, export State.

Index
An integer value associated with a set of coordinates.

Index space
The space implied by a set of indices. An index space has a defined dimensionality and connectivity.

Index space location
A location within an index space. An index space location may be fractional. See also physical location.

Instantiate
To create an actual instance of a software class. For example, each variable of derived type Field in an ESMF Fortran application is an instance of the Field class.

Interface
Used generally to refer to a set of operations that characterize the behavior of a class or a component. Also used to refer to the name and argument list of a particular method.

Joint Milestone Codeset(JMC)
Joint Milestone Codeset. This is the set of climate, weather and data assimilation applications used as ESMF testbeds during the initial NASA-funded phase of ESMF development.

Joint Specification Team(JST)
The JST is the body of developers and users who collaborate to create the ESMF software. The main form of communication for the JST is the weekly telecon. Terms of Reference are in the ESMF Project Plan.

LocalArray
A LocalArray is the portion of an ESMF Array that resides on a particular DE. See also Array.

LocalTile
A LocalTile is the portion of a grid Tile that resides on a particular DE. See also Tile.

Location Stream
An ESMF class that represents a list of locations with no assumed relationship between these locations. The elements of a Location Stream are not assumed to share the same metadata. Location Streams are not yet implemented. See also background grid.

Logically rectangular grid
A grid in which a set of coordinates (x,y,z, ...) in physical space can be mapped one-to-one to a set of regularly spaced points (i,j,k, ...) in a rectangular logical space, preserving proximate relationships. See also Grid.

Loose FieldBundle
A loose FieldBundle is an ESMF FieldBundle object that contains fields whose data is not contiguous in memory. See also FieldBundle, packed FieldBundle.

Machine model
A generic representation of the computing platform architecture.

Mask
A data field marking a span within a larger data field.

Memory domain
The portion of memory associated with the data on a given DE. The memory domain is always at least as large as the total domain. See also total domain.

Mosaic grid
A mosaic grid is composed of multiple logically rectangular grid tiles that are connected at their edges, for example, a cubed sphere grid. See also grid tile.

MPMD
Multiple Program Multiple Datastream. Multiple executables, any of which could itself be an SPMD executable, executing independently within an application. See also SPMD.

Namelist
An I/O feature supported by Fortran that defines a structured syntax for creating text files of initial variable settings and defines language features for compactly reading the files. The syntax for Namelist files can be found in most Fortran manuals and tutorial texts.

NetCDF
Network Common Data Form. This is a popular I/O library and data format in the Earth sciences. See NetCDF home page.

Node
A node is a set of computational resources that is typically located in close proximity on a computing platform and that is associated with a single shared memory buffer.

No-leap calendar
In this calendar every year uses the same months and days per month as in a non-leap year of a Gregorian calendar. See also Calendar, 360-day calendar.

Packed FieldBundle
A packed FieldBundle is an ESMF FieldBundle object that contains a data buffer with field data arranged contiguously in memory. See also FieldBundle, loose FieldBundle.

Parallel execution
The term parallel execution refers to the execution of a software application on more than one PE. See also serial.

PE
Short for Processing Element.

PET
Short for Persistent Execution Thread.

Persistent Execution Thread (PET)
Provides a path for executing an instruction sequence. A PET has a lifetime at least as long as the associated data objects. The PET is a key abstraction used in the ESMF Virtual Machine.

Physical location
A point in physical space to which a data point pertains. See also index space location.

Platform
The processor hardware, operating system, compiler and parallel library that together form a unique compilation target.

Processing Element (PE)
A Processing Element (PE) is the smallest physical processing unit available on a particular hardware platform.

Rectilinear grid
A rectilinear grid is a logically rectangular grid in which the coordinates in physical space can be fully specified by the spacing of grid points along each grid axis. The gridpoints are located where the coordinate values intersect. The spacing along each axis may vary. See also logically rectangular grid, Uniform grid, Curvilinear grid.

Regrid weight generation methods and applications
The collective term for all ESMF interfaces that compute regridding weights. This covers Fortran methods: ESMF_FieldRegridStore(), ESMF_FieldBundleRegridStore(), ESMF_RegridWeightGen(), and the command line application: ESMF_RegridWeightGen.

Scheduler
An operating system component that assigns system resources (processors, memory, CPU time, I/O channels, etc.) to executables.

Search
Search refers to the process of determining which processors must exchange data (and how much) when regridding between decomposed grids. See also sweep.

Sequential execution
Sequential execution of model components describes the case in which one component waits for another to finish before it begins to run. Components executing sequentially may be in the same or different executables and may have coincident or non-overlapping memory distributions. See Concurrent execution.

Serial Execution The term serial execution refers to the execution of a software application on only one PET. See also parallel execution.

Shallow object
In an environment in which the calling and implementation language of a library are different, shallow objects are defined as those whose memory is allocated by the calling language. See also deep object.

Span
The physical extent associated with a grid.

SPMD
Single Program Multiple Datastream. A single executable, possibly with many components (representing for example the atmosphere, the ocean, land surface) executing serially or concurrently. See also MPMD.

State
The ESMF State class may contain Arrays, FieldBundles, Fields, or other States. It is used to transfer data between components. See also import State, export State.

Sweep
Sweep refers to the regridding process of looping through lists of cells from one grid, hunting for interactions with a specified point or subsegment from the other grid. The type of interaction depends on the regrid method and is either an intersection with an identified subsegment or containment of an identified point. The limitation of the range of cells that must be examined is also considered part of the sweep algorithm. See also search.

System time
Time spent doing system tasks such as I/O or in system calls. May also include time spent running other processes on a multiprocessor system. See also user time, wall clock time.

Task parallel
The quality of an application that allows different calculations to be performed by different processors at the same time on what are usually different data sets. Large-scale task parallelism is often associated with multi-component applications in which each component represents a separate domain or function. Task parallel applications may be run with components executing either sequentially or concurrently, and either in a SPMD or MPMD mode. See also data parallel, SPMD, MPMD, sequential execution, concurrent execution.

Some grids used in Earth system modeling, such as cubed sphere grids, are most naturally represented as a set of logically rectangular grids that are connected at their edges. Following V. Balaji [2006] we refer to each of the logically rectangular grids in a composite grid, or mosaic grid, as a Tile. See also mosaic grid, LocalTile.

Time
Time is an ESMF class that is made up of a time and date and an associated calendar. It may include a time zone. Jan 3rd 1999, 03:30:24.56s, UTC is one example of a Time. See also Calendar.

Time Interval
Time Interval is an ESMF class that represents the period between any two time instants, measured in units, such as days, seconds, and fractions of a second. The periods 2 days and 10 seconds, 86400 and 1/3 seconds and 31104000.75 seconds are all possible values for Time Intervals. Mathematical operations such as addition, multiplication, and subdivision can be applied to Time Intervals, and they can have negative values. See also Time

Total domain
For a given DE, the entirety of the data points allocated, included replicated points from neighboring DEs. See also computational domain, exclusive domain, halo

A logically rectangular grid in which the coordinates in physical space can be completely specified by the two sets of coordinates that define the opposing corner points of the physical span. The coordinates of each point in physical space can be obtained by interpolating from the corner points, using the evenly spaced logical grid to specify evenly spaced grid point locations. See also logically rectangular grid, Rectilinear grid, Curvilinear grid.

User component
A component that is customized or written by the user. All ESMF components are currently user components. See also generic component.

User time
Processor time actually spent executing a PET's code. See also system time, wall clock time.

User transform
A user-supplied method that is used to extend framework capabilities beyond generic transforms. See also generic transform.

Virtual Address Space (VAS)
A term that refers to the address space in which the computer memory is represented and becomes accessible to an executing PET.

VM
Short for Virtual Machine.

Virtual Machine (VM)
An ESMF class that abstracts hardware and operating system details. The VM's responsibilities are resource management and topological description of the underlying compute resources in terms of PETs. In addition the VM provides a transparent, low level communication API.

Wall clock time
Elapsed real-world time (i.e. difference between start time minus stop time). See also system time, user time.

esmf_support@ucar.edu