Странная работа Intel c++ compiler c директивами OpenMP
От: продукт распада  
Дата: 17.11.08 10:19
Оценка:
Какая-то чертовщина происходит.
Проект: динамическая библиотека, соот-но 1 файл cpp с функцийе + описания классов в заголовочном файле.
Ситуация такая: в режиме release директивы #pragma omp parallel for просто игнорируются. Т.е. будто бы их и нет. При этом в debug-режиме всё определяется нормально (компилятор пишет OpenMP DEFINED LOOP WAS PARALLELIZED.)
При этом конструкция типа такой в том же release-режиме:


#pragma omp parallel
{
#pragma omp for
for(int i = 1; i < size; ++i)
        x[i] = (y[i-1] + y[i+1])/2;
}


Приводит к сообщению OpenMP DEFINED REGION WAS PARALLELIZED. Однако директива внутри региона для цикла — опять же игнорируется, т.е. в итоге получается ерунда.

Четовщина продолжается далее: директивы отлично работают в заголовочном файле из этого же проекта (и в debug и в release).
Я уже даже не знаю, что делать, почему всё так странно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.