Решено: OpenMP (Вложенные циклы)

Модератор: Модераторы разделов

BratSinot
Сообщения: 812
ОС: Slackware64

Решено: OpenMP

Сообщение BratSinot »

Доброго времени суток!

Есть такой кусок кода:

Код: Выделить всё

for (unsigned int y=0; y < resoy; y++)
 for (unsigned int x=0; x < resox; x++)
  matrix[x][y]=test((float)(x*CXshag-2)+((float)y*CYshag-1)*I);

Я его изначально распаралеливал через POSIX Threads, разбивал на 4 блока, и для каждого блока свой поток. Потом решил попробовать OpenMP. Я кучу вариантов перепробовал, не один не работает. Можно ли и как распаралелить этот кусок кода через OpenMP?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Решено: OpenMP

Сообщение frp »

Код: Выделить всё

#pragma omp for
for (unsigned int y=0; y < resoy; y++)
#pragma omp for
    for (unsigned int x=0; x < resox; x++)
        matrix[x][y]=test((float)(x*CXshag-2)+((float)y*CYshag-1)*I);

Ну и собрать с -fopenmp
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Решено: OpenMP

Сообщение BratSinot »

frp писал(а):
12.08.2011 14:16

Код: Выделить всё

#pragma omp for
for (unsigned int y=0; y < resoy; y++)
#pragma omp for
    for (unsigned int x=0; x < resox; x++)
        matrix[x][y]=test((float)(x*CXshag-2)+((float)y*CYshag-1)*I);

Ну и собрать с -fopenmp

Это я проверял, не работает.
P.S. Линкую с -lgomp
Да ну блин! Все дело было в -fopenmp!
Спасибо сказали: