Высокопроизводительные вычисления на кластерах. Беликов Д.А - 39 стр.

UptoLike

39
! число разбиений области интегрирования
n = 100000000
sum = 0
! начало области распараллеливания цикла переменная i -
! приватная, переменная sum обновляется всеми нитями
!$omp parallel do
!$omp& default(shared) private(i)
!$omp& schedule(static,10)
!$omp& reduction(+:sum)
do i = 1,n
x = a+(b-a)*(i-0.5d0)/n
sum = sum + f(x)
end do
!$omp end parallel do
! конец области распараллеливания
! вычисление итогового результата и печать на экран
sum = sum/n
write (6,*) 'result= ',sum,' error= ',1-sum
! фиксируется время окончания счета и выдается время работы
! программы
!$ tm0=omp_get_wtime()-tm0
!$ write(6,*) 'time of calculation', tm0
end
2.5 Результаты применения OpenMP на многоядерных
системах
Вычислительный узел кластера ТГУ СКИФ Cyberia построен с
использованием двух процессоров Intel Xeon 5150 с двухъядерной
архитектурой, что позволяет провести испытания по запуску
OpenMP-приложений одновременно для четырех параллельных по-
токов (нитей). В качестве тестовой программы рассматривалась
программа в приведенном выше примере. Команда для компиляции
OpenMP-приложения имеет следующий вид:
ifort –openmp –O2 example.f –o example.exe
Перед запуском необходимо указать число параллельных пото-
ков выполнения OpenMP-программы, для чего требуется изменить