Автоматизация преобразований последовательных программ для их последующего распараллеливания в системе SAPFOR

Авторы

И.А. Казаков, А.С. Колганов, М.Ю. Кузнецов

Аннотация

Распараллеливание уже написанных последовательных программ часто требует значительных преобразований, так как в большинстве случаев данные программы хорошо оптимизированы для последовательного выполнения. Так как основной ресурс параллелизма содержится в циклах, то необходимо обеспечить в первую очередь их преобразование для устранения зависимостей и конфликтов, мешающих их анализу и распараллеливанию. К таким преобразованиям можно отнести: внос и вынос инварианта, объединение циклов в тесно-вложенные, расширение и сужение приватизируемых переменных, разбиение и слияние циклов и др. В данной статье будут рассмотрены два основных преобразования – расширение приватизируемых переменных, которое позволит устранить зависимость тесно-вложенного гнезда, и разделение циклов, которое позволит увеличить количество распараллеливаемых тесно-вложенных циклов. Полученные преобразования были проверены на некоторых программах NAS Parallel Benchmarks.

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

SAPFOR, распараллеливание программ, преобразование программ.

Язык

Русский

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

И.А. Казаков, А.С. Колганов, М.Ю. Кузнецов. Автоматизация преобразований последовательных программ для их последующего распараллеливания в системе SAPFOR // Научный сервис в сети Интернет: труды XXI Всероссийской научной конференции, М.: ИПМ им. М.В.Келдыша, 2019, C. 339-346