FNLMath : Introduction : Using ScaLAPACK, LAPACK, LINPACK, and EISPACK
Using ScaLAPACK, LAPACK, LINPACK, and EISPACK
Many of the codes in the IMSL Library are based on LINPACK, Dongarra et al. (1979), and EISPACK, Smith et al. (1976), collections of subroutines designed in the 1970s and early 1980s. LAPACK, Anderson et al. (1999), was designed to make the linear solvers and eigensystem routines run more efficiently on high performance computers. For a number of IMSL routines, the user of the IMSL Fortran Numerical Library has the option of linking to code which is based on either the legacy routines or the more efficient LAPACK routines.
Table 4 below lists the IMSL routines that make use of LAPACK codes. The intent is to obtain improved performance for IMSL codes by using LAPACK codes that have good performance by virtue of using BLAS with good performance. To obtain improved performance we recommend linking with High Performance versions of LAPACK and BLAS, if available. The LAPACK, codes are listed where they are used. Details on linking to the appropriate IMSL Library and alternate libraries for LAPACK and BLAS are explained in the online README file of the product distribution.
Table 4 — IMSL Routines and LAPACK Routines Utilized Within
Generic Name of IMSL Routine
LAPACK Routines
used when Linking with
High Performance Libraries
LSARG
?GERFS,?GETRF,?GECON, ?=S/D
LSLRG
?GETRF, ?GETRS, ?=S/D
LFCRG
?GETRF,?GECON, ?=S/D
LFTRG
?GETRF, ?=S/D
LFSRG
?GETRS, ?=S/D
LFIRG
?GETRS, ?=S/D
LINRG
?GETRF, ?GETRI ?=S/D
LSACG
?GETRF, GETRS, ?GECON, ?=C/Z
LSLCG
?GETRF, ?GETRS, ?=C/Z
LFCCG
?GETRF, ?GECON, ?=C/Z
LFTCG
?GETRF, ?C/Z
LFSCG
?GETRS, ?C/Z
LFICG
?GERFS,?GETRS, ?=C/Z
LINCG
?GETRF, ?GETRI, ?=C/Z
LSLRT
?TRTRS, ?=S/D
LFCRT
?TRCON, ?=S/D
LSLCT
?TRTRS, ?=C/Z
LFCCT
?TRCON, ?=C/Z
LSADS
?PORFS, ?POTRS, ?=S/D
LSLDS
?POTRF, ?POTRS, ?=S/D
LFCDS
?POTRF, ?POCON, ?=S/D
LFTDS
?POTRF, ?=S/D
LFSDS
?POTRS, ?=S/D
LFIDS
?PORFS, ?POTRS, ?=S/D
LINDS
?POTRF, ?=S/D
LSASF
?SYRFS, ?SYTRF, ?SYTRS, ?=S/D
LSLSF
?SYTRF, ?SYTRS, ?=S/D
LFCSF
?SYTRF, ?SYCON, ?=S/D
LFTSF
?SYTRF, ?=S/D
LFSSF
?SYTRF, ?=S/D
LFISF
?SYRFS, ?=S/D
LSADH
?POCON, ?POTRF, ?POTRS, ?=C/Z
LSLDH
?TRTRS, ?POTRF, ?=C/Z
LFCDH
?POTRF, ?POCON, ?=C/Z
LFTDH
?POTRF, ?=C/Z
LFSDH
?TRTRS, ?=C/Z
LFIDH
?PORFS, ?POTRS, ?=C/Z
LSAHF
?HECON, ?HERFS, ?HETRF, ?HETRS, ?=C/Z
LSLHF
?HECON, ?HETRF, ?HETRS, ?=C/Z
LFCHF
?HETRF, ?HECON, ?=C/Z
LFTHF
?HETRF, ?=C/Z
LFSHF
?HETRS, ?=C/Z
LFIHF
?HERFS, ?HETRS, ?=C/Z
LSARB
?GBTRF, ?GBTRS, ?GBRFS ?=S/D
LSLRB
?GBTRF, ?GBTRS, ?=S/D
LFCRB
?GBTRF, ?GBCON, ?=S/D
LFTRB
?GBTRF, ?=S/D
LFSRB
?GBTRS, ?=S/D
LFIRB
?GBTRS, ?GBRFS, ?=S/D
LSQRR
?GEQP3, ?GEQRF, ?ORMQR, ?TRTRS. ?=S/D
LQRRV
?GEQP3, ?GEQRF, ?ORMQR, ?=S/D
LSBRR
?GEQRF, ?=S/D
LQRRR
?GEQRF, ?=S/D
LSVRR
?GESVD, ?-S/D
LSVCR
?GESVD, ?=C/Z
LSGRR
?GESVD, ?=S/D
LQRSL
?TRTRS, ?ORMQR, ?=S/D
LQERR
?ORGQR, ?=S/D
EVLRG
?GEBAL, ?GEHRD, ?HSEQR ?=S/D
EVCRG
?GEEVX, ?=S/D
EVLCG
?HSEQR, ?GEBAL, ?GEHRD, ?=C/Z
EVCCG
?GEEV, ?=C/Z
EVLSF
?SYEV, ?=S/D
EVCSF
?SYEV, ?=S/D
EVLHF
?HEEV, ?=C/Z
EVCHF
?HEEV, ?=C/Z
GVLRG
?GEQRF, ?ORMQR, ?GGHRD, ?HGEQZ, ?=S/D
GVCRG
?GEQRF, ?ORMQR, ?GGHRD, ?HGEQZ, ?TGEVC, ?=S/D
GVLCG
?GEQRF, ?UMMQR, ?GGHRD, ?HGEQZ,?=C/Z
GVCCG
?GEQRF, ?UMMQR, ?GGHRD, ?HGEQZ,?TGEVC,?=C/Z
GVLSP
?SYGV, ?=S/D
GVCSP
?SYGV, ?=S/D
ScaLAPACK, Blackford et al. (1997), includes a subset of LAPACK codes redesigned for use on distributed memory MIMD parallel computers. A number of IMSL Library routines make use of a subset of the ScaLAPACK library.
Table 5 below lists the IMSL routines that make use of ScaLAPACK codes. The intent is to provide access to the ScaLAPACK codes through the familiar IMSL routine interface. The IMSL routines that utilize ScaLAPACK codes have a ScaLAPACK Interface documented in addition to the FORTRAN 90 Interface. Like the LAPACK codes, access to the ScaLAPACK codes is made by linking to the appropriate library. Details on linking to the appropriate IMSL Library and alternate libraries for ScaLAPACK and BLAS are explained in the online README file of the product distribution.
Table 5 — IMSL Routines and ScaLAPACK Routines Utilized Within
Generic Name of IMSL Routine
ScaLAPACK Routines
used when Linking with
High Performance Libraries
LSARG
P?GERFS,P?GETRF,P?GETRS, ?=S/D
LSLRG
P?GETRF, P?GETRS, ?=S/D
LFCRG
P?GETRF,P?GECON, ?=S/D
LFTRG
P?GETRF, ?=S/D
LFSRG
P?GETRS, ?=S/D
LFIRG
P?GETRS, P?GERFS, ?=S/D
LINRG
P?GETRF, P?GETRI ?=S/D
LSACG
P?GETRF, P?GETRS, P?GERFS, ?=C/Z
LSLCG
P?GETRF, P?GETRS, ?=C/Z
LFCCG
P?GETRF, P?GECON, ?=C/Z
LFTCG
P?GETRF, ?C/Z
LFSCG
P?GETRS, ?C/Z
LFICG
P?GERFS,P?GETRS, ?=C/Z
LINCG
P?GETRF, P?GETRI, ?=C/Z
LSLRT
P?TRTRS, ?=S/D
LFCRT
P?TRCON, ?=S/D
LSLCT
P?TRTRS, ?=C/Z
LFCCT
P?TRCON, ?=C/Z
LSADS
P?PORFS, P?POTRF, P?POTRS, ?=S/D
LSLDS
P?POTRF, P?POTRS, ?=S/D
LFCDS
P?POTRF, P?POCON, ?=S/D
LFTDS
P?POTRF, ?-S/D
LFSDS
P?POTRS, ?-S/D
LFIDS
P?PORFS, P?POTRS, ?=S/D
LINDS
P?GETRF, P?GETRI, ?=S/D
LSADH
P?POTRF, P?PORFS, P?POTRS, ?=C/Z
LSLDH
P?POTRS, P?POTRF, ?=C/Z
LFCDH
P?POTRF, P?POCON, ?=C/Z
LFTDH
P?POTRF, ?=C/Z
LFSDH
P?POTRS, ?=C/Z
LFIDH
P?PORFS, P?POTRS, ?=C/Z
LSLRB
P?GBTRF, P?GBTRS, ?=S/D
LSQRR
P?GEQPF, P?GEQRF, P?ORMQR, P?TRTRS, ?=S/D
LQRRV
P?TRTRS, P?GEQRF, P?ORMQR, ?=S/D
LQRRR
P?GEQRF, P?GEQPF, P?ORMQR, ?=S/D
LSVRR
P?GESVD, ?-S/D
LSGRR
P?GESVD, ?=S/D
LQRSL
P?TRTRS, P?ORMQR, ?=S/D
LQERR
P?ORGQR, ?=S/D