Preview

Herald of Dagestan State Technical University. Technical Sciences

Advanced search

Construction of parallel one-dimensional interpolators in C++

https://doi.org/10.21822/2073-6185-2023-50-4-37-50

Abstract

Objective. The purpose of this article is to research and develop interpolators in the C++ programming language, including linear, quadratic and cubic interpolators, as well as a one-dimensional RBF interpolator. The main tasks are the use of the GSL library, the Lagrange interpolation polynomial, OpenMP, and comparative analysis with the SciPy library. The experiments are aimed at evaluating the effectiveness and applicability of various interpolation methods. Method. The work uses the GSL and Eigen libraries to implement interpolators and optimize computational processes. Linear, quadratic, and cubic interpolators are used to compare performance, and a one-dimensional RBF interpolator is being developed. The Lagrange interpolation method and parallel computing using OpenMP and SIMD are also used to improve efficiency. Result. The results of the research include the successful development and implementation of various interpolation methods in C++. Particular attention is paid to the analysis of the performance and accuracy of each method. Through a comparative analysis with the SciPy library, the authors identify the advantages and disadvantages of various interpolators. The main result is the practical applicability of these methods in the context of specific interpolation problems. Conclusion. The study made it possible to make sure that the implementation of interpolators in the C ++ language has some significant advantages compared to using the SciPy library. In particular, C++ allows for more precise and faster control over calculations, which is especially important in tasks related to numerical interpolation methods. The GSL and Eigen libraries provide powerful tools for optimization and high performance computing, which allows you to achieve high efficiency when implementing interpolation in C ++.

About the Authors

F. V. Abilova
Daghestan State Technical University
Russian Federation

Farida V. Abilova - Cand. Sci. (Physics and Mathematics), Assoc. Prof., Department of Higher Mathematics.

70 I. Shamil Ave., Makhachkala 367026



M. V. Abilov
Daghestan State Technical University
Russian Federation

Marat V. Abilov - Cand. Sci. (Physics and Mathematics), Senior Lecturer, Department of Higher Mathematics.

70 I. Shamil Ave., Makhachkala 367026



E. V. Selimkhanov
LLC “RN-BashNIPIneft”
Russian Federation

Emirkhan V. Selimkhanov - Leading Specialist of the Geological Projects Development Department of the Information Technology Development Department.

86/1 Lenina St., Ufa 450006



References

1. Stroustrup B. The C++ Programming Language, 4th Edition. Addison-Wesley. 2013; 1361.

2. Polovko A.M., Butusov P.N. Interpolation. Methods and computer technologies for their implementation. - St. Petersburg: BHV-Petersburg, 2004;314. (In Russ)

3. Hardy R.L. Multiquadric equations of topography and other irregular surfaces. Journal of Geophysical Research. 76 (8): 1905–1915.

4. Galassi M. GNU Scientific Library: Reference Manual, 3rd Edition. Network Theory, 2009; 573.

5. Antonov A.S. Parallel programming using OpenMP technology . Moscow: MSU, 2009; 728. (In Russ)

6. Nunez-Iglesias J., Walt C., Danshaw H. Elegant SciPy. - M.: DMK Press, 2018; 266. (In Russ)

7. Eigen C++ Library Documentation [accessed 29.08.2023]. URL: https://eigen.tuxfamily.org

8. Paul C., Kenneth R. SIMD Programming Manual for Linux and Windows. Springer, 2004; 351.

9. Lutz M. Learning Python - Williams, 2019; 832. (In Russ)

10. Sosnin V., Balakshin P., Shilko D., Pushkarev D., Mishenyov A., Kustarev P., Tropchenko A. Introduction to parallel computing. St. Petersburg, ITMO, 2023; 130. (In Russ)

11. Ermolitsky A.V., Neumann-zade M.I. Methods for increasing the efficiency of automatic vectorization of calculations. Reports of the fifth international conference "Parallel Computing and Control Problems". - Moscow. 2010; 957-972. (In Russ)

12. Kalachev A. Multi-core processors. Tutorial. - Enlightenment, 2014;247. (In Russ)

13. Josattis N. C++ Standard Library, 2nd Ed. M. :OOO “I.D. Williams”, 2014; 1136. (In Russ)

14. Meyers S. Efficient and modern C++ – M. : OOO I.D. Williams”, 2016; 304. (In Russ)

15. Vandevoorde D., Josuttis N, Gregor D. C++ Templates. The Complete Guide, 2nd Edition. Addison-Wesley, 2018; 849.

16. Josuttis N. C++20 – The Complete Guide. The LeanPub, 2022; 762.

17. Williams E. C++. The practice of multithreaded programming. St. Petersburg: Peter, 2020; 640. (In Russ)

18. Pyshkin E.V. Data Structures and Algorithms: Implementation in C++. St. Petersburg: FTK SPbGPU, 2009; 200. (In Russ)

19. Majdisova Z. Interpolation andApproximation Methods for Large Geometric Datasets. University of West Bohemia, 2016;18 – 24.

20. Avkhadiev F.G. Numerical methods of algebra and analysis. Tutorial. Kazan: Kazan University Press, 2019; 200. (In Rus)

21. Bannikov A.S., Kim I.G., Latypova N.V. Numerical methods. Tutorial. Ch 1. - 2nd ed., Rev. and additional - Izhevsk: Publishing Center "Udmurt University", 2018; 80. (In Russ)

22. Kolmogorov A.N., Fomin S.V. Elements of the theory of functions and functional analysis. The main edition of the physical and mathematical literature of the publishing house "Nauka", M., 1975; 575. (In Russ)

23. Gentle J.E. «Random Number Generation and Monte Carlo Methods», 2nd Edition. Springer, 2003; 399.

24. NumPy Documentation [accessed 1.09.2023]. URL: 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;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; 79-93.


Review

For citations:


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

Views: 239


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2073-6185 (Print)
ISSN 2542-095X (Online)