Russian Qt Forum
Ноябрь 26, 2024, 04:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Параллельные вычисления (грабли)  (Прочитано 3139 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Март 21, 2010, 15:30 »

Добрый день

Код:
void MainCalc( CalcParam & theParam )
 #pragma omp parallel for    // это считаем параллельно
 for (i = 0; i < num; ++i)
   DoCalc(theParam);

  MonoCalc(theParam);       // а это в главной нитке
}

void DoCalc( CalcParam & theParam )
{
 .....                       // расчеты
 LOCK;                       // берем лок
 CalcParam temp = theParam;  // делаем копию theParam
 SetupParam(&theParam);      // изменяем theParam
 UNLOCK;                     // вынуждены снять лок
 DoCalc(theParam);           // ушли в рекурс
 LOCK;                       // берем лок
 theParam = temp;            // восстановили theParam
 UNLOCK;                     // сняли лок
}
Ну наверное увидеть ошибку не составит труда  Улыбающийся
« Последнее редактирование: Март 21, 2010, 15:33 от Igors » Записан
garryHotDog
Гость
« Ответ #1 : Март 21, 2010, 21:19 »

в чем вопрос то?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.181 секунд. Запросов: 22.