EISSN 1726-3522
Язык: ru

Архив статей журнала

АВТОМАТИЗИРОВАННОЕ РАСПАРАЛЛЕЛИВАНИЕ ПРОГРАММ ДЛЯ ГЕТЕРОГЕННЫХ КЛАСТЕРОВ С ПОМОЩЬЮ СИСТЕМЫ SAPFOR (2022)
Выпуск: Т. 23 № 4 (2022)
Авторы: Катаев Никита Андреевич, Колганов Александр Сергеевич

В статье рассмотрен подход к автоматизированному распараллеливанию программ для кластеров с помощью системы SAPFOR (System FOR Automated Parallelization). Главной целью системы SAPFOR является автоматизация процесса отображения последовательных программ на параллельные архитектуры в модели DVMH, которая является моделью программирования, основанной на директивах. Помимо этого, система SAPFOR позволяет выполнять автоматически некоторый класс преобразований над исходным кодом программы по запросу пользователя через графический интерфейс. На определенных классах задач пользователь системы SAPFOR может рассчитывать на полностью автоматическое распараллеливание, если программа была написана или приведена к потенциально параллельному виду. Также в статье описаны подходы к построению схем распределения данных и вычислений на распределенную память в модели DVMH. Эффективность полученных алгоритмов построения схем аспределения данных и вычислений продемонстрирована на примере некоторых приложений из пакета NAS Parallel Benchmarks.

Сохранить в закладках
ДОПОЛНИТЕЛЬНОЕ РАСПАРАЛЛЕЛИВАНИЕ MPI ПРОГРАММ С ПОМОЩЬЮ СИСТЕМЫ SAPFOR (2021)
Выпуск: Т. 22 № 4 (2021)
Авторы: Катаев Никита Андреевич, Колганов Александр Сергеевич

Системы SAPFOR и DVM были спроектированы и предназначены для упрощения разработки параллельных программ научно-технических расчетов. Главной целью системы SAPFOR является автоматизация процесса отображения последовательных программ на параллельные архитектуры в модели DVMH. В некоторых случаях пользователь системы SAPFOR может рассчитывать на полностью автоматическое распараллеливание, если программа была написана или приведена к потенциально параллельному виду. DVMH модель представляет собой расширение стандартных языков C и Fortran спецификациями параллелизма, которые оформлены в виде директив и не видимы стандартным компиляторам. В статье будет рассмотрено автоматизированное дополнительное распараллеливание существующих MPI-программ с помощью системы SAPFOR, где, в свою очередь, будут использованы новые возможности DVMH модели по распараллеливанию циклов в MPI программе внутри узла. Данный подход позволяет существенно снизить трудоемкость распараллеливания MPI программ на графические ускорители и многоядерные процессоры, сохранив при этом удобство сопровождения уже написанной программы. Данная возможность в системе SAPFOR была реализована для языков Fortran и C. Эффективность данного подхода показана на примере некоторых приложений из пакета NAS Parallel Benchmarks.

Сохранить в закладках
ОПЫТ ПРИМЕНЕНИЯ МЕХАНИЗМА ОБЛАСТЕЙ ДЛЯ ПОЭТАПНОГО РАСПАРАЛЛЕЛИВАНИЯ ПРОГРАММНЫХ КОМПЛЕКСОВ С ПОМОЩЬЮ СИСТЕМЫ SAPFOR (2020)
Выпуск: Т. 21 № 4 (2020)
Авторы: Колганов Александр Сергеевич

Одна из основных сложностей разработки параллельной программы для кластера - необходимость принятия глобальных решений по распределению данных и вычислений с учетом свойств всей программы, а затем выполнения кропотливой работы по модификации программы и ее отладки. Большой объем программного кода, а также многомодульность, многовариантность и многоязыковость, затрудняют принятие решений по согласованному распределению данных и вычислений. Опыт использования предыдущей системы САПФОР показал, что при распараллеливании на кластер больших программ и программных комплексов необходимо уметь распараллеливать их постепенно, начиная с наиболее времяемких фрагментов и постепенно добавляя новые фрагменты, пока не достигнем желаемого уровня эффективности параллельной программы. С этой целью предыдущая система была полностью переработана, и на ее основе была создана новая система SAPFOR (System FOR Automated Parallelization). В данной статье будет рассмотрен опыт применения метода частичного распараллеливания, идея которого заключается в том, что распараллеливанию подвергается не вся программа целиком, а ее части (области распараллеливания) - в них заводятся дополнительные экземпляры требуемых данных, производится распределение этих данных и соответствующих им вычислений.

Сохранить в закладках