Методика разработки скоростного компилятора на основе модифицированного метода оптимизации loop fusion: модели и инструменты его реализации

Обложка

Цитировать

Полный текст

Открытый доступ Открытый доступ
Доступ закрыт Доступ предоставлен
Доступ закрыт Только для подписчиков

Аннотация

В связи с развитием информационных технологий, усложнением языков программирования и соответственно разрабатываемых с их использованием приложений, особую значимость приобретает оптимизация программ. В процессе оптимизации программа улучшается за счет уменьшения размера кода, сложности, использования меньшего объема памяти и обеспечивает сокращение времени выполнения без изменения внутренней функции. На практике оптимизация реализуется с использованием компиляторов и их функций. Принимая во внимание выше отмеченное, в статье была поставлена цель, заключающаяся в разработке методики исследования различных аспектов построения скоростного компилятора с модифицированным методом оптимизации loop fusion, а также моделей и инструментов его реализации. В процессе исследования обозначены особенности его проектирования с использованием модифицированного метода оптимизации loop fusion, приведены описания блок- схемы модифицированного алгоритма loop fusion и логической блок- схемы этапов разработки компилятора. В результате выполнения работы предложен компилятор, выполненный на основе с модифицированного метода оптимизации loop fusion, использующий реверсирование циклов для обеспечения их «законного» и выгодного слияния, что позволяет сократить время выполнения программы, сохраняя при этом ее корректность. Показана эффективность работы предложенного компилятора путем сравнения времен компиляции тестовой программы, полученных с его использованием и с помощью известного компилятора х86-64 gcc 4.7.1.

Об авторах

Борис Алексеевич Логунов

Научно-исследовательский центр прочности летательных аппаратов, Федеральное автономное учреждение «Центральный аэрогидродинамический институт имени профессора Н.Е. Жуковского» (ФАУ «ЦАГИ»)

Email: logunov39@mail.ru

кандидат технических наук; начальник отдела измерительно-вычислительных систем, Отделение норм прочности, нагрузок и аэроупругости Научно-исследовательского центра прочности летательных аппаратов Федерального автономного учреждения «Центральный аэрогидродинамический институт имени профессора Н.И. Жуковского (ФАУ «ЦАГИ»)

Россия, Жуковский, Московская область

Илья Андреевич Харин

Научно-исследовательский центр прочности летательных аппаратов, Федеральное автономное учреждение «Центральный аэрогидродинамический институт имени профессора Н.Е. Жуковского» (ФАУ «ЦАГИ»)

Автор, ответственный за переписку.
Email: xarin.ilya@bk.ru

инженер отдела измерительно-вычислительных систем, Отделение норм прочности, нагрузок и аэроупругости Научно-исследовательского центра прочности летательных аппаратов Федерального автономного учреждения «Центральный аэрогидродинамический институт имени профессора Н.И. Жуковского (ФАУ «ЦАГИ»)

Россия, Жуковский, Московская область

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

  1. Agez M. Correcting remaining truncations in hybrid life cycle assessment database compilation // Journal of Industrial Ecology. 2022. Vol. 26. No. 1. Pp. 121–133.
  2. Abate C. An extended account of trace-relating compiler correctness and secure compilation // ACM Transactions on Programming Languages and Systems. 2021. Vol. 43. No. 4. Pp. 14–19.
  3. Muller E. Push versus pull-based loop fusion in query engines // Journal of Functional Programming. 2018. Vol. 28. No. 1. Pp. 56–62.
  4. Сесин И.Ю. Сравнительный анализ методов оптимизации программного обеспечения для борьбы с предикацией ветвлений на графических процессорах // Russian Technological Journal. 2021. № 6. С. 7–15.
  5. Li Hao. Compiling cross-language network programs into hybrid data plane // IEEE/ACM Transactions on Networking: A Joint Publication of the IEEE Communications Society. 2021. Vol. 30. No. 3. Pp. 1088–1103.
  6. Zhufeng H. Optimization based on LLVM global instruction selection // Journal of Physics. Conference Series. 2021. Vol. 1856. No. 1. Pp. 19–23.
  7. Ziraksima M. Using an evolutionary approach based on shortest common supersequence problem for loop fusion // Soft Computing: A Fusion of Foundations, Methodologies and Applications. 2020. Nо. 10. Рp. 7231–7252.
  8. Владимиров К.И. Оптимизация разбиения структур для векторного оптимизатора в графическом компиляторе Intel // Современные информационные технологии и ИТ-образование. 2022. № 2. С. 249–255.
  9. Josipovic L. Synthesizing general-purpose code into dynamically scheduled circuits // IEEE Circuits and Systems Magazine. 2021. Vol. 21. No. 2. Pp. 97–118.
  10. Kiesel R. Efficient knowledge compilation beyond weighted model counting // Theory and Practice of Logic Programming. 2022. Vol. 22. No. 4. Pp. 505–522.
  11. Ahmed H. Toward a novel engine for compiler optimization space exploration of big data workloads // Software, Practice & Experience. 2022. Vol. 52. No. 5. Pp. 1262–1293.
  12. Shymon I.M. Compilation, analysis and application of a comprehensive Bangla Corpus KUMono // IEEE Access: Practical Innovations, Open Solutions. 2022. Vol. 10. Pp. 79999–80014.
  13. Новиков К.Д. Оптимизация программного обеспечения // Вестник Российского нового университета. Серия: Сложные системы: модели, анализ и управление. 2021. № 1. С. 159–165.
  14. Murali P. Formal constraint-based compilation for noisy intermediate-scale quantum systems // Microprocessors and Microsystems. 2019. Vol. 66. No. 9. Pp. 102–112.
  15. Patrignani M. Robustly safe compilation, an efficient form of secure compilation // ACM Transactions on Programming Languages and Systems. 2021. Vol. 43. No. 1. Pp. 12–19.
  16. Гонопольский М.Г. Автоматическая генерация интерпретатора для многоязыковой виртуальной машины // Современные информационные технологии и ИТ-образование. 2021. Т. 17. № 4. С. 988–997.
  17. Баев Р.В. Предотвращение уязвимостей, возникающих в результате оптимизации кода с неопределенным поведением // Труды Института системного программирования РАН. 2021. Т. 33. № 4. С. 195–210.
  18. Кормен Т.Х., Лейзерсон Ч.Э., Ривест Р.Л., Стейн К. Раздел 24.3: Алгоритм Дейкстры // Введение в алгоритмы. 2 изд. MIT Press и McGraw-Hill, 2001. С. 595–601. ISBN: 0-262-03293-7.

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

Доп. файлы
Действие
1. JATS XML
2. Рис. 1. Блок схема хэш-таблицы

Скачать (95KB)
3. Рис. 2. Принцип работы по генерации кода

Скачать (51KB)
4. Рис. 3. Блок- схема алгоритма, выполненного на основе модифицированного метода оптимизации loop fusion

Скачать (191KB)
5. Рис. 4. Логическая блок-схема, иллюстрирующая этапы работы компилятора с модифицированным методом оптимизации loop fusion

Скачать (259KB)
6. Рис. 5. Компиляция тестовой программы с использованием компилятора х86-64 gcc 4.7.1

Скачать (11KB)
7. Рис. 6. Компиляция тестовой программы с использованием предложенного компилятора с модифицированным методом оптимизации loop fusion

Скачать (70KB)
8. Рис. 7. Диаграмма сравнения времени компиляции программ

Скачать (56KB)


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

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») на элемент с текстом «Принять и продолжить».