Реализация библиотеки математических функций с параллелизмом на уровне операций на языке Пифагор

Обложка

Цитировать

Полный текст

Аннотация

К настоящему времени параллельное программирование обеспечивается большим объемом развитых инструментов и библиотек, базирующихся на императивном программировании с применением параллельных процессов или потоков (нитей), также развиваются средства распараллеливания и для функциональных языков программирования. Вместе с перечисленными инструментами существуют и альтернативные подходы к организации параллельных вычислений, один из которых реализуется языком функционально-потокового параллельного программирования Пифагор, поддерживающим параллелизм на уровне операций.

И теоретические концепции, и инструментальные средства обозначенного языка программирования активно развиваются, расширяется репозиторий разработанных функций. Разработано множество математических функций, без встроенной реализации которых затруднено комфортное программирование многих задач, способное предоставить разработчику не меньшую функциональность, чем математическая библиотека math.h языка С. Большая часть математических функций реализована с помощью рядов Маклорена. Используется как подход, предоставляющий более быстрые и менее точные вычисления, при котором без циклов и рекурсий вычисляется предопределенное количество элементов ряда с подстановкой в код функции заранее вычисленных коэффициентов, так и подход, предоставляющий менее быстрые и более точные вычисления, при котором элементы ряда вычисляются динамически до достижения нужной точности. Для части функций ряд Маклорена имеет ощутимо разный уровень точности в рамках своей области определения, тогда в окрестностях точек, отрицательно влияющих на точность ряда, искомая функция уточняется с помощью дополнительных математических формул, например, формул приведения.

Задача описания библиотеки математических функций языка является прикладной алгоритмической задачей, уже реализованной тем или иным образом для ряда существующих языков программирования. При этом во многих языках реализация алгоритмов математических функций скрыта от пользователя, последнему предоставляется только возможность программного вызова такой функции, тогда как современные инструментальные средства языка Пифагор поддерживают открытый репозиторий функций. Применительно к языку программирования Пифагор интерес представляют особенности и возможности распараллеливания на уровне операций при вычислении математических формул, представленные в статье.

Об авторах

Юлия Васильевна Удалова

Сибирский федеральный университет

Автор, ответственный за переписку.
Email: judalova@sfu-kras.ru

кандидат технических наук, доцент

Россия, 660041, г. Красноярск, просп. Свободный, 79

Дмитрий Александрович Кузьмин

Сибирский федеральный университет

Email: dkuzmin@sfu-kras.ru

кандидат технических наук, доцент

Россия, 660041, г. Красноярск, просп. Свободный, 79

Список литературы

  1. Легалов А. И., Ушакова М. С. Особенности разработки и преобразования функционально-потоковых параллельных программ // Суперкомпьютерные дни в России. Тр. Междунар. конф. 2018. C. 999–1000.
  2. Изменение стратегий управления вычислениями при архитектурно-независимом параллельном программировании / А. И. Легалов [и др.] // Научный сервис в сети Интернет : тр. XIX Всеросc. науч. конф. 2017. С. 341–350.
  3. Легалов А. И. Языковая поддержка архитектурно-независимого параллельного программирования // Языки программирования и компиляторы : тр. конф. 2017. С. 169–172.
  4. Технологические аспекты создания, преобразования и выполнения функционально-потоковых параллельных программ / А. И. Легалов [и др.] // Научный сервис в сети Интернет: все грани параллелизма : тр. Междунар. суперкомпьютерной конф. 2013. С. 443–447.
  5. Особенности хранения функционально-потоковых параллельных программ / А. И. Легалов [и др.] // Вестник СибГАУ. 2013. № 4 (50). С. 53–57.
  6. Событийная модель вычислений, поддерживающая выполнение функционально-потоковых параллельных программ / А. И. Легалов [и др.] // Системы. Методы. Технологии. 2012. № 1 (13). C. 113–119.
  7. Романова Д. С. Организация тестирования для проверки корректности инструментальных средств языка Пифагор // Проспект Свободный – 2018 : материалы Междунар. конф. молодых учен. / Сиб. федер. ун-т. 2018. С. 25–28.
  8. Удалова Ю. В. Верификация функционально-потоковых параллельных программ с помощью интервальных формул // Образовательные ресурсы и технологии. 2016. № 2 (14). С. 259–262.
  9. Ушакова М. С., Легалов А. И. Верификация программ со взаимной рекурсией на языке Пифагор // Моделирование и анализ информационных систем. 2018. Т. 25, № 4 (76). C. 358–381.
  10. Васильев В. С., Легалов А. И. Оптимизация инварианта цикла в языке Пифагор // Моделирование и анализ информационных систем. 2018. Т. 25, № 4 (76). С. 347–357.
  11. A toolkit for the development of data-driven functional parallel programmes / А. И. Легалов [и др.] // Communications in Computer and Information Science. 2018. Т. 910. P. 16–30.
  12. Инструментальная поддержка создания и трансформации функционально-потоковых параллельных программ / А. И. Легалов [и др.] // Тр. Ин-та систем. программирования РАН. 2017. Т. 29, № 5. С. 165–184.
  13. Инструментальная поддержка формальной верификации программ, написанных на языке функционально-потокового параллельного программирования / М. С. Ушакова, А. И. Легалов // Вестник Южно-Уральского гос. ун-та. Серия: Вычислительная математика и информатика. 2015. Т. 4, № 2. C. 58–70.
  14. Удалова Ю. В., Легалов А. И. Верификация функционально-потоковых параллельных программ методом индуктивных утверждений // Доклады АН ВШ РФ. 2014. № 2–3 (23-24). С. 125–132.
  15. Люстерник Л. А. Математический анализ. Функции, пределы, ряды, цепные дроби. М. : ИЛ, 2012. 442 с.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

© Удалова Ю.В., Кузьмин Д.А., 2019

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution 4.0 International License.

Данный сайт использует cookie-файлы

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта.

О куки-файлах