Glossary


API [Definition quoted from CNET] An API (Application Program Interface) is a series of functions that programs can use to make the operating system do their work. Using Windows APIs, for example, a program can open windows, files, and message boxes --as well as perform more complicated tasks-- by passing a single instruction. Windows has several classes of APIs that deal with telephony, messaging, and other issues.
ASCI ASCI (Accelerated Strategic Computing Initiative) is an initiative of Defense Programs at the U.S. Department of Energy, in collaboration with Lawrence Livermore National Laboratory, Los Alamos National Laboratory and Sandia National Laboratories. The ASCI Project aims at verifying the safety, reliability, and performance of the U.S. nuclear stockpile by shifting from nuclear test based methods to computer simulations based methods. ASCI has evolved into DOE's National Nuclear Security Administration's Advanced Simulation and Computing (ASC) Program.
BLAS The BLAS (Basic Linear Algebra Subprograms) correspond to a collection of subprograms intended for basic linear algebra operations, such as vector-vector operations (level 1 BLAS), matrix-vector operations (level 2 BLAS) and matrix-matrix operations (level 3 BLAS).
Components [Definition quoted from the CCA Forum] A component is a software object, meant to interact with other components, encapsulating certain functionality or a set of functionalities. A component has a clearly defined interface and conforms to a prescribed behavior common to all components within an architecture. Multiple components may be composed to build other components.
Computational Grids "The computational grid" is a term that has been coined by researchers who foresee the wide area networking (national or global) of computational resources advancing to the point that computational cycles can be shared and distributed to the user, as transparently as electricity on the power grid. For the present, we can define a "computational grid" as being any distributed computational network, enabled with software that allows cooperation and the sharing of resources. Ian Foster and Carl Kesselman have edited the book The Grid: Blueprint for a New Computing Infrastructure on the topic.
Expression Templates [Definition quoted from the abstract of Todd Veldhuizen's 1994 paper on expression templates] Expression Templates is a C++ technique for passing expressions as function arguments. The expression can be inlined into the function body, which results in faster and more convenient code than C-style callback functions. This technique can also be used to evaluate vector and matrix expressions in a single pass without temporaries. In preliminary benchmark results, one compiler evaluates vector expressions at 95-99.5 percent efficiency of hand-coded C using this technique (for long vectors). The speed is 2-15 times that of a conventional C++ vector class.
GMRES GMRES (Generalized Minimal Residual) is a Krylov-based iterative method for the solution of linear systems associated to unsymmetric matrices. It was proposed by Saad and Shultz (GMRES: A Generalized Minimal Residual Algorithm for solving Nonsymmetric Linear Systems, SIAM J. Scientific and Stat. Comp., 7:856-869, 1986).
Iterative Solvers Iterative solvers for linear systems Ax = b are based on recurrences of the form xk+1 = xk + pk, where pk, is a correction vector. For example, in the Jacobi iteration, pk, = D-1(b-Axk), where D = diag(A). Other algorithms in this category are CG (Conjugate Gradient), GMRES (Generalized Minimal Residual), Orthomin, Orthodir, MINRES, BiCG, BiCGSTAB, QMR, Steepest Descent, etc.
LAPACK LAPACK (Linear Algebra PACKage) provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. It can be dowloaded from Netlib.
Krylov Methods A Krylov subspace is defined as K(A,q,j) = span(q,Aq,A2q,...Aj-1q). Krylov methods are based on Krylov subspaces and form a class of iterative methods for the solution of linear systems and eigenvalue problems, sparse ones in particular. Selected Krylov algorithms include the Arnoldi based Generalized Minimal RESidual (GMRES) algorithm, and the Lanczos based Conjugate Gradients Squared (CGS), Bi-CGSTAB, and Transpose-Free Quasi-Minimal Residual (TFQMR) algorithms. A preconditioner is typically used with these methods.
MIMD [Definition by Charles Belov, 1997] Multiple Instruction Multiple Data. Multiple computer instructions, which may or may not be the same, and which may or may not be synchronized with each other, perform actions simultaneously on two or more pieces of data. The class of distributed memory MIMD machines is the fastest growing segment of the family of
high-performance computers.
Modules Modules provides an easy mechanism for updating a user's environment especially the PATH, MANPATH, and LD_LIBRARY_PATH environment variables. It is the path maintenance device of choice at NERSC. To access a package (library or executable software), such as PETSc, users typically first run a command such as "module load petsc". More detailed information about modules is available through NERSC's online documentation.
MPI MPI is the Message Passing Interface. The goal of the Message Passing Interface simply stated is to develop a widely used standard for writing message-passing programs. As such the interface should establish a practical, portable, efficient, and flexible standard for message passing. The standard is maintained by the MPI Forum.
Preconditioners Preconditioners are used to enhance the convergence rates of iterative methods. For example, in the Jacobi iteration (defined above), the preconditioner is D-1. There are also block diagonal preconditioners, polynomial preconditioners, and preconditioners based on incomplete LU decompositions, for instance.
SciTL SciTL stands for the Scientific Template Library. At the inception of the former ACTS Toolkit Project, SciTL was expected to form a subset of the ACTS Toolkit, but instead of forming a new subset, tools were added to SciTL. "ACTS Toolkit" and "SciTL" are thus synonymous, and the use of "SciTL" has been deprecated.
SIMD [Definition by Charles Belov, 1997] Single Instruction Multiple Data. A single computer instruction perform the same identical action (retrieve, calculate, or store) simultaneously on two or more pieces of data.
SPMD Single Program Multiple Data. An SPMD program typically maps a problem of size N into p instances of a size N/p.
PVM The Parallel Virtual Machine software package permits a heterogeneous collection of Unix computers hooked together by a network to be used as a single large parallel computer. PVM transparently handles all message routing, data conversion, and task scheduling across a network of incompatible computer architectures. Detailed information is available on the PVM website.

Agenda Project Tools Home