Новости
О Центре
Кластер
Обучение
Основной курс по параллельному программированию
Учебные курсы
Магистратура
Дополнительное образование
Работы студентов
Библиотека
Исследования
Конференции
Полезные ссылки
NVIDIA
Контакты
О сайте
Имя:
Пароль:
запомнить:
Забыли пароль? Регистрация

Параллельная схема

CE[0].CalcEngine->SetVariabl(0, a, CE[0].varx);

CE[0].CalcEngine->Calc(CE[0].eh);

f0 = CE[0].CalcEngine->Rezult();

CE[0].CalcEngine->SetVariabl(0, b, CE[0].varx);

CE[0].CalcEngine->Calc(CE[0].eh);

fN = CE[0].CalcEngine->Rezult();

#pragma omp parallel private(i) shared(N, a, b) reduction(+: sum1, sum2)

#pragma omp for

for (i = 1; i < N / 2; i++) {

  CE[omp_get_thread_num()].CalcEngine->SetVariabl(0, a + (b - a) * (2 * i - 1) / N, CE[omp_get_thread_num()].varx);

  CE[omp_get_thread_num()].CalcEngine->Calc(CE[omp_get_thread_num()].eh);

  sum1 += CE[omp_get_thread_num()].CalcEngine->Rezult();

  CE[omp_get_thread_num()].CalcEngine->SetVariabl(0, a + (b - a) * (2 * i) / N, CE[omp_get_thread_num()].varx);

  CE[omp_get_thread_num()].CalcEngine->Calc(CE[omp_get_thread_num()].eh);

  sum2 += CE[omp_get_thread_num()].CalcEngine->Rezult();

};

CE[0].CalcEngine->SetVariabl(0, a + (b - a) * (N - 1) / N, CE[0].varx);

CE[0].CalcEngine->Calc(CE[0].eh);

fNm1 = CE[0].CalcEngine->Rezult();

res = ((b - a) / (3 * N)) * (f0 + 4 * (sum1 + fNm1) + 2 * sum2 + fN);

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012