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
Known Problems and Workarounds
15
Known Problems and Workarounds
The following section describes known problems with HP MLIB 9.5, and suggests
workarounds you can use to avoid them. The problems include:
• Default CPS library stack is too small for MLIB
• Problem with +ppu compatibility and duplicated symbols
• User and library subprogram name conflicts
• Work length for LAPACK standard eigensolver routine ZHEEVD
Default CPS library stack is too small for MLIB
In libcps, the HP Compiler Parallel Support library, a CPS thread has a default stack size of
8 M bytes. For performance reasons, several subprograms in HP MLIB use the stack for
temporary arrays that exceed the default value. Using the default CPS stack size, these
routines overwrite neighboring stacks, resulting in errors that are difficult to diagnose.
The solution is to change the CPS thread stacksize attribute to a value that is large enough to
accommodate all the MLIB subprograms the thread may encounter. Currently, 16 MB should
be sufficient for all MLIB subprograms.
The environment variable CPS_STACK_SIZE expects values in K bytes. Setting the stack size
as follows would be sufficient for programs that execute on two threads:
For C shell:
% setenv CPS_STACK_SIZE 16384
For Korn shell:
% export CPS_STACK_SIZE=16384
Problem with +ppu compatibility and duplicated symbols
All MLIB subprograms documented in the HP MLIB User’s Guide have two entry points: one
is compatible with the Fortran compiler option +noppu (no postpend underbar) and the second
is compatible with the Fortran compiler option +ppu (postpend underbar). It allows MLIB