RUS  ENG
Полная версия
ЖУРНАЛЫ // Программные системы: теория и приложения // Архив

Программные системы: теория и приложения, 2024, том 15, выпуск 1, страницы 63–94 (Mi ps440)

Программное и аппаратное обеспечение распределенных и суперкомпьютерных систем

Обоснование методов ускорения гнёзд циклов итерационного типа

Е. А. Метелица

Южный Федеральный Университет, Ростов-на-Дону, Россия

Аннотация: Рассматривается ускорение итерационных алгоритмов, которые встречаются при решении задач математической физики, математического моделирования, обработки изображений и других. В программной реализации таких алгоритмов лежат гнёзда циклов (участки программы, состоящие из вложенных циклов). Такие гнёзда циклов ускоряются при помощи комбинации оптимизирующих преобразований, включающих тайлинг, метод гиперплоскостей и распараллеливание на общую память. Обосновывается эквивалентность комбинации используемых преобразований программ.
Предлагается и обосновывается метод изменения порядка обхода тайла. Метод даёт ускорение за счёт увеличения количества чтений данных из регистров, вместо чтений из более медленной памяти. С учётом этого метода получена формула вычисления оптимальных размеров тайлов.
Представленной в статье цепочкой преобразований достигается ускорение в 1.4 раза большее, чем в известном алгоритме оптимизации, реализованном в системе PLUTO. Приводятся численные эксперименты, которые в некоторых случаях на процессоре с 8 ядрами демонстрируют ускорение относительно исходных последовательных программ более чем на порядок. Результаты статьи могут использоваться для ручной и автоматизированной оптимизации программ.

Ключевые слова и фразы: тайлинг, метод гиперплоскостей, распараллеливание, общая память, гнёзда циклов итерационного типа.

УДК: 004.424.22, 004.312.46
ББК: 32.972.11

MSC: 68W10; 68N20

Поступила в редакцию: 21.01.2024
Подписана в печать : 15.02.2023

DOI: 10.25209/2079-3316-2024-15-1-63-94



© МИАН, 2025