Перевод названия: РЕАЛИЗАЦИЯ БИБЛИОТЕКИ МАТЕМАТИЧЕСКИХ ФУНКЦИЙ С ПАРАЛЛЕЛИЗМОМ НА УРОВНЕ ОПЕРАЦИЙ НА ЯЗЫКЕ ПИФАГОР
Тип публикации: статья из журнала
Год издания: 2019
Идентификатор DOI: 10.31772/2587-6066-2019-20-2-191-196
Ключевые слова: параллелизм на уровне операций, функционально-потоковое программирование, алгоритмы математических функций, parallelism at the operation levels, functional-stream programming, algorithms of mathematical functions
Аннотация: At present, developed tools and libraries have been designed for imperative and functional programming languages that provide parallelism through processes or threads. There are other alternative approaches to the organization of parallel computing, one of which is implemented in Pythagor - the language of functional-streaming paraПоказать полностьюllel programming, and involves parallelism at the level of operations. The tools of the Pythagor programming language are actively developing, and the repository of predefined functions is expanding. Many mathematical functions have been designed to provide a developer with no less functionality than the math library math.h of the C programming language. A large part of the mathematical functions have been implemented using the Maclaurin’s series. It is both used as an approach of faster and less accurate calculations, in which a predetermined number of elements of the series is calculated without cycles and recursions with the substitution of pre-calculated coefficients in the function code, and as an approach of less rapid and more accurate calculations, in which the elements of the series are calculated dynamically until the desired accuracy is achieved. The development of a library of mathematical functions of a programming language is an applied algorithmic task already implemented in one way or another for a number of existing programming languages. But in many languages, the implementation of algorithms for mathematical functions is hidden from the user, while modern tools of the Pythagor language support an open repository of functions. Additional interest is the possibility of parallelism at the level of operations in the calculation of mathematical formulas in the Pythagor language. К настоящему времени параллельное программирование обеспечивается большим объемом развитых инструментов и библиотек, базирующихся на императивном программировании с применением параллельных процессов или потоков (нитей), также развиваются средства распараллеливания и для функциональных языков программирования. Вместе с перечисленными инструментами существуют и альтернативные подходы к организации параллельных вычислений, один из которых реализуется языком функционально-потокового параллельного программирования Пифагор, поддерживающим параллелизм на уровне операций. И теоретические концепции, и инструментальные средства обозначенного языка программирования активно развиваются, расширяется репозиторий разработанных функций. Разработано множество математических функций, без встроенной реализации которых затруднено комфортное программирование многих задач, способное предоставить разработчику не меньшую функциональность, чем математическая библиотека math.h языка С. Большая часть математических функций реализована с помощью рядов Маклорена. Используется как подход, предоставляющий более быстрые и менее точные вычисления, при котором без циклов и рекурсий вычисляется предопределенное количество элементов ряда с подстановкой в код функции заранее вычисленных коэффициентов, так и подход, предоставляющий менее быстрые и более точные вычисления, при котором элементы ряда вычисляются динамически до достижения нужной точности. Для части функций ряд Маклорена имеет ощутимо разный уровень точности в рамках своей области определения, тогда в окрестностях точек, отрицательно влияющих на точность ряда, искомая функция уточняется с помощью дополнительных математических формул, например, формул приведения. Задача описания библиотеки математических функций языка является прикладной алгоритмической задачей, уже реализованной тем или иным образом для ряда существующих языков программирования. При этом во многих языках реализация алгоритмов математических функций скрыта от пользователя, последнему предоставляется только возможность программного вызова такой функции, тогда как современные инструментальные средства языка Пифагор поддерживают открытый репозиторий функций. Применительно к языку программирования Пифагор интерес представляют особенности и возможности распараллеливания на уровне операций при вычислении математических формул, представленные в статье.
Журнал: Сибирский журнал науки и технологий
Выпуск журнала: Т. 20, № 2
Номера страниц: 191-196
ISSN журнала: 25876066
Место издания: Красноярск
Издатель: Федеральное государственное бюджетное образовательное учреждение высшего образования Сибирский государственный университет науки и технологий имени академика М.Ф. Решетнева