Интерполирующая и экстраполирующая мемоизация в языке Planning C

Обложка

Цитировать

Полный текст

Аннотация

В данной работе рассматриваются возможности повышения скорости исполнения программ, реализующих преимущественно математические алгоритмы, с помощью некоторых специальных видов мемоизации. Проведен краткий обзор существующих основных подходов к мемоизации, сделан вывод о недостаточной изученности возможностей явной программной мемоизации, основанной на том или ином способе приближения отсутствующих в кэше мемоизации результатов. Анализируются возможности такой мемоизации, описываются синтаксис и семантика возможных программных конструкций, указывающих на необходимость ее включения для функций/процедур (void-функций). Проводится апробация предлагаемых вариантов мемоизации, показано, что для некоторых математических алгоритмов возможно существенное ускорение работы при достаточно невысокой погрешности. Новизна данного исследования состоит в том, что впервые предложены и описаны синтаксис, семантика и основные механизмы реализации явной программной мемоизации, основанной на интерполяции (нейронными сетями прямого распространения или методом группового учета аргументов) или линейной экстраполяции. Данная мемоизация вводится в язык Planning C. Сформулированы условия оправданности мемоизации. Для предложенного варианта мемоизации вводится понятие группирующего параметра, позволяющего использовать наборы интерполяторов для различных комбинаций входных аргументов мемоизированной процедуры/функции с целью снижения дополнительных временных затрат на обучение интерполятора и повышение правдоподобности его результатов. Также введено понятие порядкового параметра, используемого для установления порядка ключевых точек экстраполирующей мемоизации. Адекватность предложенных подходов и алгоритмов мемоизации показана на ряде примеров из области численного моделирования.

Об авторах

Владимир Викторович Пекунов

ОАО "Информатика"

Email: pekunov@mail.ru
Инженер-программист;

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

  1. Городняя Л.В. Парадигмы программирования. Часть 4. Параллельное программирование //Новосибирск. Препринт ИСИ СО РАН. – URL: http://www.iis.nsk.su/files/preprints/gorodnyaya_175.pdf (дата обращения: 05.11.2021).
  2. Mayfield, James, Timothy W. Finin and M. R. Hall. Using automatic memoization as a software engineering tool in real-world AI systems // Proceedings the 11th Conference on Artificial Intelligence for Applications (1995): pp.87-93.
  3. Perl 5.34.0 Documentation. URL: https://perldoc.perl.org/Memoize (дата обращения: 05.11.2021)
  4. Arjun Suresh, Bharath Narasimha Swamy, Erven Rohou, and Andre Seznec. Intercepting functions for memoization: A case study using transcendental functions // ACM Trans. Architec. Code Optim. 12, 2, Article 18 (June 2015), 23 pages. DOI: http://dx.doi.org/10.1145/2751559
  5. Y. Kamiya, T. Tsumura, H. Matsuo and Y. Nakashima. A Speculative Technique for Auto-Memoization Processor with Multithreading // Proc. International Conference on Parallel and Distributed Computing, Applications and Technologies, 2009, pp. 160-166, doi: 10.1109/PDCAT.2009.67.
  6. G. Zhang and D. Sanchez. Leveraging Hardware Caches for Memoization // IEEE Computer Architecture Letters, vol. 17, no. 1, pp. 59-63, 1 Jan.-June 2018, doi: 10.1109/LCA.2017.2762308.
  7. M. H. Lipasti and J. P. Shen. Exceeding the dataflow limit via value prediction // Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29, 1996, pp. 226-237, doi: 10.1109/MICRO.1996.566464.
  8. B. Calder, G. Reinman and D. M. Tullsen. Selective value prediction // Proceedings of the 26th International Symposium on Computer Architecture (Cat. No.99CB36367), 1999, pp. 64-74, doi: 10.1109/ISCA.1999.765940.
  9. Yiannakis Sazeides and James E. Smith. The predictability of data values // In Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture (MICRO 30). IEEE Computer Society, USA,1997, pp. 248-258.
  10. Evers, M., Yeh, T.Y. Understanding branches and designing branch predictors for high performance microprocessors // Proceedings of the IEEE 89, 1610-1620 (2001).
  11. Monchiero M., Palermo G. (2005) The Combined Perceptron Branch Predictor. // In: Cunha J.C., Medeiros P.D. (eds) Euro-Par 2005 Parallel Processing. Euro-Par 2005. Lecture Notes in Computer Science, vol 3648. Springer, Berlin, Heidelberg. DOI:https://doi.org/10.1007/11549468_56
  12. Salil Pant and Greg Byrd. A case for using value prediction to improve performance of transactional memory // In TRANSACT ’09: 4th Workshop on Transactional Computing, feb 2009. URL: http://transact09.cs.washington.edu/35_paper.pdf (дата обращения: 31.08.2020).
  13. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. Neural acceleration for generalpurpose approximate programs // In Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-45). 449-460. DOI:http://dx.doi.org/10.1109/MICRO.2012.48.
  14. Пекунов В.В. Язык программирования Planning C. Инструментальные средства. Новые подходы к обучению нейронных сетей. – LAP LAMBERT Academic Publishing, 2017. – 171 с.
  15. Дюк, В., Самойленко, А. Data mining: учебный курс. СПб: Питер, 2001.
  16. Пекунов, В.В. Новые методы параллельного моделирования распространения загрязнений в окрестности промышленных и муниципальных объектов // Дис. докт. тех. наук. – Иваново, 2009. – 274 с.

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

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

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

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

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».