Research
Graphs are mathematical abstractions that are useful for solving many types of problems in computer science. Consequently, these abstractions must also be represented in computer programs. A standardized generic interface for traversing graphs is of utmost importance to encourage reuse of graph algorithms and data structures. Part of the Boost Graph Library is an interface for how the structure of a graph can be accessed using a generic interface that hides the details of the graph data structure implementation. This is an ``open'' interface in the sense that any graph library that implements this interface will be interoperable with the BGL generic algorithms and with other algorithms that also use this interface. BGL provides some general purpose graph classes that conform to this interface, but they are not meant to be the ``only'' graph classes; there certainly will be other graph classes better for certain situations. We believe that the main contribution of the BGL is the formulation of this interface. (View project)
The Parallel Boost Graph Library
The Parallel BGL builds on the Boost Graph Library (BGL), offering similar data structures, algorithms, and syntax for distributed, parallel computation that the BGL offers for sequential programs. The Parallel BGL is intended primarily as a research platform, to facilitate both experimentation with and comparison of parallel graph algorithms and to provide solid implementations for solving large-scale graph problems in other application areas. (View project)
MPI provides a portable and high performance message-passing system that enables scalable performance on a wide variety of platforms. Even with such a tool, the complexity of petascale and exascale supercomputers makes it increasingly difficult to take advantage of them. The Compiled MPI project is developing a compiler-driven approach to enable MPI applications to scale to exascale systems with minimal modifications that can be made incrementally over the application's lifetime. This includes new MPI optimization techniques, code annotations, compiler analyses, and compiler transformations. By providing developers with unprecedented levels of compiler and runtime support, this system will enable them to focus on new science and rather than implementation efforts.
The Open MPI Project
Open MPI is a collaboration between the teams of several existing MPI implementations in order to take the collective wisdom and experience from prior work and create a whole new MPI-2 implementation. The LAM Team was one of the founding members; others include Los Alamos National Laboratories (LA-MPI) and the University of Tennessee (FT-MPI). When available, Open MPI will be the successor to the LAM/MPI project. (View project)
The Iterative Template Library
The Iterative Template Library (ITL) is a generic component library that provides iterative methods for solving linear systems. ITL also provides numerious preconditioners which is for MTL. ITL uses the abstract interface of matrix-vector, vector-vector, and vector-scalor operations MTL is default to serve those operations. ITL is able to use other packages such as Blitz++ and BLAS with the same abstract interface provided. (View project)
The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats. (View project)
LAM (Local Area Multicomputer) is an MPI programming environment and development system for heterogeneous computers on a network. With LAM, a dedicated cluster or an existing network computing infrastructure can act as one parallel computer solving one problem. LAM features extensive debugging support in the application development cycle and peak performance for production applications. LAM features a full implementation of the MPI communication standard. (View project)