DXML(3dxml) — Subroutines
Digital
Name
dxml − A library of linear algebra and signal processing routines
Description
Digital Extended Math Library (DXML) for Digital UNIX is a set of computationally intensive mathematical subroutines that is optimized for Alpha AXP platforms. DXML includes four component libraries covering the areas of:
•Basic Linear Algebra (BLAS): includes array-math, BLAS 1, BLAS 1E, BLAS 1S, BLAS 2 and BLAS 3.
•Linear and Eigen System Solvers (LAPACK)
•Sparse Linear System Solvers: includes direct and iterative solvers
•Signal Processing: includes FFTs, cos/sin transforms, convolution, correlations and digital filters
Most routines are available in both real and complex versions, as well as in both single and double precision.
Further details about DXML are provided in the manpages for the following sub-components:
Sub-componentFunction
array-math (3dxml)Standard math functions operating on arrays
blas1 (3dxml)Vector-vector linear algebra subprograms
blas1e (3dxml)Enhancements to BLAS 1
blas1s (3dxml)Sparse version of BLAS 1
blas2 (3dxml)Matrix-vector linear algebra subprograms
blas3 (3dxml)Matrix-matrix linear algebra subprograms
lapack (3dxml)Dense linear system solvers and eigensolvers
iterative-solvers (3dxml)Sparse iterative linear system solvers
skyline-solvers (3dxml)Direct solver for skyline matrices
signal-processing (3dxml)FFTs, cos/sin transforms, convolution, correlation, filters
random-numbers (3dxml)Random number generator subprograms
sorts (3dxml)Sort subprograms
Parallel routines
DXML includes a parallel version of the library for SMP configuration. The parallel library contains the exact same set of subroutines with the same name and calling standards with a subset of the routines parallelized to take advantage of additional CPUs. The following routines are parallelized in this version of DXML:
{S,D,C,Z}GEMV BLAS2
{S,D,C,Z}GEMM BLAS3
{S,D,C,Z}GETRF LAPACK
{S,D,C,Z}POTRF
{S,D,C,Z}FFT Signal Processing - 1D
{S,D,C,Z}FFT_APPLY
{S,D,C,Z}FFT_INIT
{S,D,C,Z}FFT_EXIT
{S,D,C,Z}FFT_2D Signal Processing - 2D
{S,D,C,Z}FFT_INIT_2D
{S,D,C,Z}FFT_APPLY_2D
{S,D,C,Z}FFT_EXIT_2D
{S,D,C,Z}FFT_3D Signal Processing - 3D
{S,D,C,Z}FFT_INIT_3D
{S,D,C,Z}FFT_APPLY_3D
{S,D,C,Z}FFT_EXIT_3D
DITSOL_DRIVER Iterative Solvers
DITSOL_PBCG
DITSOL_PCG
DITSOL_PCGS
DITSOL_PGMRES
DITSOL_PLSCG
DITSOL_PTFQMR
DMATVEC_GENR
DMATVEC_SDIA
DMATVEC_UDIA
DCREATE_DIAG_GENR
DCREATE_DIAG_SDIA
DCREATE_DIAG_UDIA
DAPPLY_DIAG_ALL
DCREATE_POLY_GENR
DCREATE_POLY_SDIA
DCREATE_POLY_UDIA
DAPPLY_POLY_GENR
DAPPLY_POLY_SDIA
DAPPLY_POLY_UDIA
DSSKYF Skyline Solvers
DUSKYF
Linking with DXML
To compile and link a Fortran program, my_prog.f, that contains calls to DXML routines:
f77 my_prog.f -ldxml
To compile and link a C program, my_prog.c, that contains calls to DXML routines:
cc -migrate my_prog.c -ldxml
By using the -migrate flag you take advantage of the DEC C compilation environment.
To compile and link a Fortran program with the parallel version of DXML:
f77 my_prog.f -ldxmlp
Executing parallel programs
Before executing programs linked with the parallel version of DXML two environment variables need to be set.
The PARALLEL environment variable must be set to a numeric value defining the number of threads to be used. The number of parallel threads is usually equal to the number of processors on the system.
The KMP_STACKSIZE environment variable must be set to a numeric value. KMP_STACKSIZE defines the size of each thread’s private stack. The value must be at least 262144 which defines a 256K byte private stack.
Eg.
> setenv PARALLEL 3
> setenv KMP_STACKSIZE 262144
See Also
array-math (3dxml), blas1 (3dxml), blas1e (3dxml), blas1s (3dxml), blas2 (3dxml), blas3 (3dxml), signal-processing (3dxml), iterative-solvers (3dxml), skyline-solvers (3dxml), random-numbers (3dxml), sorts (3dxml)
DXML release notes
Examples illustrating the use of DXML in /usr/examples/dxml
Digital Extended Math Library for Digital UNIX Reference Manual
LAPACK User’s Guide, E. Anderson, et al., SIAM, 1995.