User`s guide
Cray XMT™ Programming Environment User’s Guide
However, when you add the may merge option these two loops
remain in the same region:
| for (int i = 0; i < size_foobar; i++) {
3 P | bar[i] = size_foobar - i;
|}
|
| #pragma mta max 50 streams per processor may merge
| for (int i = 0; i < size_foobar; i++) {
5 P | foo[i] += bar[i+c]/2;
|}
...
Parallel region 1 in main
Using max 50 streams per processor
...
Loop 2 in main in region 1
...
Loop 3 in main at line 4 in loop 2
...
Loop 4 in main in region 1
...
Loop 5 in main at line 9 in loop 4
Note that the compiler has placed both loops into the same region
and that the stream limit was applied to the entire region. If multiple
limits are specified for the same region the compiler uses the smallest
limit.
Two restrictions apply to the use of this pragma:
• You cannot use this pragma with loop future loops.
• If this pragma is used within the same region as a use n
streams pragma with a conflicting value (for example a use
value that is higher than the max value) the max n streams
per processor pragma will take precedence over the use n
streams pragma.
118 S–2479–20