[ Previous | Next | Table of Contents | Index | Library Home |
Legal |
Search ]
Performance Management Guide
The KAP and VAST preprocessors for the FORTRAN compiler can restructure
FORTRAN source code to better use the POWER family, POWER2, and PowerPC
processing unit resources and memory hierarchy. A version of the KAP
preprocessor is also available for restructuring the code of C
programs. The preprocessors perform memory management optimizations,
algebraic transformations, inlining, interprocedural analysis, and other
optimizations that improve the performance of FORTRAN or C
applications.
Performance tests indicate improvements in the range of 8 to 18 percent, on
average, when a suite of programs is compiled with the preprocessors, compared
to compiling with the same optimization options for the unpreprocessed
version.
The KAP and VAST preprocessors attempt to transform source-level algorithms
into algorithms that can take full advantage of the optimizing capabilities of
the compiler. The preprocessors also generate listings that identify
the transformations performed and areas of your code that prevent
transformations from being carried out. The preprocessors analyze
source code, and perform transformations that can improve a program's
performance.
Any transformation done by the preprocessors can also be accomplished
through hand-tuning. The advantages of using a preprocessor rather than
hand-tuning are as follows:
- In many cases, the preprocessors yield programs that perform as
efficiently as, or more efficiently than, their hand-tuned equivalents,
without a significant investment of programmer time. If you use the
preprocessors, you may not require as thorough an understanding of the
architecture or of tuning techniques discussed elsewhere in this book.
- For certain programs, you can get code that is highly optimized, simply by
selecting appropriate command-line preprocessor options and by adding a small
number of directives to the source code of your program. In cases where
the preprocessors do not yield a noticeable improvement, work with the
preprocessor listings to see what areas of the source code prevent
optimization.
- Some of the transformations done by the preprocessors involve considerable
expansion of source code. While these expansions can improve your
program's efficiency, implementing them through hand-tuning would
increase the likelihood of algorithmic and typographical errors, reduce the
readability of the source code, and make program maintenance more
difficult.
- The preprocessors can generate code that is tuned for a particular
architectural configuration, even one that is not available on POWER family,
POWER2, and PowerPC systems. You can maintain a single version of
source code, and produce transformed versions that are tuned for different
POWER, POWER2, and PowerPC models or for machines with other cache and
processor characteristics.
- The preprocessors can often improve on hand-tuned code. Although it
is possible to tune your programs by hand to as great a level of efficiency as
the preprocessors do, some of the more complicated transformations can lead to
coding errors when attempted by hand.
[ Previous | Next | Table of Contents | Index |
Library Home |
Legal |
Search ]