| United States-English |
|
|
|
![]() |
HP Fortran v2.8 for HP-UX 11.0/11i v1 and 11i v2 Release Note*5990-6773* > Chapter 1 HP
Fortran v2.8 for HP-UX 11.0/11i v1 and 11i v2What’s in This Version |
|
HP Fortran v2.8 contains object-oriented feature optimizations, including:
The following reflects recent changes/additions to directives and options: For Itanium®-based systems only: Selects the +Ofast option at optimization level +O4. Equivalent to +Ofast +O3 -ipo. For PA-RISC systems only: +Ofaster drops to +O3. Enables interprocedural optimizations across files. Object files produced using this option contain intermediate code in IELF format. At linke time, ld automatically invokes the interprocedural optimizer u2comp if any of the input object files is an IELF file. This option is ignored at optimization levels +O1 and +O2. It is enabled by default when +O4 or +Ofaster are used.
The behavior of this directive is similar to fsplit’ing a file and selectively choosing +Oopenmp or +Onoopenmp per each file.
In the absence of qualifiers, +Oprofile=collect is the same as +I. <qualifiers> are a comma-separated list of profile collection qualifiers. Supported profile collection qualifiers:
Interactions and dependencies are not changed with respect to +Oprofile=collect. HP$OPTIMIZE, as listed below, is now supported for Fortran 90.
This feature enables the specification of a binary conversion to happen to all unformatted sequential data on reads and writes to various units. Both the OPEN and INQUIRE commands accept the CONVERT argument. There are two types of allowable conversions:
When the CONVERT argument is specified to the OPEN statement, all I/O to that unit will undergo the specified conversions. When the CONVERT argument is specified to the INQUIRE statement, a string is returned that describes the conversions being done at runtime for a given unit. In addition to specifying the CONVERT parameter to the OPEN statement, there are two other methods for specifying the type of conversion to take place:
There are three ways to specify what file/unit should be converted, and which conversion to apply (in priority, with highest priority listed first):
Typically, code is written via the CONVERT=argument to OPEN and INQUIRE. Therefore, this option was given the higher priority status to allow overriding “normal” coding via the environment variable.
The following suggestions will aid with issues regarding unaligned data: As a quick fix, add the following call to the main program: call allow_unaligned_data_access( ) Then, link in an additional library that fixes these alignment issues at runtime: -lunalign Longer term, try compiling with the following flag: +allow_unaligned An example would be:
Then compile with: /opt/fortran90/bin/f90 foo.f -lunalign +noppu If you need to drop the +noppu, then add an alias directive as follows: !$HP$ALIAS allow_unaligned_data_access=’allow_unaligned_data_access’
Then compile with: /opt/fortran90/bin/f90 foo.f -lunalign
If the misaligned data might be passed to routines which are not compiled with +allow_unaligned (for example, Fortran runtime IO and F90 libraries), then having the call will allow the runtime fixes to happen which will prevent bus errors in your application. To realize optimum performance, try and measure the following two options:
Option #1 may perform faster with very few references to misaligned data and a handler is invoked for these misaligned references. #2 may perform faster with many references. HP Fortran now supports full OpenMP v2.0. OpenMP is a portable, scalable model that gives shared-memory parallel programmers a simple and flexible interface for developing parallel applications on platforms ranging from the desktop to the supercomputer. When calling HP Fortran 90 routines on the HP 9000 Series 700/800, you must include the appropriate run-time libraries by adding certain arguments to the aCC command when linking your program.These arguments depend on how the Fortran 90 routines were compiled. The HP WDB debugger is an HP-supported implementation of the GDB debugger. It supports source-level debugging of object files written in HP Fortran, HP C, and HP aC++ on HP-UX Release 10.20 and later. For additional information, please visit http://www.hp.com/go/wdb. HP Caliper 3.0 is a new general-purpose performance analysis and performance improvement tool for Itanium®-based applications bundled with HP Fortran, HP ANSI C, and HP aC++. HP Caliper helps you analyze and improve the performance of your native Itanium®-based programs in three ways:
A significant advantage of HP Caliper is that it requires no special compilation, link options, or libraries for your Itanium-based programs. HP Caliper dynamically measures performance on:
Another advantage is that HP Caliper performs its measurements with low overhead and for well-behaved executables, HP Caliper does not alter the semantic behavior of the target program. Required disk space is 12 MB. Memory requirements vary with settings used for performance measurement. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||