Document Numbers: B6061-96027 and B6061-96028
Remarks: Released Dcember 2004 with HP MLIB software version9.0.
User’s Guide split into two volumes with this release.
Edition: Sixth
Document Number: B6061-96023
Remarks: Released September 2003 with HP MLIB software version 8.50.
Edition: Fifth
Document Number: B6061-96020
Remarks: Released September 2002 with HP MLIB software version 8.30.
Edition: Fourth
Document Number: B6061-96017
Remarks: Released June 2002 with HP MLIB software version 8.20.
Edition: Third
Document Number: B6061-96015
Remarks: Released September 2001 with HP MLIB software version 8.10.
Edition: Second
Document Number: B6061-96012
Remarks: Released June 2001 with HP MLIB software version 8.00.
Edition: First
Document Number: B6061-96010
Remarks: Released December 1999 with HP MLIB software version
B.07.00. This HP MLIB User’s Guide contains both HP VECLIB and
HP LAPACK information. This document supercedes both the HP MLIB
VECLIB User’s Guide, fifth edition (B6061-96006) and the HP MLIB
LAPACK User’s Guide, sixth edition (B6061-96005).
Notice
Copyright 1979-2004 Hewlett-Packard Development Company. All Rights
Reserved. Reproduction, adaptation, or translation without prior written
permission is prohibited, except as allowed under the copyright laws.
The information contained in this document is subject to change without notice.
Hewlett-Packard makes no warranty of any kind with regard to this material,
including, but not limited to, the implied warranties of merchantability and
fitness for a particular purpose. Hewlett-Packard shall not be liable for errors
contained herein or for incidental or consequential damages in connection with
the furnishing, performance or use of this material.
Hewlett-Packard’s high-performance math libraries (HP MLIB) help you speed
development of applications and shorten execution time of long-running
technical applications.
HP MLIB is a collection of subprograms optimized for use on HP servers and
workstations, providing mathematical software and computational kernels for
engineering and scientific applications. HP MLIB can be used on systems
ranging from single-processor workstations to multiprocessor high-end servers.
HP MLIB is optimized for HP PA-RISC 2.0, Itanium 2, and Opteron
processors. HP MLIB has six components; VECLIB, LAPACK, ScaLAPACK,
SuperLU, SOLVERS, and VMATH.
HP VECLIB contains robust callable subprograms. Together with a subset of
the BLAS Standard subroutines, HP MLIB supports the legacy BLAS, a
collection of routines for the solution of sparse symmetric systems of equations,
a collection of commonly used Fast Fourier Transforms (FFTs), and
convolutions. Although VECLIB was designed for use with Fortran programs,
C programs can call VECLIB subprograms, as described in Appendix A. Refer
to Part 1 of this manual for HP VECLIB information.
Throughout this document there are references to legacy BLAS and BLAS
Standard routines. Legacy BLAS routines include Basic Linear Algebra
Subprograms (BLAS), that is the level 1, 2, and 3 BLAS, as well as the Sparse
BLAS.
A BLAS standardization effort began with a BLAS Technical (BLAST) Forum
meeting in November 1995 at the University of Tennessee. The efforts of the
BLAST Forum resulted in a BLAS Standard specification in 1999. BLAS
Standard routines refer to routines as defined by this BLAS Standard
specification. HP MLIB supports a subset of BLAS Standard routines. Refer to
Chapter 2, “Basic Vector Operations,” and Chapter 3, “Basic Matrix
Operations,” for details about supported subprograms.
Prefacexv
LAPACK
LAPACK
HP Linear Algebra Package (LAPACK) is a collection of subprograms that
provide mathematical software for applications involving linear equations,
least squares, eigenvalue problems, and the singular value decomposition.
LAPACK is designed to supersede the linear equation and eigenvalue packages,
LINPACK and EISPACK. The National Science Foundation, the Defense
Advanced Research Projects Agency, and the Department of Energy supported
the development of the public-domain version of LAPACK, from which the HP
version was derived.
HP LAPACK fully conforms with public domain version 3.0 of LAPACK in all
user-visible usage conventions. Refer to Part 2 of this manual for information
specific to HP LAPACK. To supplement the HP specific information provided in
Part 2 of this document, refer to the standard LAPACK Users’ Guide. You can
access the latest edition of the LAPACK Users’ Guide at the Netlib repository at
the following URL:
http://www.netlib.org/lapack/lug/index..html
ScaLAPACK
ScaLAPACK is a library of high-performance linear algebra routines capable of
solving systems of linear equations, linear least squares problems, eigenvalue
problems, and singular value problems. ScaLAPACK can also handle many
associated computations such as matrix factorizations or estimating condition
numbers.
ScaLAPACK is a public domain software that was developed by Oak Ridge
National Laboratory. It is designed for distributed computing and uses the
Message Passing Interface (MPI) for parallelism. This implementation provides
a version of ScaLAPACK tuned on HP servers and built with HP’s MPI. The
ScaLAPACK library routines are written in Fortran 77 and are callable from
Fortran 90 and C routines. Unlike other MLIB libraries, there is not a version
of ScaLAPACK that assumes all integers are 8 bytes in length.
xvi HP MLIB VECLIB User’s Guide
Refer to Part 3 of this manual for information specific to HP ScaLAPACK. To
supplement the HP specific information provided in Part 3 of this document,
refer to the standard ScaLAPACK Users’ Guide. You can access the latest
edition of the ScaLAPACK Users’ Guide at the Netlib repository at the following
URL:
http://www.netlib.org/scalapack/slug/index..html
SuperLU
This implementation provides the Distributed SuperLU library designed for
distributed memory parallel computers. It was based on the public-domain
SuperLU_DIST, which was developed at the Lawrence Berkeley National Lab
and the University of California at Berkeley.
The library contains a set of subroutines to solve a sparse linear system. The
library is implemented in ANSI C, using HP Message Passing Interface (MPI)
for communication. The library includes routines to handle both real and
complex matrices using double precision. The parallel routine names for the
double-precision real version start with the letters “pd” (e.g. pdgstrf). The
parallel routine names for the double-precision complex version start with
letters “pz” (e.g. pzgstrf). Unlike other MLIB libraries, there is not a version of
SuperLU that assumes all integers are 8 bytes in length.
The routines can be called directly from C applications. They may also be called
from Fortran applications, however, “bridge” routines (in C) must be supplied.
For details about creating bridge routines, please refer to Section 2.9.2 in the
SuperLU User’s Guide available at:
http://www.nersc.gov/~xiaoye/SuperLU
SuperLU
SOLVERS
Solvers is a collection of direct sparse linear system solvers and graph
partitioning routines. Symmetric systems can be solved using SMP parallelism
and structurally-symmetric systems can be solved using out-of-core
functionality. These routines have been optimized for use on Hewlett-Packard
servers. Features are:
Prefacexvii
VMATH
• Sparse symmetric and structurally-symmetric linear equation solutions.
• Sparse symmetric ordinary and generalized eigensystem solutions.
• Out-of-core symmetric and structurally-symmetric linear equation and
eigensystems solutions.
• Full METIS functionality
This implementation provides the METIS Version 4.0.1 library. It is based
on the public-domain METIS, which was developed at the University of
Minnesota, Department of Computer Science, and the Army HPC Research
Center. The library contains a set of subroutines for graph partitioning,
mesh partitioning, and sparse matrix reordering, as well as auxiliary
routines. HP MLIB contains the full METIS functionality as that in the
public domain METIS, however, the routine names are different. HP MLIB
METIS routine names have been prepended with mlib_ to avoid name
conflict on applications and libraries that contain their own local version of
METIS.
For more information about METIS, please refer to:
http://www-users.cs.umn.edu/~karpis/metis/metis/index.html
VMATH
VMATH is a library of vector math routines corresponding to many of the
widely used scalar math routines available with C, C++, and Fortran90.
VMATH is intended for computationally intensive mathematical applications
amenable to a vector programming style.
VMATH provides two libraries: VMATH, whose interface uses 4-byte integers;
and VMATH8, whose interface uses 8-byte integers and is otherwise equivalent
to VMATH. VMATH routines come with both Fortran and C interfaces.
For more detailed information on VMATH as well as subprogram specifications,
please refer to the VMATH chapter in Part 5 of this book. The VMATH man
pages provide a man page for each subprogram.
xviii HP MLIB VECLIB User’s Guide
Purpose and audience
This guide describes the MLIB software library and shows how to use it. This
library provides mathematical software and computational kernels for
applications.
The HP MLIB User’s Guide addresses experienced programmers who:
• Convert, develop, or optimize programs for use on HP servers and
workstations
• Optimize existing software to improve performance and increase
productivity
Purpose and audience
Prefacexix
Organization
Organization
The HP MLIB User’s Guide describes HP MLIB VECLIB in Part 1, HP MLIB
LAPACK in Part 2, HP MLIB ScaLAPACK in Part 3, and HP MLIB Distributed
SuperLU in Part 4.
To learn fundamental information necessary for using the VECLIB library,
read Chapter 1 and the introductory sections of the other chapters. These
sections of background information will help you efficiently use the library
subprograms.
To learn more about the subject of any chapter, refer to the literature cited in
the “Associated documentation” section of each chapter.
Part 1 of this document is organized as follows:
• Chapter 1 introduces general concepts about VECLIB
• Chapter 2 describes basic vector operations included in VECLIB
• Chapter 3 describes basic matrix operations included in VECLIB
• Chapter 4 describes sparse BLAS operations
• Chapter 5 describes the discrete Fourier transforms in VECLIB
• Chapter 6 describes subprograms to compute convolutions and correlations
of data sets
• Chapter 7 describes miscellaneous subprograms to produce random
numbers, sort the elements of a vector in ascending or descending order,
measure time, allocate dynamic memory, and report errors
Part 2 of this document is organized as follows:
• Chapter 8 describes information specific to Hewlett-Packard’s
implementation of LAPACK
• Chapter 16 describes BCSLIB-EXT functionality
Supplemental material is provided as follows:
• Appendix A describes how to call VECLIB and LAPACK subprograms from
within C programs
• Appendix B describes LINPACK subprograms available in HP MLIB
• Appendix C lists parallelized subprograms in VECLIB and LAPACK
• An index is included at the back of the manual
Supplemental information for Part 2 of this HP MLIB User’s Guide, is found in
the LAPACK Users’ Guide.
The LAPACK Users’ Guide is a publication from the Society for Industrial and
Applied Mathematics that provides an introduction to the design of LAPACK as
well as complete specifications for all the driver and computational routines.
You can access the latest edition of the LAPACK Users’ Guide at the Netlib
repository at the following URL:
http://www.netlib.org/lapack/lug
Supplemental information for Part 3 of this HP MLIB User’s Guide, is found in
the ScaLAPACK User’s Guide.
The ScaLAPACK Users’ Guide is a publication from the Society for Industrial
and Applied Mathematics that provides an informal introduction to the design
of ScaLAPACK as well as a detailed description of its contents and a reference
manual. You can access the latest edition of the ScaLAPACK Users’ Guide at
the Netlib repository at the following URL:
http://www.netlib.org/scalapack/slug
Supplemental information for Part 4 of this HP MLIB User’s Guide, is found in
the SuperLU User’s Guide, which is only available online at:
http://www.nersc.gov/~xiaoye/SuperLU
Prefacexxi
Notational conventions
Notational conventions
The following conventions are used in this manual:
Italics
Italics within text indicate mathematical entities used
or manipulated by the program: for example, solve the
n-by-n system of linear equations Ax = b.
Italics within command lines indicate generic
commands, file names, or subprogram names.
Substitute actual commands, file names, or
subprograms for the italicized words. For example, the
command line
f90 prog_name.o
instructs you to type the command f90, followed by the
name of a program or subprogram object file.
UPPERCASE BOLDFACE
UPPERCASE BOLDFACE
Fortran statements indicates Fortran keywords and
subprogram names that must be typed just as they
appear. For example, CALL DAXPY.
within text and in prototype
lowercase boldface
xxii HP MLIB VECLIB User’s Guide
lowercase boldface
generic variable or array names. You should substitute
actual variable or array names. The italicized
mathematical entities and the lowercase boldface
variable and array names usually correspond. For
example, A is a matrix and a is the Fortran array
containing the matrix:
CALL DAXPY (n, a, x, incx, y, incy)
lowercase boldface
ASCII characters that must be typed just as they
appear. For example, the command line
f90 prog_name.o
instructs you to type the command f90, followed by the
name of a program or subprogram object file.
within text indicates Fortran
within command lines indicates
UPPERCASE MONOSPACE
UPPERCASE MONOSPACE indicates Fortran programs.
Brackets ( [ ] )
Square brackets in command examples designate
optional entries.
NOTE
A NOTE highlights important supplemental
information.
Documentation resources
The HP MLIB User’s Guide, the LAPACK Users’ Guide, and the ScaLAPACK
Users’ Guide are available in hardcopy and online formats.
For the HP MLIB User’s Guide, refer to:
http:// www.hp.com/go/mlib
Documentation resources
For the latest edition of the LAPACK Users’ Guide, refer to:
http://www.netlib.org/lapack/lug
For the latest edition of the ScaLAPACK User’s Guide, refer to:
http://www.netlib.org/scalapack/slug
For the latest edition of the SuperLU User’s Guide, refer to:
http://www.nersc.gov/~xiaoye/SuperLU
The following documents provide supplemental information:
• LAPACK Users’ Guide Philadelphia, PA: Society for Industrial and Applied
Mathematics, 1995. This guide provides information on the subprograms
provided with the LAPACK library.
• ScaLAPACK Users’ Guide Philadelphia, PA: Society for Industrial and
Applied Mathematics. This guide provides information on the subprograms
provided with the ScaLAPACK library.
• Parallel Programming Guide for HP-UX Systems. Describes efficient
shared-memory parallel programming techniques using HP compilers.
• Fortran/9000 Programmer’s Guide. Describes features and requirements in
terms of the tasks a programmer might perform. These tasks include how to
compile, link, run, debug, and optimize programs.
Prefacexxiii
Documentation resources
• HP-UX Floating-Point Guide. Describes how floating-point arithmetic is
implemented on HP 9000 systems and discusses how floating-point behavior
affects the programmer.
• HP Fortran 90 Programmer’s Guide. Provides extensive usage information
(including how to compile and link), suggestions and tools for migrating to
HP Fortran 90, and how to call C and HP-UX routines for HP Fortran 90.
• HP Fortran 90 Programmer’s Reference. Provides complete Fortran 90
language reference information. It also covers compiler options, compiler
directives, and library information.
• HP C Programming Guide. Contains detailed discussions of selected C
topics.
• HP C/HP-UX Reference Manual. Presents reference information on the C
programming language as implemented by HP.
• HP aC++ Online Programmer’s Guide. Presents reference and tutorial
information on aC++. (This manual is accessed by specifying aCC with the
+help command-line option.)
• HP MPI User’s Guide. Describes how to use HP MPI (Message Passing
Interface), a library of C- and Fortran-callable routines used for
message-passing programming.
• Software Optimization for High Performance Computing: Creating Faster
Applications: Provides state-of-the-art solutions for every key aspect of
software performance; both code-based and algorithm-based.
• HP-UX Assembly Language Reference Manual. Describes the HP-UX
assembler for the PA-RISC processor.
• HP PA-RISC 2.0 Architecture Reference. Describes the architecture of the
PA-RISC 2.0 processor.
• PA-RISC Procedure Calling Conventions Reference. Describes the
conventions for creating PA-RISC assembly language procedure calls.
• IA-64 and Elementary Functions. Describes the architecture of the IA-64
processor and how to implement elementary functions.
• METIS documentation is available online at
http://www-users.cs.umn.edu/~karypis/metis/metis/index.html.
• OpenMP documentation is available online at http://www.openmp.org.
xxiv HP MLIB VECLIB User’s Guide
Part 1
HP VECLIB
1Introduction to VECLIB
Overview
VECLIB, a component of HP MLIB, is a collection of subprograms optimized for
use on Hewlett-Packard servers and workstations, providing mathematical
software and computational kernels for engineering and scientific applications.
This library contains subprograms for:
• Dense vector operations, including the Level 1 BLAS
• Sparse vector and matrix operations, including the Sparse BLAS
• BLAS 3 routine DGEMM is highly tuned
• Matrix operations, including the Level 2 and Level 3 BLAS
• CXML Blas extenstions
Compaq Extended Math Library (CXML) is a collection of routines that
performs numerically intensive operations that occur frequently in
engineering and scientific computing, such as linear algebra and signal
processing.
HP MLIB adds support for the unique CXML extensions to the legacy BLAS
and for the array math functions in CXML. However, the additional support
of XCML is not exhaustive. For more information about CXML see the
CXML Reference Manual part number AA-PV6VE-TE.
• Discrete Fourier transforms
• Convolution and correlation
• Miscellaneous tasks, such as sorting and generating random numbers
Overview
VECLIB provides two sets of libraries: VECLIB and VECLIB8. To determine if
a subprogram is included in VECLIB8, refer to the VECLIB8 section under
each subprogram specification in the following chapters.
Although VECLIB was designed for use with Fortran programs, C programs
can call VECLIB subprograms. Refer to Appendix A, “Calling MLIB routines
from C,” for details. Examples are in Fortran, unless otherwise indicated.
Except for subprograms described in Appendix B, “LINPACK Subprograms,”
LINPACK, EISPACK, and SKYLINE subprograms are not included in the
Chapter 1 Introduction to VECLIB 1
Chapter objectives
Hewlett-Packard scientific libraries. Refer to the Appendix, “Converting from
LINPACK or EISPACK” in the LAPACK Users’ Guide, for assistance converting
programs that currently call LINPACK or EISPACK routines to call LAPACK
or VECLIB routines instead.
This chapter provides information necessary for efficient use of VECLIB and
includes discussions of:
• Standardization
• Accessing VECLIB
• Optimization
• Parallel processing
• Roundoff effects
• Data types and precision
• VECLIB naming convention
• Data type and byte length
• Operator arguments
• Error handling
• HP MLIB man pages
• Troubleshooting
Chapter objectives
After reading this chapter you will:
• Know how to access VECLIB library subprograms
• Understand how VECLIB works in a parallel computing environment
• Understand VECLIB naming conventions
• Understand roundoff effects
• Understand how VECLIB handles errors
• Know how to access the online HP MLIB man pages
• Know what to do if you experience trouble using VECLIB subprograms
2 HP MLIB User’s Guide
Loading...
+ 554 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.