The L7 Communication Library


Contents:

Overview
Downloads
Citation
Name derivation


Overview

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:

                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

Downloads:


Referencing L7:

When referencing L7 formally, please cite the following:


@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"}


The derivation of the name, L7:

L7 requires double indirection to arrive at the positive interpretation. Jazz musicians used the term "L7" to refer to someone who was uncool, i.e. a square. (The outline of the letter and number form a square.) Quality software development is sometimes referred to as carpentry, and in carpentry, "square" implies quality. Hey, everything has to have a name.