Visible to Intel only — GUID: GUID-2EC9602F-5014-4A0F-870F-F5CF555A4172
Visible to Intel only — GUID: GUID-2EC9602F-5014-4A0F-870F-F5CF555A4172
GAP Message (Diagnostic ID 30519)
Message
Insert a "%s parallel" statement right before the loop at line %d to parallelize the loop.
Advice
Add "#pragma parallel" before the specified loop. This pragma enables the parallelization of the loop at the specified line by ignoring assumed cross-iteration data dependencies.
Example
Consider the following:
void foo(float *a, int m, int n) {
int i;
for (i=0; i<n; i++) {
a[i] = a[i+m]+1;
}
return;
}
In this case, the compiler is unable to parallelize the loop without further information about m. For example, if m is negative, then each iteration will be dependent on the previous iteration. However, if m is known to be greater than n, you can parallelize the loop.
If you determine it is safe to do so, you can add the pragma as follows:
void foo(float *a, int m, int n) {
int i;
#pragma parallel
for (i=0; i<n; i++) {
a[i] = a[i+m]+1;
}
return;
}
Verify
Confirm that any arrays in the loop do not have cross-iteration dependencies. A cross-iteration dependency exists if a memory location is modified in an iteration of the loop and accessed by a read or a write statement in another iteration of the loop.