Анализ эффективности
Тестирование проводилось на примерах сортировки
матриц и их умножения, так же использовались данные от NAS Division и NASA Arms
Research Center. Ниже приведена таблица для первого и второго примера.
|
Количество ядер |
2 |
4 |
6 |
8 |
|
Быстрая сортировка |
0,031 |
0,030 |
0,016 |
0,020 |
|
Пузырьковая |
47,299 |
28,487 |
28,405 |
30,210 |
Таблица 2, для примера 1.
Как видно по таблице 2 с увеличением количества
ядер, время работы на выполнение сортировок уменьшается.
|
|
1024х1024 |
1680х1680 |
1800х1800 |
|
С технологией OpenMP |
54,5235 |
59,8104 |
69,7429 |
|
Без OpenMP |
118,071 |
128,584 |
137,494 |
Таблица 3, для примера 2.
Таблица 3 дает понимание того, как влияет технология OpenMP на скорость вычислений.
Далее приведём некоторые пояснения:
|
Аббревиатура |
Обозначение |
|
BT |
|
|
CG |
Оценка наибольшего собственного значения симметричной разреженной матрицы |
|
EP |
Генерация пар случайных чисел Гаусса |
|
FT |
Быстрое преобразование Фурье, 3D спектральный метод |
|
IS |
Параллельная сортировка |
|
LU |
3D Навье-Стокс, метод верхней релаксации |
|
MG |
3D уравнение Пуассона, метод Multigrid |
|
SP |
3D Навье-Стокс, Beam-Warning approximate factorization |
Таблица 4.
Рисунок 5.
the Effect of Different Programming
Models Upon Performance and Memory Usage on Cray XT5 Platforms [10]
Рисунок 6.
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) Гергель В.П. Параллельное программирование с использованием, Новосибирск, 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