home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / intro_scsl.z / intro_scsl
Encoding:
Text File  |  2002-10-03  |  11.2 KB  |  265 lines

  1.  
  2.  
  3.  
  4. IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))                                                  IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL - Introduction to Scientific Computing Software Library (SCSL)
  10.      routines
  11.  
  12. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  13.      See individual man pages for implementation details
  14.  
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      The SGI Scientific Computing Software Library (SCSL) contains the
  18.      following routines:
  19.  
  20.      *   Signal processing routines (see IIIINNNNTTTTRRRROOOO____FFFFFFFFTTTT(3S) introductory man page)
  21.  
  22.          -  Fast Fourier Transform (FFT) routines
  23.  
  24.          -  Convolution routines
  25.  
  26.          -  Correlation routines
  27.  
  28.      *   Direct linear equation solvers for real and complex sparse systems
  29.          with symmetric non-zero structure, and iterative solvers for real
  30.          sparse systems with arbitrary structure (see the IIIINNNNTTTTRRRROOOO____SSSSOOOOLLLLVVVVEEEERRRRSSSS(3S)
  31.          introductory man page)
  32.  
  33.      *   64-bit thread-safe parallel random number generators (see the
  34.          SSSSRRRRAAAANNNNDDDD66664444(3S) man page)
  35.  
  36.      *   Vector-vector linear algebra subprograms (see IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S)
  37.          introductory man page)
  38.  
  39.          -  Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS)
  40.  
  41.      *   Matrix-vector linear algebra subprograms (see IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S)
  42.          introductory man page)
  43.  
  44.          -  Level 2 Basic Linear Algebra Subprograms (Level 2 BLAS)
  45.  
  46.      *   Matrix-matrix linear algebra subprograms (see IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S)
  47.          introductory man page)
  48.  
  49.          -  Level 3 Basic Linear Algebra Subprograms (Level 3 BLAS)
  50.  
  51.      *   LAPACK routines (see the IIIINNNNTTTTRRRROOOO____LLLLAAAAPPPPAAAACCCCKKKK(3S) introductory man page)
  52.  
  53.      The SCSL routines can be loaded by using the ----llllssssccccssss option or the ----llllssssccccssss____mmmmpppp
  54.      option.  The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-
  55.      processor version of the library.
  56.  
  57.      The multi-processor version of SCSL, libscs_mp, is a Shared Memory (SMP)
  58.      version that is based on libmp. libmp uses IRIX lightweight processes
  59.      (sproc) to implement parallel execution. POSIX threads (pthreads) are
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))                                                  IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      incompatible with sproc calls.  Pthreads and sproc calls have
  75.      fundamentally different characteristics that prevent coexistence, such as
  76.      process identity, memory, and parent-child relationships.  Therefore, a
  77.      program that uses the POSIX threads cannot use the multi-processor
  78.      version of SCSL.
  79.  
  80.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  81.      4 bytes (32 bits). Another version of SCSL is available in which integers
  82.      are 8 bytes (64 bits).  This version allows the user access to larger
  83.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  84.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  85.      only one of the two versions; 4-byte integer and 8-byte integer library
  86.      calls cannot be mixed.
  87.  
  88. NNNNOOOOTTTTEEEESSSS
  89.      Many of the Scientific Library routines are _m_u_l_t_i_t_a_s_k_e_d or _m_u_l_t_i_t_h_r_e_a_d_e_d.
  90.      This means that a program that calls a multitasked routine will run in
  91.      parallel mode and take advantage of multiple processors whenever
  92.      possible, even if the program has not specifically requested
  93.      multitasking.  If a significant percentage of time is spent in the
  94.      routine, this feature can significantly reduce wall-clock time.
  95.  
  96.      The following lists show the routines that are multitasked.  In many
  97.      cases, a real variable (single-precision) routine is paired with its
  98.      complex variable equivalent.
  99.  
  100.      LLLLAAAAPPPPAAAACCCCKKKK rrrroooouuuuttttiiiinnnneeeessss aaaarrrreeee nnnnooootttt lllliiiisssstttteeeedddd....  Most LAPACK routines do not perform
  101.      multiprocessing, but almost all LAPACK routines call Level 2 BLAS and
  102.      Level 3 BLAS that do multiprocessing.
  103.  
  104.      The following are the multitasked Level 2 BLAS routines:
  105.  
  106.           SGEMV         DGEMV        CGEMV         ZGEMV
  107.           SGBMV         DGBMV        CGBMV         ZGBMV
  108.                                      CHEMV         ZHEMV
  109.                                      CHBMV         ZHBMV
  110.                                      CHPMV         ZHPMV
  111.           SSPMV         DSPMV
  112.           STRSV         DTRSV        CTRSV         ZTRSV
  113.  
  114.  
  115.      The following are the multitasked Level 3 BLAS routines:
  116.  
  117.           SGEMM         DGEMM        CGEMM         ZGEMM
  118.                                      CGEMM3M       ZGEMM3M
  119.           STRMM         DTRMM                      ZTRMM
  120.           STRSM         DTRSM        CTRSM         ZTRSM
  121.                                      CHERK         ZHERK
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))                                                  IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      The following are the GEMM-based Level 3 BLAS:
  141.  
  142.           SSYMM         DSYMM        CSYMM         ZSYMM
  143.                                      CHEMM         ZHEMM
  144.           SSYRK         DSYRK
  145.                                      CHERK         ZHERK
  146.           SSYR2K       DSYR2K        CSYR2K        ZSYR2K
  147.                                      CHER2K        ZHER2K
  148.  
  149.  
  150.      All FFT routines are multithreaded for problem sizes in which
  151.      parallelization provides a performance benefit.  Single one-dimensional
  152.      FFTs run in parallel only if the data size exceeds the size of the L2
  153.      cache.  Convolution and correlation routines having two-dimensional input
  154.      sequences are also multithreaded.  See INTRO_FFT(3S) for a list of all
  155.      signal processing routines.
  156.  
  157.      The direct sparse solver routines perform multithreaded factorizations
  158.      and solves of linear systems of equations; the iterative sparse solver is
  159.      also parallelized.  All solver routines are thread-safe, so they will
  160.      operate correctly and use only a single thread if called from a parallel
  161.      region of an OpenMP or lllliiiibbbbmmmmpppp program.
  162.  
  163.    MMMMuuuullllttttiiiipppplllleeee----rrrroooouuuuttttiiiinnnneeee MMMMaaaannnn PPPPaaaaggggeeeessss
  164.      The following data types are used in these routines:
  165.  
  166.      *   Single precision: Fortran "real" data type, C/C++ "float" data type,
  167.          32-bit floating point; these routine names begin with SSSS.
  168.  
  169.      *   Single precision complex: Fortran "complex" data type, C/C++
  170.          "scsl_complex" data type (defined in <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>), C++ STL
  171.          "complex<float>" data type (defined in <<<<ccccoooommmmpppplllleeeexxxx....hhhh>), two 32-bit
  172.          floating point reals; these routine names begin with CCCC.
  173.  
  174.      *   Double precision: Fortran "double precision" data type, C/C++
  175.          "double" data type, 64-bit floating point; these routine names begin
  176.          with DDDD.
  177.  
  178.      *   Double precision complex: Fortran "double complex" data type, C/C++
  179.          "scsl_zomplex" data type (defined in <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>), C++ STL
  180.          "complex<double>" data type (defined in <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>), two 64-bit
  181.          floating point doubles; these routine names begin with ZZZZ.
  182.  
  183.      Often little or no difference exists between these versions, other than
  184.      the data types of some inputs and outputs.  In this case, the routines
  185.      are described on the same man page, and that man page is named after the
  186.      real or complex routine.
  187.  
  188.      The mmmmaaaannnn(1) command can find a man page online by either the real,
  189.      complex, double precision, or double complex name.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))                                                  IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL((((3333SSSS))))
  203.  
  204.  
  205.  
  206.      The following table describes the naming conventions for these routines:
  207.  
  208.      -------------------------------------------------------------
  209.                                             Single        Double
  210.                  Single        Double       Precision     Precision
  211.                  Precision     Precision    Complex       Complex
  212.      -------------------------------------------------------------
  213.      form:       Sname         Dname        Cname         Zname
  214.      example:    SGEMM         DGEMM        CGEMM         ZGEMM
  215.      -------------------------------------------------------------
  216.  
  217.  
  218. NNNNOOOOTTTTEEEESSSS
  219.      SCSL does not currently support reshaped arrays.
  220.  
  221. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  222.      The introductory man pages for each topic: IIIINNNNTTTTRRRROOOO____FFFFFFFFTTTT(3S),
  223.      IIIINNNNTTTTRRRROOOO____SSSSOOOOLLLLVVVVEEEERRRRSSSS(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S),
  224.      IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S), IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S), IIIINNNNTTTTRRRROOOO____LLLLAAAAPPPPAAAACCCCKKKK(3S)
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                                                         PPPPaaaaggggeeee 4444
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.