Построение комплекса автоматизированной отладки фрагментированных программ
https://doi.org/10.25205/1818-7900-2024-22-1-5-20
Аннотация
В статье кратко изложена концепция фрагментированного программирования, а также принципиальное устройство системы автоматического конструирования параллельных программ LuNA (Language for Numerical Algorithms) и одноименного языка программирования. Описаны такие свойства системы LuNA, как возможность работы на вычислительных системах разных типов, динамическая балансировка нагрузки на узлы и процессорные ядра вычислительного кластера и другие.
Целью описываемой в статье работы является создание программного комплекса отладки фрагментированных программ в системе LuNA. В связи с этим приведен ряд ошибок, специфических для фрагментированных программ. Перечислены подходы к отладке параллельных программ и проанализирована их применимость к фрагментированным программам.
Подробно изложена реализация методов статического анализа и «посмертного анализа» в авторских средствах автоматизированной отладки фрагментированных программ для системы LuNA. Два средства статического анализа используют такие промежуточные представления, как абстрактное синтаксическое дерево и граф информационных зависимостей. Третье средство базируется на оригинальном методе статического анализа, заключающемся в генерации Prolog-программы, содержащей набор фактов об исходной LuNA-программе и соответствующие ошибочным ситуациям правила. При последующем запуске Prolog-программы факты проверяются на соответствие правилам, в результате чего пользователю выдаются сообщения о найденных ошибках. Представлена модель интеграции созданных средств в единый комплекс автоматизированной отладки фрагментированных программ, а также утилита автоматизированного тестирования инструментов отладки LuNA-программ.
Ключевые слова
Об авторах
А. Ю. ВласенкоРоссия
Власенко Андрей Юрьевич, кандидат технических наук, доцент кафедры параллельных вычислений ФИТ НГУ, научный сотрудник лаборатории синтеза параллельных программ ИВМиМГ СО РАН
Новосибирск
М. А. Мичуров
Россия
Мичуров Михаил Антонович, ассистент кафедры параллельных вычислений ФИТ
Новосибирск
В. Д. Царёв
Россия
Царёв Василий Дмитриевич, студент ФИТ
Новосибирск
М. А. Курбатов
Россия
Курбатов Максим Андреевич, студент ФИТ
Новосибирск
Список литературы
1. Malyshkin V., Perepelkin V., Lyamin A. Trace Balancing Technique for Trace Playback in LuNA System // Malyshkin V. (Eds) Parallel Computing Technologies. PaCT 2023. Lecture Notes in Computer Science. 2023. Vol. 14098. Springer, Cham. P. 4250. DOI: 10.1007/978-3-031-41673-6_4
2. Малышкин В. Э. Технология фрагментированного программирования // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2012. № 46 (305).C. 4555. DOI: 10.14529/cmse120104
3. Зубов М. В., Пустыгин А. Н., Старцев Е. В. Применение универсальных промежуточных представлений для статического анализа исходного программного кода // Доклады Томского гос. ун-та систем управления и радиоэлектроники. 2013. № 1 (27). С. 64–68.
4. Flederer F., Ostermayer L., Seipel D., Montenegro S. Source Code Verifi cation for Embedded Systems using Prolog // Electronic Proceedings in Theoretical Computer Science. 2016. Vol. 234. P. 88–103. DOI: 10.4204/EPTCS.234.7
5. Abramson D. A., Watson G., Le P. D. Guard: a tool for migrating scientifi c applications to the .NET Framework // Sloot P. M. A., Tan C. J. K., Dongarra J. J., & Hoekstra A. G. (Eds.) Computational Science – ICCS 2002: International Conference Amsterdam, The Netherlands, April 21–24, 2002 Proceedings. P. 834843. (Lecture Notes in Computer Science; Vol. 2330). Springer. DOI: 10.1007/3-540-46080-2_88
6. Bakhtin V. A., Kataev N. A., Kolganov A. S., Yakobovskiy M. V., Zaharov D. A. Automation of programming for promising high-performance computing systems // Malyshkin V. (eds) Parallel Computing Technologies. PaCT 2023. Lecture Notes in Computer Science. Cham: Springer, 2023. Vol. 14098. P. 3–17.
7. Malyshkin V., Vlasenko A., Michurov M. Automated Debugging of Fragmented Programs in LuNA System // Proc. of Mathematical Modeling and Supercomputer Technologies 2022. Communications in Computer and Information Science. 2022. Vol. 1750. P. 266–280. DOI: 10.1007/978-3-031-24145-1_22
8. Protze J., Hilbrich T., Schulz M., de Supinski B. R. MPI Runtime Error Detection with MUST: A Scalable and Crash-Safe Approach // Proc. of 43rd International Conference on Parallel Processing Workshops. Minneapolis, MN, USA, 2014, p. 206–215. DOI: 10.1109/ICPPW.2014.37
9. Карпов Ю. Г. MODEL CHECKING. Верификация параллельных и распределенных программных систем. СПб.: БХВ-Петербург, 2010. 560 с.
10. Holzmann G. J., Joshi R. Model-Driven Software Verifi cation // Graf S., Mounier L. (Eds) Model Checking Software. Proc. of SPIN 2004. Lecture Notes in Computer Science. Vol. 2989. Springer, Berlin, Heidelberg. P. 76–91. DOI: 10.1007/978-3-540-24732-6_6
11. Fokkink W. Distributed Algorithms, second edition: An Intuitive Approach. MIT Press, 2018.272 p.
12. Касьянов В. Н., Евстигнеев В. А. Графы в программировании: обработка, визуализация и применение. СПб.: БХВ-Петербург, 2003. 1104 c.
13. Белеванцев А. А. Многоуровневый статический анализ исходного кода программ для обеспечения качества программ // Программирование. 2017.Т. 43, № 6. С. 3–25.
14. Krinke J. Information Flow Control and Taint Analysis with Dependence Graphs. Vancouver: Proc. of 3d International Workshop on Code Based Software Security Assessments (CoBaSSA). 2007. P. 6–9.
15. Kuck D. J., Kuhn R. H., Padua D. A., Leasure B., Wolfe M. Dependence graphs and compiler optimizations // Proc. of the 8th ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages (POPL). 1981. P. 207–218. DOI: 10.1145/567532.567555
16. Smaragdakis Y., Bravenboer M. Using Datalog for Fast and Easy Program Analysis // de Moor O., Gottlob G., Furche T., Sellers A. (Eds) Datalog Reloaded. Lecture Notes in Computer Science. Springer, Berlin, Heidelberg, 2010. Vol. 6702. P. 245–251. DOI: 10.1007/978-3-642-24206-9_14
Рецензия
Для цитирования:
Власенко А.Ю., Мичуров М.А., Царёв В.Д., Курбатов М.А. Построение комплекса автоматизированной отладки фрагментированных программ. Вестник НГУ. Серия: Информационные технологии. 2024;22(1):5-20. https://doi.org/10.25205/1818-7900-2024-22-1-5-20
For citation:
Vlasenko A.Yu., Michurov M.A., Tsarev V.D., Kurbatov M.A. Constructing a Complex for Automated Debugging of Fragmented Programs. Vestnik NSU. Series: Information Technologies. 2024;22(1):5-20. (In Russ.) https://doi.org/10.25205/1818-7900-2024-22-1-5-20