Components of LINEAL
Below we briefly list the libraries and toolkits used by LINEAL. Note that we do not develop these libraries. They are developed independently by various groups. LINEAL only aims to be provide a consistent Python interface to all these libraries. To learn more about the individual components please refer to related links.
MPI
What it is for?
MPI stands for Message Passing Interface. It is used in the context of parallel computing (separate processes - or workers - exchanging information).
What/who uses it?
MPI is used by PETSc and thus required for using LINEAL.
PETSc
What it is for?
PETSc stands for Portable, Extensible Toolkit for Scientific Computation. It is an ensemble of data structures and routines for large-scale applications on parallel computers. PETSc includes many linear and non linear equation solvers that may be used in application codes. PETSc is specialized in parallel computation and uses direct calls to ATLAS/BLAS/LAPACK for most of the sequential programming tasks.
What/who uses it?
PETSc is used by SLEPc, TAO, and directly by LINEAL.
SLEPc:
What it is for?
SLEPc stands for Scalable Library for Eigenvalue Problem Computations. It is dedicated to computations for large sparse eigenproblems on parallel computers.
What/who uses it?
SLEPc is built on PETSc and can be viewed as an extension of PETSc. PETSc is thus required to use SLEPc.
TAO:
What it is for?
TAO stands for Toolkit for Advanced Optimization. It is designed for large scale optimization problems and parallel computing and is object-oriented. It contains methods for nonlinear least squares, unconstrained and bound-constrained optimization, general nonlinear optimization... TAO provides links to lower level toolkits (such as PETSc) and higher level application frameworks.
What/who uses it?
The current implemetation for TAO uses four objects provided by PETSc, namely vectors, matrices, index sets and linear solvers.
OOQP:
What it is for?
OOQP stands for Object Oriented package for convex Quadratic Programming problems. It provides primal-dual interior point methods with an implementation that is independant from the problem structure.
What/who uses it?
OOQP is an stand alone tool that can by used from C, C++, Matlab. It also has a TAO interface which allows it to be used from within TAO. This is the interface which will be exposed via. LINEAL.
Oblio:
What it is for?
Oblio is a sparse direct solver library for serial and parallel computations. It is an object oriented library written in C++. It is meant to solve problems directly, in contrast to many others library that use iterative methods (such as PETSc).
What/who uses it?
Oblio can either be used stand alone. OOQP uses Oblio as its backend sparse symmetric matrix solver. Thus, Oblio is needed to work with OOQP.
Last modified 2006-11-06 06:42 PM