Странная работа 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).
Я уже даже не знаю, что делать, почему всё так странно?
Re: Странная работа Intel c++ compiler c директивами OpenMP
От: remark Россия http://www.1024cores.net/
Дата: 17.11.08 10:24
Оценка:
Здравствуйте, продукт распада, Вы писали:

ПР>Я уже даже не знаю, что делать, почему всё так странно?


Могу посоветовать спросить на форуме Intel:
http://software.intel.com/en-us/forums/threading-on-intel-parallel-architectures/sort/2/ord/2/flt/1/
русская версия:
http://softwarecommunity-rus.intel.com/isn/Community/ru-RU/forums/2438/ShowForum.aspx


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.