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.
- 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.
- 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.
- 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.
- 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.
- Binary Universal Form of Representation. This is a World Meteorological Organization
data format. See BUFR links.
- 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,
- 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.
- 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 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.
- 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
- 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.
- 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,
- 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:
||day of year
|10 January 2000, 6Z
|31 December 2000, 18Z
- Short for Decomposition Element.
- 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
- 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
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.
- The function that expresses
the relationship between the indices in a Distributed Grid and the elements
in a DELayout. See also Distributed Grid,
- 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.
- 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
computational domain, halo.
- A program that is under independent control by the operating
- 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.
- 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.
- 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,
- 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
- 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
See also global reduction.
- 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.
- The GRid in Binary Data format from the World Meteorological Organization.
This format is frequently used by operational weather centers. See the
home page, and
- 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,
- 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.
- 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
- Index space location
- A location within an index space. An index space location may be fractional.
See also physical location.
- 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.
- 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.
- A LocalArray is the portion of an ESMF Array that resides on a
particular DE. See also Array.
- 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,
- Machine model
- A generic representation of the computing
- 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.
- Multiple Program Multiple Datastream.
Multiple executables, any of which could itself be an SPMD
executable, executing independently within an application.
See also SPMD.
- 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.
- Network Common Data Form. This is a popular I/O library and data format
in the Earth sciences. See NetCDF home page.
- 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.
- Short for Processing Element.
- 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.
- 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:
and the command line application: ESMF_RegridWeightGen.
- An operating system component
that assigns system resources (processors, memory, CPU time,
I/O channels, etc.) to executables.
- 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.
- The physical extent associated with a grid.
- 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.
- 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 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
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  we refer to each of the
logically rectangular grids in a composite grid, or mosaic grid, as a
Tile. See also mosaic grid,
- 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.
- 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
- Wall clock time
- Elapsed real-world time
(i.e. difference between start time minus stop time).
See also system time, user time.