HP MLIB for PA-RISC and Itanium2 HP-UX Version 9.5 Release Note
HP MLIB for PA-RISC and Itanium® 2 HP-UX Version 9.5 Release Note
Compatibility Information
28
• If your program uses subprograms from VECLIB, LAPACK, SOLVERS, VMATH,
ScaLAPACK, and SuperLU_DIST, specify -lveclib, -llapack, -lsolvers, -lvmath
-lscalapack, and -lsuperlu_dist or -lveclib8, -lveclibsc8, -llapack8,
-llapacksc8, -lsolvers8, -lvmath8, -lscalapack8, and -lsuperlu_dist8, on your
command line. For example, on an Itanium® 2-based operating system with 32- or 64-bit
addressing, link with:
% mpif90 [options] file ...-Wl,-aarchive_shared,-L/opt/mlib/lib/
[hpux32|hpux64][-lveclib|-llapack|-lsolvers|-lvmath|–lscalapack|
-lsuperlu_dist]
NOTE DO NOT mix subprograms from the two types of 64-bit address libraries
(those with 32-bit integers and those with 64-bit integers) in the same
program.
SMP Parallelism Usage
You can enable or disable parallel processing at runtime. A program does not use parallelism
in MLIB unless parallel processing is enabled at runtime. Some BLAS-2, BLAS-3, LAPACK,
sparse solver, convolution, and FFT routines have been optimized for parallelism.
Controlling MLIB SMP parallelism at runtime Two methods are available at runtime to
specify the extent of parallel processing in MLIB.
1. Use MLIB_NUMBER_OF_THREADS, a shell environment variable that allows you to enable
parallelism within MLIB subprograms and to specify the maximum number of threads
that can be used in parallel regions.
Not setting MLIB_NUMBER_OF_THREADS has the same result as setting it to 1; parallel
processing is disabled within MLIB subroutines. Setting MLIB_NUMBER_OF_THREADS to the
number of CPUs in the system (or greater) allows parallelized MLIB subprograms to use
as many CPUs as are available to the application.
The following command lines show the C-like shell syntax and Bourne-like shell syntax to
use when setting the variable to two processors:
For C-like shell:
% setenv MLIB_NUMBER_OF_THREADS 2
For Bourne-like shell:
% export MLIB_NUMBER_OF_THREADS=2
MLIB_NUMBER_OF_THREADS is examined on the first call to a parallelized VECLIB
subprogram to establish the default parallel action within VECLIB.