АВТОМАТИЗАЦИЯ ОТЛАДКИ И БАЛАНСИРОВКИ НАГРУЗКИ ВО ФРАГМЕНТИРОВАННЫХ ПРОГРАММАХ
EDN: NBFMPU
Описываются основные принципы, на которых базируется система фрагментированного программирования LuNA и одноименный язык. Даются значения основных терминов, принятых в системе.
Приводятся наиболее типичные для фрагментированных программ логические ошибки. Обосновывается важность решения проблемы динамической балансировки нагрузки между процессами, разделяющими работу по исполнению фрагментов вычислений, совокупность которых и составляет фрагментированную программу на этапе исполнения. Поскольку LuNA относится к высокоуровневым средствам создания параллельных программ, то решение проблем отладки и динамической балансировки нагрузки очень затруднительно для пользователя. В связи с этим для системы разрабатываются модуль автоматизированной отладки на основе метода анализа по трассе и модуль автоматической централизованной динамической балансировки нагрузки.
Модуль автоматизированной отладки по ходу исполнения фрагментированной программы на каждом процессе собирает файлы трассы в JSON-формат, куда вносится информация об обрабатываемых фрагментах вычислений, а также об их входных и выходных фрагментах данных. После нормального или аварийного завершения работы программы пользователь может вызвать специальное программное средство, анализирующее собранные трассы и выводящее подробную информацию об обнаруженных ошибках.
При подключении модуля централизованной динамической балансировки нагрузки порождается служебный процесс, который собирает с рабочих процессов информацию о готовых к исполнению и выполнившихся фрагментах вычислений с целью их перераспределения и минимизации дисбаланса.
Изложены результаты тестирования модулей на вычислительном кластере НГУ на задаче блочного умножения матриц, продемонстрировавшие эффективность модуля централизованной балансировки нагрузки и приемлемые накладные расходы модуля автоматизированной отладки.