ALP User Documentation
0.8.preview
Algebraic Programming User Documentation
|
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. | |
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.