[Trilinos-Users] Would Trilinos be suitable for this project?

W Van Snyder van.snyder at sbcglobal.net
Mon Oct 5 18:54:09 EDT 2015

I work with an instrument called the Microwave Limb Sounder that was
launched on the NASA EOS Aura satellite in 2004:


It's a passive microwave spectro-radiometer with an antenna that's aimed
at the Earth's limb, and scans in the orbit plane from about 100km above
the limb to the surface, every 26 seconds.  There are 148 integration
periods per scan, and about 1000 spectrometer channels, for a total of
about 500 million measurements per day.

The quantities of interest are temperature, relative humidity,
geopotential height, ice-water content, and the concentrations of minor
constituents of the atmosphere, especially but not limited to those
related to pollution or ozone depletion, altogether about 20 quantities.
Estimates of these quantities are computed on 3500 profiles in the orbit
plane, at 72 pressure levels, giving about 5 million results each day.

The mathematical problem consists firstly in integrating the clear-sky
non-scattering radiative transfer equation along a path through the

dI/ds + alpha I = alpha B

where s is path length, I is radiative intensity, alpha = sum beta_k f_k
is the absorption cross section, beta_k is the absorption coefficient of
the k'th chemical species, f_k is its volume mixing ratio, and B is the
Planck black-body radiation function; beta_k and B depend upon
temperature; f_k does not.  Derivatives of this equation with respect to
f_k and temperature at the points in the profiles are also integrated on
the same path.

These equations are integrated from deep space, through the atmosphere,
to the antenna, at several frequencies, typically far more frequencies
than the number of channels.  The results are averaged using the
laboratory-measured channel response functions, giving power estimates
for each channel, and derivatives with respect to temperatures and
mixing ratios.  The integration paths are determined by the number of
pressure surfaces in the solution, not by the number of integration
periods and their respective antenna pointings.  The solutions (and
derivatives) are then convolved with the antenna response function to
produce model estimates of the instrument response, and derivatives
thereof.  The derivatives form a sparse Jacobian matrix.

The quantities of interest are then computed using a Newton iteration to
calculate a zero (in the least-squares sense) of the difference between
the measured and modeled instrument response, subject to variation of
mixing ratios and temperatures at the points in the profiles.

The parallelization strategy is very simple:  350 instances of the
program are launched, each one on a different core of a small cluster.
Each one gets a chunk of 20 scans of the antenna.  Each chunk begins ten
scans after the previous one, and overlaps five scans with the previous
chunk and five with the next chunk.  The instances do not communicate
with each other.  Linear algebra is not parallelized.  Each instance
spends a few minutes communicating with a master to get its assignment,
spends fifteen hours computing on its own, and then spends a few minutes
communicating its results to the master.

The program is of modest size by today's standards (350,000 lines), but
its structure is tied rigidly to the viewing and reporting geometry:
vertical scans in the orbit plane, and evenly-spaced vertical profiles
in the orbit plane.  We are considering a newer instrument that will
have a more general viewing geometry, and necessarily wish to provide
more general reporting geometries.  We are trying to determine whether
we should modify the existing program, or start over.

Is this the sort of problem that might fit well into the trilinos

Van Snyder
van.snyder at jpl.nasa.gov

More information about the Trilinos-Users mailing list