<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">vdgtu</journal-id><journal-title-group><journal-title xml:lang="ru">Вестник Дагестанского государственного технического университета. Технические науки</journal-title><trans-title-group xml:lang="en"><trans-title>Herald of Dagestan State Technical University. Technical Sciences</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2073-6185</issn><issn pub-type="epub">2542-095X</issn><publisher><publisher-name>Daghestan State Technical University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.21822/2073-6185-2023-50-4-37-50</article-id><article-id custom-type="elpub" pub-id-type="custom">vdgtu-1384</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ТЕЛЕКОММУНИКАЦИИ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>INFORMATION TECHNOLOGY AND TELECOMMUNICATIONS</subject></subj-group></article-categories><title-group><article-title>Построение параллельных одномерных интерполяторов на С++</article-title><trans-title-group xml:lang="en"><trans-title>Construction of parallel one-dimensional interpolators in C++</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Абилова</surname><given-names>Ф. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Abilova</surname><given-names>F. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Абилова Фарида Владимировна - кандидат физико-математических наук, доцент, заведующая кафедрой высшей математики.</p><p>367026, Махачкала, пр. И. Шамиля, 70</p></bio><bio xml:lang="en"><p>Farida V. Abilova - Cand. Sci. (Physics and Mathematics), Assoc. Prof., Department of Higher Mathematics.</p><p>70 I. Shamil Ave., Makhachkala 367026</p></bio><email xlink:type="simple">kvm@dstu.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Абилов</surname><given-names>М. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Abilov</surname><given-names>M. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Абилов Марат Владимирович - кандидат физико-математических наук, старший преподаватель кафедры высшей математики.</p><p>367026, Махачкала, пр. И. Шамиля, 70</p></bio><bio xml:lang="en"><p>Marat V. Abilov - Cand. Sci. (Physics and Mathematics), Senior Lecturer, Department of Higher Mathematics.</p><p>70 I. Shamil Ave., Makhachkala 367026</p></bio><email xlink:type="simple">abilov.marat70@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Селимханов</surname><given-names>Э. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Selimkhanov</surname><given-names>E. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Селимханов Эмирхан Валерьевич - ведущий специалист отдела разработки геологических проектов Управления развития информационных технологий.</p><p>450006, Уфа, ул. Ленина, д. 86/1</p></bio><bio xml:lang="en"><p>Emirkhan V. Selimkhanov - Leading Specialist of the Geological Projects Development Department of the Information Technology Development Department.</p><p>86/1 Lenina St., Ufa 450006</p></bio><email xlink:type="simple">postpost42@yandex.ru</email><xref ref-type="aff" rid="aff-2"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Дагестанский государственный технический университет</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Daghestan State Technical University</institution><country>Russian Federation</country></aff></aff-alternatives><aff-alternatives id="aff-2"><aff xml:lang="ru"><institution>ООО «РН-БашНИПИНефть»</institution><country>Россия</country></aff><aff xml:lang="en"><institution>LLC “RN-BashNIPIneft”</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2023</year></pub-date><pub-date pub-type="epub"><day>21</day><month>01</month><year>2024</year></pub-date><volume>50</volume><issue>4</issue><fpage>37</fpage><lpage>50</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Абилова Ф.В., Абилов М.В., Селимханов Э.В., 2024</copyright-statement><copyright-year>2024</copyright-year><copyright-holder xml:lang="ru">Абилова Ф.В., Абилов М.В., Селимханов Э.В.</copyright-holder><copyright-holder xml:lang="en">Abilova F.V., Abilov M.V., Selimkhanov E.V.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://vestnik.dgtu.ru/jour/article/view/1384">https://vestnik.dgtu.ru/jour/article/view/1384</self-uri><abstract><p>Цель. Целью работы является исследование и разработка интерполяторов на языке программирования C++, включая линейный, квадратичный и кубический интерполяторы, а также одномерный RBF-интерполятор. Основными задачами являются использование библиотеки GSL, интерполяционного многочлена Лагранжа, OpenMP, и сравнительный анализ с библиотекой SciPy. Эксперименты направлены на оценку эффективности и применимости различных методов интерполяции. Методы. Используются библиотеки GSL и Eigen для реализации интерполяторов и оптимизации вычислительных процессов. Для сравнения производительности применяются линейный, квадратичный и кубический интерполяторы, а также разрабатывается одномерный RBF-интерполятор. Метод интерполяции Лагранжа и параллельные вычисления с использованием OpenMP и SIMD-инструкций также используются для повышения эффективности. Результат. Результаты исследования включают в себя успешную разработку и реализацию различных методов интерполяции на языке C++. Особое внимание уделяется анализу производительности и точности каждого метода. Путем сравнительного анализа с библиотекой SciPy выявлены преимущества и недостатки различных интерполяторов. Основной результат - практическая применимость этих методов в контексте конкретных задач интерполяции. Вывод. Реализация интерполяторов на языке C++ обладает некоторыми значительными преимуществами по сравнению с использованием библиотеки SciPy. C++ позволяет более точное и быстрое управление вычислениями, что особенно важно в задачах, связанных с численными методами интерполяции. Библиотеки GSL и Eigen предоставляют мощные инструменты для оптимизации и высокопроизводительных вычислений, что позволяет добиваться высокой эффективности при реализации интерполяции на C++.</p></abstract><trans-abstract xml:lang="en"><p>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 ++.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>интерполяция</kwd><kwd>C++</kwd><kwd>GSL</kwd><kwd>радиально-базисные функции</kwd><kwd>Eigen</kwd><kwd>OpenMP</kwd><kwd>SIMD</kwd><kwd>интерполяционный многочлен Лагранжа</kwd><kwd>SciPy</kwd></kwd-group><kwd-group xml:lang="en"><kwd>Interpolation</kwd><kwd>C++</kwd><kwd>GSL</kwd><kwd>Radial Basis Functions</kwd><kwd>Eigen</kwd><kwd>OpenMP</kwd><kwd>SIMD</kwd><kwd>Lagrange Interpolation Polynomial</kwd><kwd>SciPy</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Stroustrup B. The C++ Programming Language, 4th Edition. Addison-Wesley. - 2013 – 1361 с.</mixed-citation><mixed-citation xml:lang="en">Stroustrup B. The C++ Programming Language, 4th Edition. Addison-Wesley. 2013; 1361.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Половко А.М., Бутусов П.Н. Интерполяция. Методы и компьютерные технологии их реализации. - СПб.: БХВ-Петербург, 2004 – 314 с.</mixed-citation><mixed-citation xml:lang="en">Polovko A.M., Butusov P.N. Interpolation. Methods and computer technologies for their implementation. - St. Petersburg: BHV-Petersburg, 2004;314. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Hardy R.L. Multiquadric equations of topography and other irregular surfaces. Journal of Geophysical Research. 76 (8): pp 1905–1915.</mixed-citation><mixed-citation xml:lang="en">Hardy R.L. Multiquadric equations of topography and other irregular surfaces. Journal of Geophysical Research. 76 (8): 1905–1915.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Galassi. M. GNU Scientific Library: Reference Manual, 3rd Edition. - Network Theory, 2009 – 573 с.</mixed-citation><mixed-citation xml:lang="en">Galassi M. GNU Scientific Library: Reference Manual, 3rd Edition. Network Theory, 2009; 573.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Антонов А.С. Параллельное программирование с использованием технологии OpenMP .— Москва: МГУ, 2009 .— 728 с.</mixed-citation><mixed-citation xml:lang="en">Antonov A.S. Parallel programming using OpenMP technology . Moscow: MSU, 2009; 728. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Нуньес-Иглесиас X., Уолт Ш., Дэншоу Х. Элегантный SciPy. - М.: ДМК Пресс, 2018. - 266с.</mixed-citation><mixed-citation xml:lang="en">Nunez-Iglesias J., Walt C., Danshaw H. Elegant SciPy. - M.: DMK Press, 2018; 266. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Документация библиотеки Eigen [дата обращения 29.08.2023]. Доступ по ссылке: https://eigen.tuxfamily.org</mixed-citation><mixed-citation xml:lang="en">Eigen C++ Library Documentation [accessed 29.08.2023]. URL: https://eigen.tuxfamily.org</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Paul C., Kenneth R. SIMD Programming Manual for Linux and Windows. - Springer, 2004 - 351с.</mixed-citation><mixed-citation xml:lang="en">Paul C., Kenneth R. SIMD Programming Manual for Linux and Windows. Springer, 2004; 351.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Лутц М. Изучаем Python, - Вильямс, 2019 - 832с.</mixed-citation><mixed-citation xml:lang="en">Lutz M. Learning Python - Williams, 2019; 832. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Соснин В., Балакшин П., Шилко Д., Пушкарев, Д., Мишенёв А., Кустарев П., Тропченко А. Введение в параллельные вычисления. - Санкт-Петербург, ИТМО, 2023 - 130с.</mixed-citation><mixed-citation xml:lang="en">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)</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Ермолицкий А.В., Нейман-заде М.И. Методы повышения эффективности автоматической векторизации вычислений. Доклады пятой международной конференции «Параллельные вычисления и задачи управления». - Москва. 2010 - c. 957-972.</mixed-citation><mixed-citation xml:lang="en">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)</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Калачев А. Многоядерные процессоры. Учебное пособие. - Просвещение, 2014 - 247с.</mixed-citation><mixed-citation xml:lang="en">Kalachev A. Multi-core processors. Tutorial. - Enlightenment, 2014;247. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Джосаттис Н. Стандартная библиотека С++, 2-е изд. : Пер с англ. – М. :OOO “И.Д. Вильямс”, 2014. – 1136 с.</mixed-citation><mixed-citation xml:lang="en">Josattis N. C++ Standard Library, 2nd Ed. M. :OOO “I.D. Williams”, 2014; 1136. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Мейерс С. Эффективный и современный С++. Пер. С англ. М. : ООО “И.Д. Вильямс”, 2016. – 304 с.</mixed-citation><mixed-citation xml:lang="en">Meyers S. Efficient and modern C++ – M. : OOO I.D. Williams”, 2016; 304. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Vandevoorde D., Josuttis N, Gregor D. C++ Templates. The Complete Guide, 2nd Edition. Addison-Wesley, 2018. – 849 c.</mixed-citation><mixed-citation xml:lang="en">Vandevoorde D., Josuttis N, Gregor D. C++ Templates. The Complete Guide, 2nd Edition. Addison-Wesley, 2018; 849.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Josuttis N. C++20 – The Complete Guide. The LeanPub, 2022 – 762 с.</mixed-citation><mixed-citation xml:lang="en">Josuttis N. C++20 – The Complete Guide. The LeanPub, 2022; 762.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Уильямс Э. С++. Практика многопоточного программирования. – СПб.: Питер, 2020. – 640 с.</mixed-citation><mixed-citation xml:lang="en">Williams E. C++. The practice of multithreaded programming. St. Petersburg: Peter, 2020; 640. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Пышкин Е.В. Структуры данных и алгоритмы: реализация на С++. СПб.:ФТК СПБГПУ, 2009. 200 с.</mixed-citation><mixed-citation xml:lang="en">Pyshkin E.V. Data Structures and Algorithms: Implementation in C++. St. Petersburg: FTK SPbGPU, 2009; 200. (In Russ)</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">Majdisova Z. Interpolation and Approximation Methods for Large Geometric Datasets. - University of West Bohemia, 2016 – pp 18 – 24.</mixed-citation><mixed-citation xml:lang="en">Majdisova Z. Interpolation andApproximation Methods for Large Geometric Datasets. University of West Bohemia, 2016;18 – 24.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">Авхадиев Ф.Г. Численные методы алгебры и анализа. Учебное пособие. Казань: Издательство Казанского университета, 2019. – 200 с.</mixed-citation><mixed-citation xml:lang="en">Avkhadiev F.G. Numerical methods of algebra and analysis. Tutorial. Kazan: Kazan University Press, 2019; 200. (In Rus)</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Банников А.С., Ким И.Г., Латыпова Н.В. Численные методы. Учебное пособие. Ч 1. – 2-е изд., испр. и доп. – Ижевск: Издательский центр «Удмуртский университет», 2018. – 80 с.</mixed-citation><mixed-citation xml:lang="en">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)</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Колмогоров А.Н., Фомин С.В. Элементы теории функций и функционального анализа. Главная редакция физико-математической литературы изд-ва «Наука», М., 1975. – 575 с.</mixed-citation><mixed-citation xml:lang="en">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)</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">Gentle J.E. «Random Number Generation and Monte Carlo Methods», 2nd Edition. Springer, 2003. 399 p.</mixed-citation><mixed-citation xml:lang="en">Gentle J.E. «Random Number Generation and Monte Carlo Methods», 2nd Edition. Springer, 2003; 399.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">Документация библиотеки NumPy [дата обращения 1.09.2023]. Доступ по ссылке: https://numpy.org/doc/stable/</mixed-citation><mixed-citation xml:lang="en">NumPy Documentation [accessed 1.09.2023]. URL: https://numpy.org/doc/stable/</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">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 .</mixed-citation><mixed-citation xml:lang="en">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 .</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">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.</mixed-citation><mixed-citation xml:lang="en">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.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
