ALP User Documentation  0.8.preview
Algebraic Programming User Documentation
Modules | Files
Transition path

The transition path libraries enable integrating ALP with existing software. More...

Modules

 Solvers
 This exposes a transition path API to the linear system solvers implemented in ALP.
 
 SpBLAS
 An SpBLAS implementation enabled by ALP/GraphBLAS.
 
 SparseBLAS
 A SparseBLAS implementation enabled by ALP/GraphBLAS.
 

Files

file  blas_sparse.h
 This is the ALP implementation of a subset of the NIST Sparse BLAS standard.
 
file  blas_sparse_vec.h
 This is an ALP-specific extension to the NIST Sparse BLAS standard to support sparse vectors.
 
file  kml_iss.h
 Provides the KML_SOLVER interface for sparse solvers.
 
file  solver.h
 Defines the solver transition path API.
 
file  spblas_impl.h
 Provides the ALP implementation of a subset of the de-facto SpBLAS standard for sparse linear algebra kernels.
 

Detailed Description

The transition path libraries enable integrating ALP with existing software.

It operates by exposing several of its functionalities via established C interfaces and established data formats in order to facilitate the transition of legacy software to ALP. Ideally, users of transition interfaces need only re-compile and link their software; in some cases, trivial modifications might be required to migrate to transition interfaces, e.g., changing the prefix of called functions.

The currently exposed interfaces are:

All of these transition libraries show-case ALP's ability to quickly wrap around external APIs, thus simplifying integration of ALP-backed code with existing software. We do note, however, that the direct use of the native C++ ALP API may lead to higher performance than the use of these transition path interfaces, and that in some cases the legacy interface itself is what makes achieving such higher performance impossible.

The current transition path interfaces are at a prototype stage; in particular, not all primitives in a given standard API are currently implemented. For SparseBLAS in particular, additional support or coverage may freely be requested in GitHub issue #14. For other interfaces, including those we may not cover at all presently, feel welcome to open new issues or to contact the maintainers.