opt-mem-bandwidth, Qopt-mem-bandwidth

Enables performance tuning and heuristics that control memory bandwidth use among processors.

IDE Equivalent

None

Architectures

IntelŪ ItaniumŪ architecture

Syntax

Linux: -opt-mem-bandwidthn
Mac OS: None
Windows:  /Qopt-mem-bandwidthn

Arguments

n Is the level of optimizing for memory bandwidth usage. Possible values are:
  0 Enables a set of performance tuning and heuristics in compiler optimizations that is optimal for serial code.
  1 Enables a set of performance tuning and heuristics in compiler optimizations for multithreaded code generated by the compiler.
  2 Enables a set of performance tuning and heuristics in compiler optimizations for parallel code such as Windows Threads, pthreads, and MPI code, besides multithreaded code generated by the compiler.

Default

-opt-mem-bandwidth0 or
/Qopt-mem-bandwidth0
For serial (non-parallel) compilation, a set of performance tuning and heuristics in compiler optimizations is enabled that is optimal for serial code.
-opt-mem-bandwidth1 or
/Qopt-mem-bandwidth1
If you specify compiler option -parallel (Linux) or /Qparallel (Windows), -openmp (Linux) or /Qopenmp (Windows), or Cluster OpenMP option -cluster-openmp, a set of performance tuning and heuristics in compiler optimizations for multithreaded code generated by the compiler is enabled.

Description

This option enables performance tuning and heuristics that control memory bandwidth use among processors. It allows the compiler to be less aggressive with optimizations that might consume more bandwidth, so that the bandwidth can be well-shared among multiple processors for a parallel program.

For values of n greater than 0, the option tells the compiler to enable a set of performance tuning and heuristics in compiler optimizations such as prefetching, privatization, aggressive code motion, and so forth, for reducing memory bandwidth pressure and balancing memory bandwidth traffic among threads.

This option can improve performance for threaded or parallel applications on multiprocessors or multicore processors, especially when the applications are bounded by memory bandwidth.

Alternate Options

None

See Also

parallel, Qparallel compiler option

openmp, Qopenmp compiler option

Cluster OpenMp Options