Том 10, № 1Страницы 113 - 124

Ускорение модели динамики водных масс Балтийского моря

А.П. Баглий, А.В. Бухановский, Б.Я. Штейнберг, Р.Б. Штейнберг
Описывается опыт оптимизации и распараллеливания промышленной программы моделирования динамики водных масс Балтийского моря, в основе которой лежат численные алгоритмы решения системы дифференциальных уравнений в частных производных теории мелкой воды. Демонстрируется механический подход к модернизации программы, включающий построение графика зависимости модулей и запись каждого модуля в определенном порядке. Для достижения желаемого ускорения работы программы используется теория оптимизирующих и распараллеливающих преобразований программ. Оптимизация и распараллеливание программы гарантирует достижение увеличения производительности при заданном объеме работы. Представлен ряд преобразований программы с полученными результатами по уменьшению скорости работы наиболее трудоемких процедур. Кроме того, приводятся результаты по ускорению работы программы в целом на вычислительной системе с общей памятью.
Полный текст
Ключевые слова
преобразования программ; оптимизация программ; распараллеливание программ.
Литература
1. Меткалф, М. Оптимизация в Фортране / М. Меткалф. - M.: Мир, 1985. - 264 с.
2. Бухановский, А. Высокопроизводительные технологии экстренных вычислений для предотвращения угрозы наводнений / А. Бухановский, А. Житников, С. Петросян, П. Слоот // Известия вузов. Приборостроение. - 2011. - № 10. - С. 14-20.
3. Клеванный, К. Использование программного комплекса CARDINAL / К. Клеванный, Е. Смирнова // Вестник Государственного университета морского и речного транспорта имени адмирала С.О. Макарова. - 2009. - № 3. - С. 153-162.
4. Ковальчук, С.В. Особенности проектирования высокопроизводительных программных комплексов для моделирования сложных систем / С.В. Ковальчук // Информационно-управляющие системы. - 2008. - № 3. - С. 10-18.
5. Гервич, Л.P. Автоматизация распараллеливания программ с блочным размещением данных / Л.P. Гервич, Е.H. Кравченко, Б.Я. Штейнберг, М.В. Юрушкин // Сибирский журнал вычислительной математики. - 2015. - Т. 18, № 1. - С. 41-53.
6. Компиляторы GCC [электронный ресурс]. - 2016. - URL: http://gcc.gnu.org/
7. Muchnik, S. Advanced Compiler Design and Implementation / S. Muchnik. - Morgan-Kaufmann, 1997.
8. Kowarschik, M. An Overview of Cache Optimization Techniques and Cache-Aware Numerical Algorithms / M. Kowarschik, C. Weiss // Algorithms for Memory Hierarchies: Advanced Lectures. - Berlin; Heidelberg: Springer, 2003. - P. 213-232.
9. Касперский, К. Техника оптимизации программ. Эффективное использование памяти / К. Касперский. - СПб.: БХВ-Петербург, 2003. - 300 с.
10. Гервич, Л. Программирование экзафлопсных систем / Л. Гервич, Б. Штейнберг, М. Юрушкин // Открытые системы. СУБД. - 2013. - № 8. - С. 26-29.
11. Абу-Халил, Ж.М. Параллельный алгоритм глобального выравнивания с оптимальным использованием памяти / Ж.М. Абу-Халил, Р.И. Морылев, Б.Я. Штейнберг // Современные проблемы науки и образования. - 2013. - № 1. - 6 с. - URL: http://www.science-education.ru/ru/article/view?id=8139
12. Корж, А.A. Результаты масштабирования бенчмарка NPB UA на тысячи ядер суперкомпьютера Blue Gene/P с помощью расширения OpenMP / А.A. Корж // Вычислительные методы и программирование. - 2010. - Т. 11. - С. 31-41.
13. Лиходед, Н.A. Обобщенный тайлинг / Н.A. Лиходед // Доклады НАН Беларуси. - 2011. - Т. 55, № 1. - С. 16-21.
14. Denning, P.J. The Locality Principle / P.J. Denning // Communications of the ACM. - 2005. - V. 48, № 7. - P. 19-24.
15. Gustavson, F.G. Cache Blocking for Linear Algebra Algorithms / F.G Gustavson, R. Wyrzykowski // Parallel Processing and Applied Mathematics 2011, Part I, Lectures Notes in Computer Science 7203. - 2012. - P. 122-132.
16. Lam, M.S. The Cache Performance and Optimizations of Blocked Algorithms / M.S. Lam, E.E. Rothberg, M.E. Wolf // Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. - 1991. - P. 63-74.
17. Goto, K. Anatomy of High-Performance Matrix Multiplication / K. Goto, R. van de Geijn // ACM Transactions on Mathematical Software. - 2008. - V. 34, № 3. - P. 1-25.
18. Mycroft, A. Programming Language Design and Analysis Motivated by Hardwere Evolution (Invited Presentation) / A. Mycroft // The 14th International Static Analysis Symposium. - 2013. - V. 3634. - P. 18-33. - URL: http://www.cl.cam.ac.uk/am21/papers/sas07final.pdf
19. Галушкин, А.И. Стратегия развития современных суперкомпьютеров на пути к экзафлопсным вычислениям / А.И. Галушкин // Приложение к журналу 'Информационные технологии'. - 2012. - № 2. - 32 c.
20. Арыков, С.Б. Система асинхронного параллельного программирования 'Аспект' / С.Б. Арыков, В.Э. Малышкин // Вычислительные методы и программирование. - 2008. - Т. 9, № 1. - C. 48-52.
21. Оптимизирующая распараллеливающая система. - 2016. - URL: www.ops.rsu.ru.
22. Ryder, B.G. Constructing the Call Graph of a Program / B.G. Ryder // Software Engineering, IEEE Transactions on Software Engineering. - 1979. - V. SE-5, № 3. - P. 216-226.