Your application calls serialized versions of math functions when you use the precise floating point model. To fix: Do one of the following:
- Add fast-transcendentals compiler option to replace calls to transcendental functions with faster calls.
Windows* OS Linux* OS /Qfast-transcendentals -fast-transcendentals CAUTION: This may reduce floating point accuracy.
- Enforce vectorization of the source loop using a directive: #pragma omp simd
...
#pragma omp simd
for (i=0; i<n; i++)
...void add_floats(float *a, float *b, float *c, float *d, float *e, int n)
{
int i;
#pragma omp simd
for (i=0; i<n; i++)
{
a[i] = a[i] + b[i] + c[i] + d[i] + e[i];
}
}