\section*{Abstract}
\addcontentsline{toc}{section}{Abstract}  
\textsc{MLD2P4 (Multi-Level Domain Decomposition Parallel Preconditioners Package based on
PSBLAS}) is a package of parallel algebraic multi-level preconditioners.
It implements various versions of one-level additive and of multi-level additive
and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach
is applied to generate coarse-level corrections, so that no geometric background is needed
concerning the matrix to be preconditioned. The matrix is assumed to be square, real
or complex, with a symmetric sparsity pattern. 

MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the
context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
computational framework and can be used in conjuction with the Krylov solvers
available in this framework. MLD2P4 enables the user to easily specify different aspects
of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search
for the ``best'' preconditioner for the problem at hand. 

The package employs object-oriented design techniques in
Fortran~2003, with interfaces to additional third party libraries 
such as UMFPACK, SuperLU, SuperLU\_Dist and MUMPS, that
can be exploited in building multi-level preconditioners. The parallel
implementation is based on a Single Program Multiple Data (SPMD)
paradigm for distributed-memory architectures; the inter-process data
communication is based on MPI and is managed mainly through PSBLAS.

This guide provides a brief description of the functionalities and
the user interface of MLD2P4.
