User`s guide

Cray XMT Programming Environment Users Guide
Parallelism that you specify with future statements in your program is always
enabled. Compiler options have no effect on future statements. If you do not
specify a compiler option, the default is to run using the par option.
There are also parallelization directives and compiler options available that you
can use to enable or disable loop restructuring. Loop restructuring includes loop
transformations, loop fusion, loop unrolling, loop distribution, and loop interchange.
By default, loop restructuring is enabled when parallelization is enabled, and
disabled otherwise. To enable or disable loop restructuring using a directive, use the
#pragma mta restructure directive. Disabling loop restructuring may inhibit
parallelization of some loops.
The previous directive restructures loops from the point where it appears in the file
to the end of the file. It can be disabled during the compilation process when you
specify the -nopar compiler option from the command line.
You can enable loop restructuring from the command line using the -restructure
compiler option. You can disable loop restructuring using the -no_restructure
option. You may need to use this if you are also using the -par, -par1,or
-parfuture option, because these options automatically enable loop restructuring.
You can also control whether the compiler automatically parallelizes recurrences and
reductions. Recurrence is enabled, by default, but you may want to disable it for a
section in the program. To do this, use the #pragma mta recurrence off
command.
For information about the parallelization options, see the cc(1) or c++(1) man page.
For a complete list and explanation of the parallel directives and assertions, see
Appendix C, Compiler Directives and Assertions on page 109.
7.6 Incremental Recompilation and Relinking
When a previously built program library and executable are present, the compiler
performs incremental recompilation and relinking, regardless of the compilation
mode. An incremental recompilation saves time during the compilation process.
The compiler performs incremental recompilation on a function-by-function basis
within each source file. If you repeatedly edit and compile several functions in
the blas.cc file, the compiler detects which functions require recompilation
after editing. For example, if you edit a particular function f, the compiler only
recompiles f and any function that inlined f. But if you change a globally-visible
type declaration, the compiler recompiles all functions that use that type.
In whole-program mode, separate-module mode, or mixed mode, the compiler
builds a program library for the executable. The compiler uses the program library
during the incremental compilation. If you delete the .pl file between compilations,
the compiler cannot execute an incremental recompilation. Similarly, deleting the
executable file prevents incremental linking.
86 S247920