CXML includes a parallel version of the library for SMP configuration. The parallel CXML library is only available on platforms that support SMP, including Tru64 Unix.
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 CXML.
{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 DSS_CREATE Direct Sparse Solvers DSS_DEFINE_STRUCTURE DSS_REORDER DSS_FACTOR_REAL DSS_FACTOR_COMPLEX DSS_SOLVE_REAL DSS_SOLVE_COMPLEX DSSKYF Skyline Solvers (retired) DUSKYF
The following is an example of how to compile and link a Fortran program with the parallel version of CXML:
f77 my_prog.f -lcxmlp` |
In the absence of any action by the user, the parallel version of CXML will create as many threads as there are physical processors available on the system.
However, the user can control the number of threads created (and consequently the number of processors used) by setting the environment variable OMP_NUM_THREADS.
For example, the parallel version of the CXML will create three execution threads if the following command is entered:
> setenv OMP_NUM_THREADS 3
NOTE: Do not set OMP_NUM_THREADS to a value greater than the number of physical processors. This is likely to cause severe performance degradation.