Реализация библиотеки математических функций с параллелизмом на уровне операций на языке Пифагор
Автор: Удалова Ю.В., Кузьмин Д.А.
Журнал: Сибирский аэрокосмический журнал @vestnik-sibsau
Рубрика: Информатика, вычислительная техника и управление
Статья в выпуске: 2 т.20, 2019 года.
Бесплатный доступ
К настоящему времени параллельное программирование обеспечивается большим объемом развитых инструментов и библиотек, базирующихся на императивном программировании с применением параллельных процессов или потоков (нитей), также развиваются средства распараллеливания и для функциональных языков программирования. Вместе с перечисленными инструментами существуют и альтернативные подходы к организации параллельных вычислений, один из которых реализуется языком функционально-потокового параллельного программирования Пифагор, поддерживающим параллелизм на уровне операций. И теоретические концепции, и инструментальные средства обозначенного языка программирования активно развиваются, расширяется репозиторий разработанных функций. Разработано множество математических функций, без встроенной реализации которых затруднено комфортное программирование многих задач, способное предоставить разработчику не меньшую функциональность, чем математическая библиотека math.h языка С. Большая часть математических функций реализована с помощью рядов Маклорена. Используется как подход, предоставляющий более быстрые и менее точные вычисления, при котором без циклов и рекурсий вычисляется предопределенное количество элементов ряда с подстановкой в код функции заранее вычисленных коэффициентов, так и подход, предоставляющий менее быстрые и более точные вычисления, при котором элементы ряда вычисляются динамически до достижения нужной точности. Для части функций ряд Маклорена имеет ощутимо разный уровень точности в рамках своей области определения, тогда в окрестностях точек, отрицательно влияющих на точность ряда, искомая функция уточняется с помощью дополнительных математических формул, например, формул приведения. Задача описания библиотеки математических функций языка является прикладной алгоритмической задачей, уже реализованной тем или иным образом для ряда существующих языков программирования. При этом во многих языках реализация алгоритмов математических функций скрыта от пользователя, последнему предоставляется только возможность программного вызова такой функции, тогда как современные инструментальные средства языка Пифагор поддерживают открытый репозиторий функций. Применительно к языку программирования Пифагор интерес представляют особенности и возможности распараллеливания на уровне операций при вычислении математических формул, представленные в статье.
Параллелизм на уровне операций, функционально-потоковое программирование, алгоритмы математических функций
Короткий адрес: https://sciup.org/148321910
IDR: 148321910 | DOI: 10.31772/2587-6066-2019-20-2-191-196