Index for cjcoats.github.io

Computational efficiency is environmental models is
affected greatly by two things: (1) that computer memory
is far slower than the processors, and filtered through a
"cache" system; and (2) that the processors are
deeply pipelined and superscalar, attempting to run many
instructions (in various stages of completion) at one time.

This started as a presentation for US EPA's Office of
Research and Development in 2002 when the author was at
MCNC—North Carolina Supercomputing Center, and has
been updated from time to time since. It is amazing just
how well the lessons of that time have held up—the
only thing is that the tendencies noted in 2002 have become
even stronger over time—main memory (and even caches)
is even slower relative to processor-cores, for example

The Models-3 I/O API

The Models-3/EDSS Input/Output Applications
Programming Interface (I/O API) provides the
environmental model developer with an easy-to-learn,
easy-to-use programming library for data storage
and access, available from both Fortran and C. The
I/O API provides a variety of data structure types for
organizing the data, and a set of access routines which
offer selective direct access to the data in terms
meaningful to the modeler, as well as robust error checking
and reporting "behind the scenes".

For example,

Read layer 1 of variable 'OZONE' from 'CONCFILE' for
5:00 PM GMT on July 19, 2018 and put the result
into array A.

The Package for Analysis and Visualization of
Environmental data (PAVE) is a flexible tool to
visualize multivariate gridded environmental datasets.
PAVE Version 3.0 is a new release,
restructured as a stand-alone application, with major
optimizations (after the fashion of Optimizing
Environmental Models, above), with Linux "medium
memory-model support", so that file size, etc., is
essentially limited by available RAM and inherent netCDF
limitations,