Contents:
Large scale, physics computer simulations designed for
experiments of interest to the US Stockpile Stewardship Program
execute on a variety of high performance computing platforms.
These complex environments are typically composed of
a few hundred to several thousand parallel processes, each with
direct access to tens of gbytes of memory as well as terabytes of
disk space.
Creating computer applications of this sort requires the participation of,
and contributions from, a team of programmers, each of whom brings a
variety of skills to the team. With the goal of implementing
high quality scientific algorithms, the focus for most code developers
on the team must be on the hard science, with as little intrusion of
the computer science issues as is possible while still effectively
addressing them.
For these computing environments, a major computer science issue
is the communication between the distributed memory parallel processes.
Simplifying this requirement while making effective use of the
computing platform can be accomplished through the use of suitable
communication abstraction libraries, such as
PetSC,
UPS,
and Zoltan.
The L7 communication library provides such a capability.
L7 lets the user easily and efficiently collect data onto the
parallel processes upon which that data is needed for subsequent
computation.
The basic outline for its use is illustrated using the following
code segment:
When referencing L7 formally, please cite the following:
CALL L7_SETUP ( ... )
DO I = 1, NUM_CYCLES
! Perform computations, modifying array A:
A = F ( A, B, C, ... )
! Collected the new values for the shadowed data.
CALL L7_UPDATE ( A, ... )
END DO
@TechReport{l7:ug,
Author = "Richard Barrett",
Title = "The L7 Communication Library:User Guide, Reference Manual, and Developer Guide, Version 1.0",
Number = "{LA-UR} 03-2179",
Institution = "Los Alamos National Laboratory",
Year = "2003"}