User`s guide
Compiler Overview [7]
7.5 Optimizing Parallelization
You can control how the compiler makes your program parallel in two ways:
• You can add parallelization directives to your program.
• You can specify a compiler option from the command line that controls
parallelization.
Parallelization directives and options tell the compiler how to parallelize various
sections of a program. The following types of parallelization are allowed.
Single-processor parallelism
This form of parallelism has low overhead, but does not allow
the program to scale beyond a single processor. This type of
parallelization takes advantage of only the streams on the processor
on which the code is running.
Multiprocessor parallelism
This form of parallelism uses more memory and has a higher startup
time than single-processor parallelism. However, the number of
streams available is much larger, being bounded by the number of
processors on the entire machine rather than the size of a single
processor.
Loop future parallelism
Loop future parallelism runs on multiple processors. It is the highest
overhead form of parallelism, but is also the only form of parallelism
with the ability to dynamically increase thread and processor counts
as needed while the parallel region is executing. It provides good
load balancing, especially with recursive loops.
When using a directive, the parallelization type is set using the #pragma mta
parallel directive. See Parallelization Directives on page 124.
When the parallelism type is set using a compiler option, the following options are
available.
par Compiles a program to run in parallel on multiple processors.
par1 Compiles a program to run in parallel on a single processor.
parfuture
Compiles a program to run on multiple processors using loop future
parallelism.
serial Compiles a program to run without automatic parallelization.
S–2479–20 85