Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
bumber
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 6
#1

OpenMp - C++

27.10.2013, 18:03. Просмотров 568. Ответов 0
Метки нет (Все метки)

Здравстуйте, нужно помощь в параллеьном программировании, программа работает на одной нити, но зависает на нескольких, при N>10. Соотвественно это задача Дирихле для уравнения Пуассона
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
do {
  dmax = 0; // максимальное изменение значений u
#pragma omp parallel for shared(u,un,N1,dmax) private(i,temp,d,dm)
  for ( i=1; i<N1-1; i++ ) {
    dm = 0;
    for ( j=1; j<N1-1; j++ ) {
      temp = u[i][j];
      un[i][j] = 0.25*(u[i-1][j]+u[i+1][j]+u[i][j-1]+u[i][j+1]+h*h*f[i][j]);
      d = fabs(temp-un[i][j]);
      if ( dm < d )
      dm = d; 
    }
    omp_set_lock(&dmax_lock);
    {
        //cout<<omp_get_thread_num()<<endl;
      if ( dmax < dm ) 
 
          dmax = dm;
      omp_unset_lock(&dmax_lock);
    }
    } 
  for ( i=1; i<N1-1; i++ ) // обновление данных
    for ( j=1; j<N1-1; j++ ) 
      u[i][j] = un[i][j];
} while ( dmax > eps );
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2013, 18:03     OpenMp
Посмотрите здесь:

OpenMP - C++
есть код в общем виде... #pragma omp parallel for for (i = 0; i &lt; n; ++i) { temp = B; // обращаемся for (j = 0; j &lt; k; ++j)...

OpenMP - Visual C++
здравствуйте, народ я делал консольное приложение с openmp, решил вот красиво оформить в формочку, а тут ошибка Command line error...

OpenMP - C++
#pragma omp parallel private(i) shared(j) { #pragma omp for for (j = 0; j &lt; n; j++) { for (i = 0; i &lt; m;...

Синхронизация в OpenMP - C++ Linux
начал разбираться с многопоточным программированием на С++. В данный момент пытаюсь вкурить OpenMP. Параллелю метод Гаусса для решения...

OpenMP и SIMD - C++
Добрый день. Не могу исправить код, чтобы использовалось 4 ядра, а не 1. В функцию proizv нужно добавить распараллеливание вычислений с...

Программирование на OpenMP - C++
Такой вопрос, у меня есть прога, которая работает ~сутки, не буду вдаваться что и как она делает, мне посоветовали для быстроты...

Магия OpenMP - C++
Есть такой код: Expr = ... // vector&lt;pair&lt;size_t, double&gt;&gt; #ifdef _OPENMP #pragma omp parallel num_threads( 2==(size_level-ptr) ? 1...

Цикл for и OpenMP - C++
Недавно распаралелил свой цикл for, а теперь решил посмотреть на сколько я выигрываю от этого. Но вот неожиданность, все многопоточные...

Технологии OpenMP - C++
Доброго времени суток. Объясните, почему на такой код void quickSortR(int left,int right,int *mass) { int i,j; bool f; double...

Не работает openmp - C++
Написал простенькую программку с распараллеливанием собрал откомпилил, но распараллеливания нет. Программка выглядит так: ...

Параллельность в openMP - C++
Использую Visual Studio 2013. Проц - двухъядерный Intel E6550. omp_get_max_threads() возвращает 2, что логично, но прагма omp parallel...

Вопросы по OpenMP - C++
Всем доброго времени суток! 1. Заметил, что потоки создаваемые в цикле for так и висят в диспетчере задач Windows до завершения работы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru