Векторизация римановского решателя с использованием набора инструкций AVX-512
Автор: Рыбаков Алексей Анатольевич, Шумилин Сергей Сергеевич
Журнал: Программные системы: теория и приложения @programmnye-sistemy
Рубрика: Программное и аппаратное обеспечение распределенных и суперкомпьютерных систем
Статья в выпуске: 3 (42) т.10, 2019 года.
Бесплатный доступ
Численные методы, базирующиеся на решении задачи Римана о распаде произвольного разрыва, крайне требовательны к вычислительным ресурсам. Для применения данных численных методов на современных расчетных сетках требуется использование суперкомпьютера. Среди различных инструментов повышения производительности суперкомпьютерных приложений можно выделить векторизацию программного кода. Набор инструкций AVX-512 обладает рядом уникальных возможностей, позволяющих применить векторизацию к программному контексту римановского решателя, что ведет к значительному ускорению решателя. На примере точного римановского решателя рассматривается практический подход к векторизации разнообразного программного контекста, включая простые линейные участки, регионы со сложным управлением, а также вложенные циклы. В основе рассматриваемого подхода лежит возможность одновременного выполнения на одном процессорном ядре нескольких экземпляров некоторой чистой функции. Данная возможность достигается путем перевода программного кода в предикатную форму и использования векторных инструкций. При этом количество одновременно выполняющихся экземпляров равно ширине вектора. Показано, что использование возможностей набора команд AVX-512 позволяет успешно векторизовать рассматриваемый программный контекст. Предложенный подход может быть применен для векторизации широкого спектра приложений.
Задача римана о распаде произвольного разрыва, римановский решатель, векторизация, функции-интринсики
Короткий адрес: https://sciup.org/143169802
IDR: 143169802 | DOI: 10.25209/2079-3316-2019-10-3-59-80
Список литературы Векторизация римановского решателя с использованием набора инструкций AVX-512
- А. Г. Куликовский, Н. В. Погорелов, А. Ю. Семенов. Математические вопросы численного решения гиперболических систем уравнений, Физматлит, М., 2001, 608 с.
- В. Е. Борисов, Ю. Г. Рыков. «Точный римановский солвер в алгоритмах решения задач многокомпонентной газовой динамики», Препринты ИПМ им. М. В. Келдыша, 2018, 096, 28 с. DOI: 10.20948/prepr-2018-96
- С. К. Годунов, А. В. Забродин, М. Я. Иванов, А. Н. Крайко, Г. П. Прокопов. Численное решение многомерных задач газовой динамики, Наука, М., 1976, 400 с.
- U. Shumlak, B. Udrea. An approximate Riemann solver for MHD computations on parallel architectures, 15th AIAA Computational Fluid Dynamics Conference (11 June 2001-14 June 2001, Anaheim, CA, USA), 2001, 8 pp. DOI: 10.2514/6.2001-2591
- H.-Y. Schive, U.-H. Zhang, T. Chiueh. “Directionally unsplit hydrodynamic schemes with hybrid MPI/OpenMP/GPU parallelization in AMR”, International Journal of High Performance Computing Applications, 26:4 (2011), pp. 367-377. DOI: 10.1177/1094342011428146
- K. T. Mandly, A. Alghamdi, A. Ahmadia, D. I. Ketcheson, W. Scullin. “Using Python to construct a scalable parallel nonlinear wave solver”, SCIPY 2011 (11-16 Jule 2011, Austin, Texas, USA), 2011, pp. 61-66.
- И. М. Куликов, И. Г. Черных, Э. И. Воробьев, А. В. Снытников, Д. В. Винс и др. «Численное гидродинамическое моделирование астрофизических течений на гибридных СуперЭВМ, оснащенных ускорителями Intel Xeon Phi», Вестн. ЮУрГУ. Сер. Выч. матем. информ., 5:4 (2016), с. 77-97.
- DOI: 10.14529/cmse160406
- I. Kulikov, I. Chernykh, V. Vshivkov, V. Prigarin, V. Mironov, A. Tatukov. “The parallel hydrodynamic code for astrophysical flow with stellar equation of state”, Communications in Computer and Information Science, vol. 965, Springer, Cham, 2018, pp. 414-426.
- DOI: 10.1007/978-3-030-05807-4_35
- M. Bader, A. Breuer, W. Höltz, S. Rettenberger. “Vectorization of an augmented Riemann solver for the shallow water equations”, HPCS 2014 (21-25 July 2014, Bologna, Italy), 2014, pp. 193-201.
- DOI: 10.1109/HPCSim.2014.6903686
- C. R. Ferreira, K. T. Mandli, M. Bader. “Vectorization of Riemann solvers for the single- ans multi-layer shallow water equations”, HPCS 2018 (16-20 July 2018, Orleans, France), 2018, pp. 415-422.
- DOI: 10.1109/hpcs.2018.00073
- В. Ю. Волконский, С. К. Окунев. «Предикатное представление как основа оптимизации программы для архитектур с явно выраженной параллельностью», Информационные технологии, 2003, №4, с. 36-45.
- А. К. Ким, В. И. Перекатов, С. Г. Ермаков. Микропроцессоры и вычислительные комплексы семейства «Эльбрус», Питер, СПб., 2013, 273 с.
- Intel Intrinsics Guide, https://software.intel.com/sites/landingpage/IntrinsicsGuide/.
- E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics: A Practical Introduction, 2nd Edition, Springer, Berlin-Heidelberg, 1999, 645 pp.
- А. А. Рыбаков. «Оптимизация задачи об определении конфликтов с опасными зонами движения летательных аппаратов для выполнения на Intel Xeon Phi», Программные продукты и системы, 30:3 (2017), с. 524-528.
- DOI: 10.15827/0236-235X.119.524-528
- А. А. Рыбаков, П. Н. Телегин, Б. М. Шабанов. «Проблемы векторизации гнезд циклов с использованием инструкций AVX-512», Программные продукты, системы и алгоритмы, 2018, №3, 11 с.
- DOI: 10.15827/2311-6749.28.314
- O. Krzikalla, F. Wende, M. Hohnerbach. “Dynamic SIMD vector lane scheduling”, Lect. Notes Comput. Sci., vol. 9945, Springer, Cham, 2016, pp. 354-365.
- DOI: 10.1007/978-3-319-46079-6_25
- П. В. Булат, К. Н. Волков. «Одномерные задачи газовой динамики и их решение при помощи разностных схем высокой разрешающей способности», Научно-технический вестник информационных технологий, механики и оптики, 15:4 (2015), с. 731-740.
- DOI: 10.17586/2226-1494-2015-15-4-731-740
- Л. А. Бендерский, Д. А. Любимов, А. А. Рыбаков. «Анализ эффективности масштабирования при расчетах высокоскоростных турбулентных течений на суперкомпьютере RANS/ILES методом высокого разрешения», Труды НИИСИ РАН, 7:4 (2017), с. 32-40.
- DOI: 10.25682/NIISI.2018.4.9975
- C. Kong. Comparison of Approximate Riemann Solvers, Department of Mathematics, University of Reading, 2011.
- D. L. George. “Augmented Riemann solvers for the shallow water equations over variable topography with steady states and inundation”, Journal of Computational Physics, 227:6 (2008), pp. 3089-3113.
- DOI: 10.1016/j.jcp.2007.10.027