#pragma omp для/параллельных задачC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 #pragma omp для/параллельных задач

Сообщение Гость »

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

for(int nu = 0; nu < 20; nu++) {          for (int i = 0; i < n; i++) {             for (int j = 0; j < m; j++) {                 double matrixPtr = matrix[i][j].first;                 double matrixPtrSecond = matrix[i][j].second;                 double localReS1 = 0.0;                 double localImS1 = 0.0;              for (double theta = 0; theta < 2*M_PI; theta += theta_plus) {                 for (double phi = 0; phi < M_PI; phi += theta_plus) {                      double angle = matrixPtr * cosPhi * sintheta + matrixPtrSecond * sinPhi *  sintheta;                     localReS1 += cos(angle);                     localImS1 += sin(angle);                     }                 }                              #pragma omp critical                 {                 ReS += localReS1;                 ImS += localImS1;                 }             }         }     } 
You can see my code above, please help me, how can I parallelize the Phi and theta loops, because they eat a lot of space, and they must be inside the i,j loops, the nu loop cannot be removed, it must always be present. If you have any ideas how to speed up this code by a factor of 2 at least, I would be glad to hear your answers. I haven't tried parallelizing on CUDA yet, because I'm trying to solve the problem without it, in the extreme case I'll probably do it with its application.


Источник: https://stackoverflow.com/questions/781 ... l-problems
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»