home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / lib / mathlib / libblas / README < prev   
Encoding:
Text File  |  1994-08-02  |  5.1 KB  |  116 lines

  1. ------------------------------------------------------------------------------
  2. |  Copyright (c) 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3. |  All Rights Reserved.
  4. |
  5. |  This library is provided for exclusive use on Silicon Graphics Computers
  6. |
  7. |  This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  8. |  the contents of this file may not be disclosed to third parties, copied or
  9. |  duplicated in any form, in whole or in part, without the prior written
  10. |  permission of Silicon Graphics, Inc.
  11. |  RESTRICTED RIGHTS LEGEND:
  12. |  Use, duplication or disclosure by the Government is subject to restrictions
  13. |  as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  14. |  and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  15. |  successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  16. |  rights reserved under the Copyright Laws of the United States.
  17. ------------------------------------------------------------------------------
  18.  
  19.  
  20. This directory contains the test programs, a demo program and the original
  21. source code for the BLAS (Basic Linear Algebra Subprograms). Optimized and
  22. parallelized versions of the BLAS for SGI platforms are available in a
  23. library, libblas. This library is provided with the SGI compilers and there
  24. are 4 different versions. The BLAS are also available in SGI's Scientific 
  25. Library "complib", which is available with the Fortran 4.0+ compiler.
  26.  
  27.   /usr/lib/libblas.a:           compiled with "-O2 " flags,
  28.                         will run on all systems.
  29.                         This is NOT a parallel version.
  30.  
  31.   /usr/lib/libblas_mp.a:        compiled with "-O2 -mp"
  32.                         will run on all systems.
  33.                         Requires Fortran compilers since it uses 
  34.                 the Fortran MP library.
  35.                         This version will run in parallel on 
  36.                 Power Series systems.
  37.  
  38.   /usr/lib/mips2/libblas.a:     compiled with "-O2 -mips2 " flags,
  39.                         will run only on systems with R4000 CPUs,
  40.                         This is NOT a parallel version.
  41.                        
  42.   /usr/lib/mips2/libblas_mp.a:  compiled with "-O2 -mips2 -mp" flags,
  43.                         will run only on systems with R4000 CPUs,
  44.                 Requires Fortran compilers since it uses
  45.                 the Fortran MP library.
  46.                         This version will run in parallel on
  47.                 Challenge and Onyx systems.
  48.                        
  49.  
  50. BLAS : Basic Linear Algebra Subprograms
  51.        There are three levels of BLAS:
  52.  
  53.        Level 1 BLAS: for vector operations such as  y <- alpha*x + y
  54.        Level 2 BLAS: for matrix vector ops such as  y <- alpha*A*x + beta*y
  55.        Level 3 BLAS: for matrix-matrix ops such as  C <- alpha*A*B + beta*C
  56.  
  57.        Here A, B and C are matrices, x and y are vectors and alpha and beta
  58.        are scalars.
  59.  
  60. ------------------------------------------------------------------------------
  61. WARNING --- Although these routines had been intensively tested,
  62.             it is possible that a few bugs are left.
  63.  
  64. ------------------------------------------------------------------------------
  65.     - The BLAS1 routines are not parallelized, the most important are hand-
  66.     coded in Assembly language. The optimized source code cannot be made 
  67.     available.
  68.  
  69.     - The original Fortran source code is provided for reference. It can
  70.     be found in the directory src_original
  71.  
  72. ------------------------------------------------------------------------------
  73. known problem:
  74.  
  75. Performance may be reduced when arrays are perfectly aligned to cache-size
  76. boundaries. This may happen when "leading" dimensions are powers of two.
  77. For example, it is better to declare a matrice (1025,1024), rather than
  78. (1024,1024).
  79. ------------------------------------------------------------------------------
  80. authors: this SGI version of LIBBLAS was Optimized and Parallelized for SGI 
  81.      computers by 
  82.         Mimi Celis 
  83.         Cheng Liao
  84.         Jean-Pierre Panziera 
  85.         Olivier Schreiber
  86.         Marco Thiele
  87. ------------------------------------------------------------------------------
  88. Send comments/complaints/bug reports to :
  89.  
  90.     Mimi Celis
  91.     Silicon Graphics
  92.     fax   : (415)967-6239
  93.     E-Mail: celis@esd.sgi.com
  94.  
  95. ------------------------------------------------------------------------------
  96. LINPACK is a Fortran set of subroutines which analyze and solve various
  97.     systems of simultaneous linear algebraic equations. It uses a
  98.     subset of the Level 1 BLAS.
  99.  
  100. LAPACK (Linear Algebra PACKage) puts together a new set of linear algebra 
  101.     functions, supposed to supplant both LINPACK and EISPACK packages.
  102.     To achieve maximum efficiency across all types of hardware, the
  103.     LAPACK routines are based on matrix-matrix BLAS 3 routines (e.g.
  104.     DGEMM). This implementation is much more performant than anything 
  105.     based on vector-vector Level 1 BLAS routines (e.g. DAXPY), or even 
  106.     matrix-vector Level 2 BLAS routines (e.g. DGEMV).
  107.  
  108. The directory ludec contains an example program that graphically demonstrates 
  109. the performance difference between the LU factorization in LINPACK, and the
  110. corresponding routine from LAPACK. To create the program, modify the Makefile
  111. to use the correct correct flags and libblas version for your machine. Then, 
  112. simply type make in the ludec directory. Type RUNTEST to run it.
  113. ------------------------------------------------------------------------------
  114.