Восстановление обращений к многомерным массивам в системе SAPFOR

Авторы

В.Н. Василькин, Н.А. Катаев

Аннотация

Представление программ в виде LLVM IR позволяет проводить различные оптимизации с целью повышения качества анализа программ в системе SAPFOR (System FOR Automated Parallelization). Являясь единым для разных высокоуровневых языков, LLVM IR позволяет исследовать многоязыковые вычислительные комплексы. При этом оно теряет некоторые особенности программы, отражаемые ее представлением на языке высокого уровня. Одной из таких особенностей является многомерная структура используемых массивов. Знание многомерной структуры повышает точность анализа зависимостей по данным, так как линеаризованное представление массивов, размеры измерений которых являются переменными, может не быть аффинным выражением и к нему не удастся применить методы целочисленного линейного программирования. Кроме того, использование многомерных массивов позволяет повысить уровень параллелизма в программе за счет использования многомерных решеток процессоров и распараллеливания гнезд циклов, а не отдельных циклов в гнезде. Данная возможность естественным образом поддерживается в DVM-системе. В данной работе рассматривается  подход, применяемый в системе SAPFOR для восстановления формы многомерных массивов и обращений к ним по их линеаризованному представлению в LLVM IR. Предложенный подход был успешно протестирован на различных приложениях.

Ключевые слова

анализ программ, автоматизация распараллеливания, SAPFOR, DVM, LLVM.

Язык

Русский

Библиографическая ссылка

В.Н. Василькин, Н.А. Катаев. Восстановление обращений к многомерным массивам в системе SAPFOR // Научный сервис в сети Интернет: труды XXI Всероссийской научной конференции, М.: ИПМ им. М.В.Келдыша, 2019, C. 413-423