Рассмотрение
средств отладки
Для отладки трех программ применялись встроенные средства Microsoft Visual2013. Основным же средством отладки являлась Intel Parallel Studio XE 2015 Professional. Для работы использовались Intel Inspector XE 2015 и Intel VTune Amplifier XE 2015. Intel Inspector XE 2015 это утилита для тестирования программы на наличие утечек памяти, проверки потоков на состояние гонки и взаимных блокировок. Intel VTune Amplifier XE 2015 применяется для анализа производительности программ, т.е. для оценки временных затрат участков кода и тем самым позволяет находить узкие по производительности места.
Отладка программ, осуществлялась с
использованием утилиты Intel Inspector XE 2015. Проверялись:
неинициализированные переменные, конфликт доступа к данным, утечка памяти. В
результате отладки во всех 3 программах, во второй был найден конфликт доступа
к данным, проблема была решена после применением параметров shared() и
private(), в двух других ошибок не было выявлено.
Анализ эффективности
Тестирование проводилось на примерах
сортировки матриц и их умножения, так же использовались данные от NAS Division
и NASA Arms Research Center. Ниже приведена таблица для первого и второго
примера.
Таблица 2, для примера 1
|
Количество ядер |
2 |
4 |
6 |
8 |
|
Быстрая сортировка |
0,031 |
0,030 |
0,016 |
0,020 |
|
Пузырьковая |
47,299 |
28,487 |
28,405 |
30,210 |
Как видно по таблице 2 с увеличением
количества ядер, время работы на выполнение сортировок уменьшается.
Таблица 3, для примера 2
|
|
1024х1024 |
1680х1680 |
1800х1800 |
|
С технологией OpenMP |
54,5235 |
59,8104 |
69,7429 |
|
Без OpenMP |
118,071 |
128,584 |
137,494 |
Таблица 3 дает понимание того, как влияет технология OpenMP на скорость вычислений.
Далее приведём некоторые пояснения:
Таблица 4
Обозначение
BT
3D Навье-Стокс, метод переменных направлений
CG
Оценка наибольшего собственного значения симметричной разреженной матрицы
EP
Генерация пар случайных чисел Гаусса
FT
Быстрое преобразование Фурье, 3D спектральный метод
IS
Параллельная сортировка
LU
3D Навье-Стокс, метод верхней релаксации
MG
3D уравнение Пуассона, метод Multigrid
SP
3D Навье-Стокс, Beam-Warning approximate factorization
Рисунок 5. Analyzing the Effect of
Different Programming Models Upon Performance and Memory Usage on Cray XT5
Platforms [10]
Рисунок 6. Analyzing the Effect of
Different Programming Models Upon Performance and Memory Usage on Cray XT5
Platforms [10]
Как видно OpenMP является хорошим
инструментом распараллеливания, это достигается за счет того, что реализовано
инкрементное распараллеливание, имеет очень гибкий механизм для контроля
разработчику над параллельной программой, так же в OpenMP простой набор
директив для изучения и применения, которые, могут в случаи ненадобности,
игнорироваться компилятором без вреда для работы программы.
Заключение
Во время курсовой работы были изучены технологии параллельного программирования, в частности OpenMP. Изучены методы работы с OpenMP, изучены директивы, компиляторы, которые поддерживают OpenMP. Были применены на практике, знания, которые были получены в ходе изучения технологии, для решения практических задач.
Проведён сравнительный анализ из
полученных тестовых данных.
Список литературы
1) Антонов А.С. Параллельное программирование с использованием технологии OpenMp. - М.: Изд-во МГУ, 2009. - 77 с
2) Малышкин В.Э. Параллельное программирование мультикомпьютеров, Новосибирск, 2006. - 452 с
3) Бахтин А.В. Технология параллельного программирования OpenMP, Москва, 2012. - 125 с
4) Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.:
БХВ-Петербург, 2002.
5) Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., and Melon, R.(2000). Parallell Programming in OpenMP. San-Francisco, CA: Morgan Kaufmann Publishers.
6) Quinn, M. J. (2004). Parallel Programming in C with MPI and OpenMP. - New York, NY: McGraw-Hill.
7) Гергель В.П. Параллельное программирование с использованием
OpenMP, Новосибирск, 2007. - 33с
8) Параллельные заметки. URL: http://habrahabr.ru/company/intel/blog/82486
9) Лабораторная работа. Компиляция и запуск программ. URL:http://gigabaza.ru/doc/106635.html
10) OpenMP Compilers. - URL: http://openmp.org/wp/openmp-compilers/
11) Analyzing the Effect of Different Programming Models Upon Performance and Memory Usage on Cray XT5 Platforms
12) URL: https://www.nersc.gov/assets/NERSC-Staff-Publications/2010/Cug2010Shan.pdf
13) Дистрибутив Intel Parallel Studio XE 2015. URL:
https://software.intel.com/en-us/intel-parallel-studio-xe