Статья

Название статьи УСКОРЕНИЕ РАСЧЕТА ДИНАМИЧЕСКОГО НАПРЯЖЕННО-ДЕФОРМИРОВАННОГО СОСТОЯНИЯ С ПОМОЩЬЮ НАБОРОВ ВЕКТОРНЫХ ИНСТРУКЦИЙ
Автор В.В. Гетманский, Е.О. Мовчан, А.Е. Андреев
Рубрика РАЗДЕЛ II. МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СУПЕРКОМПЬЮТЕРОВ
Месяц, год 11, 2016
Индекс УДК 004.272.32, 519.683.4, 519.683.8
DOI 10.18522/2311-3103-2016-11-2739
Аннотация Рассмотрен один из способов ускорения расчета динамики систем тел за счет оптимизации под архитектуру процессора с векторными инструкциями. Задача является актуальной в связи с необходимостью проведения большого числа вычислительных экспериментов за ограниченное время. Приведено математическое описание метода и вычислительный алгоритм. Разработан эффективный код для определения динамического напряженно-деформированного состояния тел в сложных механизмах, выполняемый на процессорах, поддерживающих векторные расширения SSE, AVX, FMA и KNC (архитектура Xeon Phi Knights Corner). В расчете использован метод дискретных элементов, являющийся одной из реализаций метода моделирования динамики систем тел со связями. Основными вычислительно сложными компонентами расчета являются расчет правых частей системы с использованием матрично-векторных преобразований в пространстве, расчет углов Эйлера и вычисление матриц поворота, а также численное интегрирование уравнений с помощью явного метода Рунге-Кутты 4-го порядка. Вычислительный алгоритм имеет ограниченную масштабируемость при использовании параллельных вычислений из-за сильной зависимости по данным, в связи с чем оптимизация алгоритма является важным направлением исследования для ускорения расчетов. Для эффективной векторизации вычислений рассмотрен специальный формат хранения данных матриц и векторов в памяти. Для матриц и векторов, превышающих по размерности длину векторных регистров процессора, разработаны варианты операций блочного умножения под каждый набор инструкций. Для матриц и векторов размерностью меньше длины регистров (в случае AVX для одинарной точности представления вещественных чисел и в случае KNC для двойной точности) разработаны микроалгоритмы для упаковки нескольких строк матриц и нескольких векторов в один векторный регистр с перераспределением элементов. Микроалгоритмы реализованы с помощью функций, реализующих векторные инструкции для каждого набора векторных регистров. Достигнуто ускорение расчета до 3-х раз за счет векторизации и проведено сравнение времени расчета, векторизованного с помощью авторского алгоритма, с результатами, полученными путем автовекторизации компилятором.

Скачать в PDF

Ключевые слова Автовекторизация; оптимизация кода; векторные регистры; динамика системы тел; SIMD.
Библиографический список 1. Гетманский В.В., Горобцов А.С., Измайлов Т.Д. Распараллеливание расчёта напряжённо-деформированного состояния тела в многотельной модели методом декомпозиции рас-чётной области // Известия ВолгГТУ. Серия "Актуальные проблемы управления, вычислительной техники и информатики в технических системах". – 2013. – Вып. 16, № 8 (111). – С. 5-10.
2. Getmanskiy V.V., Gorobtsov A.S., Sergeev E.S., Ismailov T.D., Shapovalov O.V. Concurrent simulation of multibody systems coupled with stress-strain and heat transfer solvers // Journal of Computational Science. – 2012. – No. 3 (6). – P. 492-497.
3. Сергеев Е.С., Гетманский В.В., Горобцов А.С. Перенос системы многотельной динамики на вычислительный кластер // Научно-технические ведомости Санкт-Петербургского гос. политехн. ун-та. – 2010. – Вып. 101. – C. 93-99.
4. Горобцов А.С., Гетманский В.В., Андреев А.Е., Doan D.T. Simulation and Visualization Software for Vehicle Dynamics Analysis Using Multibody System Approach // Creativity in Intelligent Technologies and Data Science. CIT&DS 2015: Proceedings: ed. by A. Kravets et. al., Springer International Publishing, Switzerland, 2015. – P. 379-391.
5. Andreev A., Nasonov A., Novokschenov A., Bochkarev A., Kharkov E., Zharikov D., Kharchenko S., Yuschenko A. Vectorization algorithms of block linear algebra operations using SIMD instructions // Communications in Computer and Information Science. – 2014.
– Vol. 535. – P. 323-340.
6. Mulansky M. Optimizing Large-Scale ODE Simulations // SIAM Journal of Scientific Com-puting. – 2014. – 18 p.
7. Bialas P., Kowal J., Strzelecky A. GPU-accelerated and CPU SIMD optimized Monte Carlo simulation // Computing and Informatics. – 2014. – Vol. 33. – P. 1191-1208.
8. Kral S. Franchetti F., Lorenz J. and Ueberhuber C.W. SIMD Vectorization of Straight Line FFT Code. – P. 251-260.
9. Jeong H., Kim S., Lee W. and Myung S.-H. Performance of SSE and AVX Instruction Sets // The 30th International Symposium on Lattice Field Theory (June 24 – 29, 2012 Cairns, Aus-tralia): Proceedings. – P. 249-258.
10. Заранек С.В., Чоу Б., Шарма Г., Зарринкуб Х. Ускорение алгоритмов и приложений MATLAB. – URL: http://matlab.ru/articles/Matlab_acceleration.pdf. (дата обращения: 22.09.2016).
11. Лемешевский С.В. Численные методы решения уравнений в частных производных.
– URL: http://slemeshevsky.github.io/python-num-pde/term2/build/latex/FDMforPDE.pdf. (дата обращения: 12.08.2016).
12. Алексеев В.А., Головашкин Д.Л. Векторизация метода распространяющегося пучка и его реализация по технологии CUDA // Компьютерная оптика. – 2010. – Т. 34, № 2. – С. 225-230.
13. Иванов К.А. [и др.]. Прикладная теория пластичности. – М.: Политехника, 2009. – 376 с.
14. Горелов Ю.Н. Численные методы решения обыкновенных дифференциальных уравнений (метод Рунге – Кутта): учеб. пособие. – Самара: Изд-во «Самарский университет», 2006. – 48 с.
15. Яглом И.М. Геометрические преобразования. Ч. 1. Движения и преобразования подобия. – М.: Государственное издательство технико-теоретической литературы, 1956. – 280 c.
16. Кузнецов Е.Б. Об одном подходе к интегрированию кинематических уравнений Эйлера // Вычислительная математика и математическая физика. – 1998. – Т. 38, № 11.
– С. 1806-1813.
17. Конищев Д. Что такое выравнивание и как оно влияет на работу ваших программ.
– URL: http://webcache.googleusercontent.com/search?q=cache:rb4kHpT7ansJ:konishchev dmitry.blogspot.com/2010/01/blog-post.html+&cd=1&hl=en&ct=clnk&gl=ru. (дата обращения: 12.08.2016)..
18. Ермолицкий А.Е. Методы повышения эффективности векторизации в оптимизирующем компиляторе // Вопросы радиоэлектроники. Сер. ЭВТ. – 2010. – Вып. 3. – C. 41-50.
19. Muller J.-M., Brisebarre N. The Fused Multiply-Add Instructions // Handbook of Floating-point Arithmetic. – 2009. – P. 151-179.
20. Zumbusch G. Vectorized Higher Order Finite Difference Kernels // State-of-the-Art in Scientific and Parallel Computing (PARA). – 2012. – P. 343-357.

Comments are closed.