Смекни!
smekni.com

Система автоматизации распараллеливания отображения на мультипроцессор (стр. 9 из 9)

real a(l,l),eps,maxeps,b(l,l),c(l,l)

! arrays A and B with block distribution

print *, '********** TEST_JACOBI **********'

maxeps = 5.000000e-008

!nest of two parallel loops, iteration (i,j) will be executed on

!processor, which is owner of element A(i,j)

!$OMP PARALLEL PRIVATE(i)

!$OMP DO

do j = 1,l

do i = 1,l

a(i,j) = 0.

if (i .eq. 1 .or. j .eq. 1 .or. i .eq. l .or. j .eq. l) then

b(i,j) = 0.

else

b(i,j) = 1. + i + j

endif

enddo

enddo

!$OMP END DO

!$OMP END PARALLEL

do it = 1,itmax

eps = 0

!variable EPS is used for calculation of maximum value

!$OMP PARALLEL PRIVATE(i)

!$OMP DO

do j = 2,l - 1

do i = 2,l - 1

a(i,j) = b(i,j)

enddo

enddo

!Copying shadow elements of array A from

!neighbouring processors before loop execution

!$OMP END DO NOWAIT

!$OMP DO

do j = 2,l - 1

do i = 2,l - 1

a(i,j) = (c(i - 1,j) + c(i,j - 1) + c(i + 1,j) + c(i,j +

&1)) / 4

enddo

enddo

!$OMP END DO

!$OMP END PARALLEL

print 200, it,0

200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)

if (0 .lt. 5.000000e-008) goto 3

enddo

3 open (unit = 3,file = 'JAC.DAT',form = 'FORMATTED',status = 'UNKNO

&WN')

write (unit = 3,fmt = *) b

close (unit = 3)

end

Общее время последовательного выполнения: 7667 у.е.

Общее время параллельного выполнения (4 нити): 2471 у.е.

Суммарное ускорение: в 3,1 раза

6. Заключение

В рамках дипломной работы был реализован "Эксперт по распараллеливанию на мультипроцессор", как компонент "Системы автоматизации распараллеливания".

Работа системы была протестирована на примерах, описанных в пункте 5.5. В качестве выходного результата формируется файл с выходной программой, а также файл, описывающий пошаговые действия "Эксперта" с аргументированием причины формирования выходного файла, а также подсчитывающего ускорение программы.

Проект реализован в программе VisualStudio .NET на языке C++. Общий объем программного кода, реализующего "Эксперт"- свыше 1800 строк.

Перечень принятых терминов

Потенциально Параллельный Цикл (ППЦ) – цикл, который можно распараллелить средствами OpenMP, не обязательно эффективно.

Цикл Неподдающийся Распараллеливанию (ЦНР) – циклы с зависимостями следующих видов:

1) содержащие ввод/вывод,

2) содержащие вызовы процедур,

3) содержащие выход из цикла,

4) содержащие неизвестные анализатору зависимости,

5) циклы, с которыми не справился анализатор.

Параллельный регион – последовательность циклов, линейных фрагментов, ветвлений, которая будет заключена в рамки !$OMPPARALLEL - !$OMPENDPARALLEL.

Вариант параллелизма программы (Вариант параллелизма) – вариантдиректив OpenMP, описывающих параллельные области и параллельные циклы (без директив локализации переменных).

Вариант локализации переменных (Вариант локализации) – вариантдиректив локализации переменных. Для каждого варианта параллелизма может существовать несколько вариантов локализации.

Схема распараллеливания – фиксация одного варианта параллелизма и одного варианта локализации.

1-е внутреннее представление – дерево, по структуре схожее с деревом из Базы Данных, в котором помечены все ППЦ и для каждого ППЦ обозначены пометки для локализации. Является результатом работы 1-го шага.

2-е внутреннее представление - дерево, по структуре схожее с деревом из Базы Данных, в котором расставлены пометки, по которым в базу данных можно занести комментарии по распараллеливанию (Распараллеливание и Локализацию). Является результатом работы 3-го шага.

Наилучшие комментарии – комментарии такие, что оценочная функция для программы с такими комментариями будет минимальна по сравнению с программой с любыми другими комментариями. Нахождение таких комментариев - главная задача эксперта.

Проверка Альтернативного Распараллеливания – нахождения минимума оценочной функции между текущим 2-м внутренним представлением и неким другим (альтернативным) распараллеливанием, с фиксацией распараллеливания с минимальной оценочной функцией во 2-м внутреннем представлении.

Проверка Альтернативной Локализации – нахождения минимума оценочной функции для набора локализаций для данного распараллеливания с фиксированием комментариев, соответствующих минимальной оценочной функцией во 2-м внутреннем представлении.