|
Параллельное программирование
Оптимизация инварианта цикла в языке Пифагор
В. С. Васильев, А. И. Легалов Сибирский федеральный университет, Институт космических и информационных технологий
ул. Академика Киренского, 26, г. Красноярск, 660074 Россия
Аннотация:
В работе рассматриваются методы преобразования программ, эквивалентные оптимизации инварианта цикла, применительно к функционально-потоковой модели параллельных вычислений, реализованной в языке программирования Пифагор. В императивных языках при оптимизации инварианта из цикла выносятся вычисления, не зависящие от изменяемых в нем переменных. Особенностью языка функционально-потокового параллельного программирования Пифагор является отсутствие явно задаваемых циклических вычислений (оператора цикла). Тем не менее, повторяющиеся вычисления в этом языке можно задать рекурсивно или за счет применения специфических языковых конструкций (параллельных списков). Оба механизма обеспечивают возможность параллельного выполнения. В случае оптимизации рекурсивной функции повторяющиеся операции выносятся во вспомогательную функцию, а основная функция выполняет лишь вычисление инварианта. При оптимизации внутри параллельных списков вычисление инварианта перемещается в дополнительную функцию, содержащую вызов функции, использующую данный параллельный список. В статье приводится определение «инварианта» применительно к языку Пифагор, алгоритмы его оптимизации, а также примеры программ, их графовых представлений (граф программных зависимостей) до и после оптимизации. Алгоритм оптимизации, описанный для вычислений над параллельными списками, применим только для языка Пифагор, так как опирается на специфические структуры данных и модель вычислений этого языка. Вместе с тем, алгоритм преобразования рекурсивных функций может быть применим и для других языков программирования.
Ключевые слова:
функционально-потоковое параллельное программирование, язык программирования Пифагор, оптимизация кода, оптимизация циклов, оптимизация инварианта, граф программных зависимостей.
Поступила в редакцию: 15.03.2018
Образец цитирования:
В. С. Васильев, А. И. Легалов, “Оптимизация инварианта цикла в языке Пифагор”, Модел. и анализ информ. систем, 25:4 (2018), 347–357
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/mais633 https://www.mathnet.ru/rus/mais/v25/i4/p347
|
Статистика просмотров: |
Страница аннотации: | 205 | PDF полного текста: | 142 | Список литературы: | 33 |
|