HP MLIB for Itanium Linux Version 9.6 Release Note
Table Of Contents
- Announcement
- What’s in This Version
- Known Problems and Workarounds
- Fortran I/O dependencies in SOLVERS library
- Default OpenMP library stack is too small for MLIB
- Incorrect math library link order for the Intel Fortran compiler
- Dealing with Underscore Compatibility and Duplicated Symbols
- User and Library Subprogram Name Conflicts
- Work length for LAPACK standard eigensolver routine ZHEEVD
- Compatibility Information
- Installation Requirements
- Software Availability in Native Languages
- Associated Documentation
- Support Information

HP MLIB for Itanium Linux Version 9.6 Release Note
Compatibility Information
HP MLIB for Itanium Linux Version 9.6 Release Note24
2. Call MLIB subprograms in an OpenMP parallelized loop or region. To use this
mechanism, you must be familiar with the techniques of parallel processing. Refer to the
OpenMP documentation at http://www.openmp.org for more information. MLIB routines
may also be called within regions that are parallelized via pthread calls.
3. Use the Message Passing Interface (MPI) explicit parallel model. Refer to the HP-MPI
User’s Guide or the MPI(1) man page for details.
MLIB subprograms are reentrant, meaning that they may be called multiple times in parallel
to do independent computations without one call interfering with another. You can use this
feature to call MLIB subprograms in a parallelized loop or region. You can force it to
parallelize such a loop by inserting compiler directives before the loop.
For example, the following Fortran code makes parallel calls to subprogram DAXPY:
C$OMP PARALLEL DO
DO 10 J=1, N
CALL DAXPY (N-I,A(I,J),A(I+1,I),1,A(I+1,J),1)
10 CONTINUE
C$OMP END PARALLEL DO
While optimizing a parallel program, you may want to make parallel calls to an MLIB
subprogram to execute independent operations where the call statements are not in a loop.
You can use the OpenMP compiler directives SECTIONS, SECTION, and END SECTIONS to tell
the compiler to parallelize such code.
User Resource Limits
Users may encounter failures caused by resource limits. This failure is typically a
segmentation violation caused by exceeding the resource limit for stack size. This arises when
large arrays are placed on the stack; for example by C language automatic storage class
variables (e.g. variables declared within a block).
The default stack size for Itanium® Linux is 8 MB. HP MLIB may use up to 8 MB of stack
space in addition to the application requirements. You may want to reset your stack size.
The resource limits can be changed by means of the ulimit command for Bourne-like shells or
the limit command for C-like shells. For example:
% ulimit -s unlimited
or
% limit stacksize unlimited