Построение параллельных одномерных интерполяторов на С++
https://doi.org/10.21822/2073-6185-2023-50-4-37-50
Аннотация
Цель. Целью работы является исследование и разработка интерполяторов на языке программирования C++, включая линейный, квадратичный и кубический интерполяторы, а также одномерный RBF-интерполятор. Основными задачами являются использование библиотеки GSL, интерполяционного многочлена Лагранжа, OpenMP, и сравнительный анализ с библиотекой SciPy. Эксперименты направлены на оценку эффективности и применимости различных методов интерполяции. Методы. Используются библиотеки GSL и Eigen для реализации интерполяторов и оптимизации вычислительных процессов. Для сравнения производительности применяются линейный, квадратичный и кубический интерполяторы, а также разрабатывается одномерный RBF-интерполятор. Метод интерполяции Лагранжа и параллельные вычисления с использованием OpenMP и SIMD-инструкций также используются для повышения эффективности. Результат. Результаты исследования включают в себя успешную разработку и реализацию различных методов интерполяции на языке C++. Особое внимание уделяется анализу производительности и точности каждого метода. Путем сравнительного анализа с библиотекой SciPy выявлены преимущества и недостатки различных интерполяторов. Основной результат - практическая применимость этих методов в контексте конкретных задач интерполяции. Вывод. Реализация интерполяторов на языке C++ обладает некоторыми значительными преимуществами по сравнению с использованием библиотеки SciPy. C++ позволяет более точное и быстрое управление вычислениями, что особенно важно в задачах, связанных с численными методами интерполяции. Библиотеки GSL и Eigen предоставляют мощные инструменты для оптимизации и высокопроизводительных вычислений, что позволяет добиваться высокой эффективности при реализации интерполяции на C++.
Ключевые слова
Об авторах
Ф. В. АбиловаРоссия
Абилова Фарида Владимировна - кандидат физико-математических наук, доцент, заведующая кафедрой высшей математики.
367026, Махачкала, пр. И. Шамиля, 70
М. В. Абилов
Россия
Абилов Марат Владимирович - кандидат физико-математических наук, старший преподаватель кафедры высшей математики.
367026, Махачкала, пр. И. Шамиля, 70
Э. В. Селимханов
Россия
Селимханов Эмирхан Валерьевич - ведущий специалист отдела разработки геологических проектов Управления развития информационных технологий.
450006, Уфа, ул. Ленина, д. 86/1
Список литературы
1. Stroustrup B. The C++ Programming Language, 4th Edition. Addison-Wesley. - 2013 – 1361 с.
2. Половко А.М., Бутусов П.Н. Интерполяция. Методы и компьютерные технологии их реализации. - СПб.: БХВ-Петербург, 2004 – 314 с.
3. Hardy R.L. Multiquadric equations of topography and other irregular surfaces. Journal of Geophysical Research. 76 (8): pp 1905–1915.
4. Galassi. M. GNU Scientific Library: Reference Manual, 3rd Edition. - Network Theory, 2009 – 573 с.
5. Антонов А.С. Параллельное программирование с использованием технологии OpenMP .— Москва: МГУ, 2009 .— 728 с.
6. Нуньес-Иглесиас X., Уолт Ш., Дэншоу Х. Элегантный SciPy. - М.: ДМК Пресс, 2018. - 266с.
7. Документация библиотеки Eigen [дата обращения 29.08.2023]. Доступ по ссылке: https://eigen.tuxfamily.org
8. Paul C., Kenneth R. SIMD Programming Manual for Linux and Windows. - Springer, 2004 - 351с.
9. Лутц М. Изучаем Python, - Вильямс, 2019 - 832с.
10. Соснин В., Балакшин П., Шилко Д., Пушкарев, Д., Мишенёв А., Кустарев П., Тропченко А. Введение в параллельные вычисления. - Санкт-Петербург, ИТМО, 2023 - 130с.
11. Ермолицкий А.В., Нейман-заде М.И. Методы повышения эффективности автоматической векторизации вычислений. Доклады пятой международной конференции «Параллельные вычисления и задачи управления». - Москва. 2010 - c. 957-972.
12. Калачев А. Многоядерные процессоры. Учебное пособие. - Просвещение, 2014 - 247с.
13. Джосаттис Н. Стандартная библиотека С++, 2-е изд. : Пер с англ. – М. :OOO “И.Д. Вильямс”, 2014. – 1136 с.
14. Мейерс С. Эффективный и современный С++. Пер. С англ. М. : ООО “И.Д. Вильямс”, 2016. – 304 с.
15. Vandevoorde D., Josuttis N, Gregor D. C++ Templates. The Complete Guide, 2nd Edition. Addison-Wesley, 2018. – 849 c.
16. Josuttis N. C++20 – The Complete Guide. The LeanPub, 2022 – 762 с.
17. Уильямс Э. С++. Практика многопоточного программирования. – СПб.: Питер, 2020. – 640 с.
18. Пышкин Е.В. Структуры данных и алгоритмы: реализация на С++. СПб.:ФТК СПБГПУ, 2009. 200 с.
19. Majdisova Z. Interpolation and Approximation Methods for Large Geometric Datasets. - University of West Bohemia, 2016 – pp 18 – 24.
20. Авхадиев Ф.Г. Численные методы алгебры и анализа. Учебное пособие. Казань: Издательство Казанского университета, 2019. – 200 с.
21. Банников А.С., Ким И.Г., Латыпова Н.В. Численные методы. Учебное пособие. Ч 1. – 2-е изд., испр. и доп. – Ижевск: Издательский центр «Удмуртский университет», 2018. – 80 с.
22. Колмогоров А.Н., Фомин С.В. Элементы теории функций и функционального анализа. Главная редакция физико-математической литературы изд-ва «Наука», М., 1975. – 575 с.
23. Gentle J.E. «Random Number Generation and Monte Carlo Methods», 2nd Edition. Springer, 2003. 399 p.
24. Документация библиотеки NumPy [дата обращения 1.09.2023]. Доступ по ссылке: https://numpy.org/doc/stable/
25. Zhang N., Canini K., Silva S., Gupta M. Fast Linear Interpolation. ACM Journal on Emerging Technologies in Computer Systems, Volume 17, Article No.: 20, 2021, pp 1-15 .
26. Li C., Zhao R. Implementation of RBF Mesh Deformation with Topology Refinement in OpenFOAM. Proceedings of the 2020 4th International Conference on High Performance Compilation, Computing and Communications. 2020, pp 79-93.
Рецензия
Для цитирования:
Абилова Ф.В., Абилов М.В., Селимханов Э.В. Построение параллельных одномерных интерполяторов на С++. Вестник Дагестанского государственного технического университета. Технические науки. 2023;50(4):37-50. https://doi.org/10.21822/2073-6185-2023-50-4-37-50
For citation:
Abilova F.V., Abilov M.V., Selimkhanov E.V. Construction of parallel one-dimensional interpolators in C++. Herald of Dagestan State Technical University. Technical Sciences. 2023;50(4):37-50. (In Russ.) https://doi.org/10.21822/2073-6185-2023-50-4-37-50