Новости
-
Конференция "XXI Всероссийская конференция Научный сервис в сети Интернет 2019" проходила 23 - 28 Сентября 2019 г. по адресу Россия, Новороссийск, пос. Абрау-Дюрсо, пансионат Моряк, НМП.
Доклады
Динамический анализ зависимостей по данным в системе SAPFOR
Динамический анализ зависимостей по данным в системе SAPFOR
Возможностей статического анализа программ часто оказывается недостаточно для исследования реальных приложений. Сложные граф управления и структура обращений к памяти приводят к консервативной оценке наличия зависимостей по данным. Для принятия решений о возможности распараллеливания циклов программы в системе SAPFOR был реализован динамический анализ зависимостей по данным. Анализ опирается на инструментацию программ в представлении LLVM и может быть выполнен для программ на языках C и Fortran. Использование статического анализа позволяет сократить множество анализируемых обращений к памяти, игнорируя обращения к скалярным переменным, информация по которым уже доступна. Также допускается выборочный анализ функций и циклов программы. Эти возможности позволяют заметно снизить накладные расходы на время выполнения программы, сохранив при этом полноту анализа. Разработанный инструмент был протестирован на тестах производительности из пакета NAS Parallel Benchmarks для языков C и Fortran. В процессе динамического анализа кроме традиционных видов зависимостей (flow, anit, output) также определяются переменные, зависимость о которым может быть устранена за счет приватизации или конвейерного выполнения циклов. Совместно с возможностями DVM и OpenMP это существенно облегчает, в том числе и ручное распараллеливание, облегчая задание соответствующих директив компилятора.
Докладчик: Н.А. Катаев.
Восстановление обращений к многомерным массивам в системе SAPFOR
Восстановление обращений к многомерным массивам в системе SAPFOR
Представление программ в виде LLVM IR позволяет проводить различные оптимизации с целью повышения качества анализа программ в системе SAPFOR (System FOR Automated Parallelization). Являясь единым для разных высокоуровневых языков, LLVM IR позволяет исследовать многоязыковые вычислительные комплексы. При этом оно теряет некоторые особенности программы, отражаемые ее представлением на языке высокого уровня. Одной из таких особенностей является многомерная структура используемых массивов. Знание многомерной структуры повышает точность анализа зависимостей по данным, так как линеаризованное представление массивов, размеры измерений которых являются переменными, может не быть аффинным выражением и к нему не удастся применить методы целочисленного линейного программирования. Кроме того, использование многомерных массивов позволяет повысить уровень параллелизма в программе за счет использования многомерных решеток процессоров и распараллеливания гнезд циклов, а не отдельных циклов в гнезде. Данная возможность естественным образом поддерживается в DVM-системе. В данной работе рассматривается подход, применяемый в системе SAPFOR для восстановления формы многомерных массивов и обращений к ним по их линеаризованному представлению в LLVM IR. Предложенный подход был успешно протестирован на различных приложениях.
Докладчик: Н.А. Катаев.
DVM-система предназначена для разработки параллельных программ научно-технических расчетов на языках C-DVMH и Fortran-DVMH. Эти языки используют единую модель параллельного программирования (DVMH-модель) и являются расширением стандартных языков Си и Фортран. DVMH-модель позволяет создавать эффективные параллельные программы для гетерогенных вычислительных кластеров, в узлах которых в качестве вычислительных устройств наряду с универсальными многоядерными процессорами могут использоваться ускорители (графические процессоры или сопроцессоры Intel Xeon Phi). В статье представлены новые возможности DVMсистемы, которые были разработаны в последнее время.
Докладчик: В.А. Бахтин.
DVM-система предназначена для разработки параллельных программ научно-технических расчетов на языках C-DVMH и Fortran-DVMH. Эти языки используют единую модель параллельного программирования (DVMH-модель) и являются расширением стандартных языков Си и Фортран спецификациями параллелизма, оформленными в виде директив компилятору. DVMH-модель позволяет создавать эффективные параллельные программы для гетерогенных вычислительных кластеров, в узлах которых в качестве вычислительных устройств наряду с универсальными многоядерными процессорами могут использоваться ускорители (графические процессоры или сопроцессоры Intel Xeon Phi). В статье описывается методика отладки параллельных программ в DVM-системе, а также новые возможности DVMотладчика.
Докладчик: В.А. Бахтин.
Разработка параллельного программного кода для расчетов задачи радиационной магнитной газодинамики и исследования динамики плазмы в канале КСПУ
Разработка параллельного программного кода для расчетов задачи радиационной магнитной газодинамики и исследования динамики плазмы в канале КСПУ
DVM-система предназначена для разработки параллельных программ научно-технических расчетов на языках C-DVMH и Fortran-DVMH. Эти языки используют единую модель параллельного программирования (DVMH-модель) и являются расширением стандартных языков Си и Фортран спецификациями параллелизма, оформленными в виде директив компилятору. DVMH-модель позволяет создавать эффективные параллельные программы для гетерогенных вычислительных кластеров, в узлах которых в качестве вычислительных устройств наряду с универсальными многоядерными процессорами могут использоваться ускорители (графические процессоры или сопроцессоры Intel Xeon Phi). В статье описывается опыт успешного применения DVM-системы для разработки параллельного программного кода для расчетов задачи радиационной магнитной газодинамики и исследования динамики плазмы в канале КСПУ.
Докладчик: В.А. Бахтин.
Автоматизация преобразований последовательных программ для их последующего распараллеливания в системе SAPFOR
Автоматизация преобразований последовательных программ для их последующего распараллеливания в системе SAPFOR
Распараллеливание уже написанных последовательных программ часто требует значительных преобразований, так как в большинстве случаев данные программы хорошо оптимизированы для последовательного выполнения. Так как основной ресурс параллелизма содержится в циклах, то необходимо обеспечить в первую очередь их преобразование для устранения зависимостей и конфликтов, мешающих их анализу и распараллеливанию. К таким преобразованиям можно отнести: внос и вынос инварианта, объединение циклов в тесно-вложенные, расширение и сужение приватизируемых переменных, разбиение и слияние циклов и др. В данной статье будут рассмотрены два основных преобразования – расширение приватизируемых переменных, которое позволит устранить зависимость тесно-вложенного гнезда, и разделение циклов, которое позволит увеличить количество распараллеливаемых тесно-вложенных циклов. Полученные преобразования были проверены на некоторых программах NAS Parallel Benchmarks.
Докладчик: А.С. Колганов.
-
The paper proposes an approach to implementation of program analysis in SAPFOR (System FOR Automated Parallelization). This is a software development suit that is focused on cost reduction of manual program parallelization. It was primarily designed to perform source-to-source transformation of a sequential program for execution on parallel architectures with distributed memory. LLVM (Low Level Virtual Machine) compiler infrastructure is used to examine a program. This paper focuses on establishing a correspondence between the properties of the program in the programming language and the properties of its low-level representation.
The reported study was funded by the Program of the Presidium of RAS 26 «Fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing».
-
The DVM and SAPFOR systems were primary designed to simplify the development of parallel programs of scientific-technical calculations. DVM includes CDVMH and Fortran-DVMH programming languages which are the extensions of standard C and Fortran languages by parallelism specifications. The DVMH programs can be efficiently executed on heterogeneous computational clusters with accelerators. SAPFOR is a software development suit that can be used to produce a parallel version of a sequential program in a semiautomatic way, according to DVMH model of the parallel programming. The paper considers the application of DVM and SAPFOR systems at all stages of the program parallelization on the example of mapping of 3D elastic waves simulation method on high-performance heterogeneous clusters with GPUs. SAPFOR enables us to investigate original sequential program. Then, Fortran-DVMH language is used to exploit parallelism. Tools for functional and performance debugging, that are part of the DVM system, allow to resolve errors in the parallel program and to improve its performance. The paper also compares the DVMH-based program with a program obtained after manual parallelization using MPI programming technology.
The reported study was funded by the program of the Presidium of RAS 26 “fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing”.
-
Конференция "Суперкомпьютерные дни в России 2018" проходила 24 - 25 Сентября 2018 г. по адресу Россия, Москва, гостиница Holiday Inn Moscow - Sokolniki.
Доклады
Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR
Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR
The paper proposes an approach to implementation of program analysis in SAPFOR (System FOR Automated Parallelization). This is a software development suit that is focused on cost reduction of manual program parallelization. It was primarily designed to perform source-to-source transformation of a sequential program for execution on parallel architectures with distributed memory. LLVM (Low Level Virtual Machine) compiler infrastructure is used to examine a program. This paper focuses on establishing a correspondence between the properties of the program in the programming language and the properties of its low-level representation.
The reported study was funded by the Program of the Presidium of RAS 26 «Fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing».
Докладчик: Н.А. Катаев.
Инкрементальное распараллеливание программ с использованием DVM-системы
Инкрементальное распараллеливание программ с использованием DVM-системы
Основная сложность разработки параллельной программы для кластера — необходимость принятия глобальных решений по распределению данных и вычислений с учетом свойств всей
программы, а затем выполнения кропотливой работы по модификации программы и ее отладке. Большой объем программного кода, многомодульность, многофункциональность затрудняет принятие решений по согласованному распределению данных и вычислений. Для решения данной проблемы может использоваться метод инкрементального, или
частичного распараллеливания. Идея этого метода заключается в том, что распараллеливанию подвергается не вся программа целиком, а ее части (области распараллеливания) — в них заводятся дополнительные экземпляры требуемых данных, производится распределение этих данных и соответствующих вычислений. Данные области могут быть построены на основе времен, полученных с помощью анализатора производительности, который входит в состав DVM-системы.Докладчик: В.А. Бахтин.
-
Конференция "XX Всероссийская конференция Научный сервис в сети Интернет 2018" проходила 17 Сентября - 22 Ноября 2018 г. по адресу Россия, Новороссийск, пос. Абрау-Дюрсо, пансионат Моряк, НМП.
Доклады
Согласованное представление Fortran-программ в компиляторе PARFOR на разных уровнях абстракции
Согласованное представление Fortran-программ в компиляторе PARFOR на разных уровнях абстракции
Распараллеливающий компилятор PARFOR, выделенный в отдельный инструмент из системы автоматизированного распараллеливания SAPFOR, предназначен для разработки параллельных программ на языках с неявным параллелизмом Fortran и C. Целью разработки компилятора PARFOR является автоматическое преобразование программы на уровне исходного кода для последующего выполнения на вычислительном кластере. Неявное параллельное программирование предполагает возможность описания свойств исходной последовательной программы, чтобы снизить сложность поиска необходимых преобразований программы. Распараллеливание выполняется в модели DVMH на языках Fortran-DVMH и C-DVMH соответственно. При этом для анализа программ используются возможности системы компиляторов LLVM, а преобразования основаны на представлении программ в виде абстрактного синтаксического дерева (AST). В данной работе рассматривается подход, позволяющий согласованно рассматривать программы на двух уровнях абстракции: уровне исходного кода и низкоуровнего представления, задействовав потенциал низкоуровневого представления в отношении анализа программ и сохранив понятный для пользователя вид отображаемой информации. В работе также рассматривается возможность исследования преобразованного LLVM IR, чтобы повысить точность проводимого анализа. Также приводятся основные причины выбора LLVM в качестве инструментальной базы для разработки компилятора PARFOR.
Работа выполнена при поддержке РФФИ (проекты 16-07-01014, 17-01-00820, 18-01-00851) и программы президиума РАН № 26 «Фундаментальные основы создания алгоритмов и программного обеспечения для перспективных сверхвысокопроизводительных вычислений».
Докладчик: Н.А. Катаев.
Распараллеливание программных комплексов. Проблемы и перспективы
Распараллеливание программных комплексов. Проблемы и перспективы
При распараллеливании реальных производственных программ вычислительного характера приходится сталкиваться со следующими проблемами, характерными для таких программ: многомодульность, многовариантность, многоязыковость. Большой объем программного кода затрудняет проведение необходимых для распараллеливания преобразований вручную и принятие решений по согласованному распределению данных и вычислений. Поэтому в системе SAPFOR было предложено организовать для кластеров поэтапное или частичное распараллеливание. Кроме того, особое внимание было направлено на автоматическое определение требуемых преобразований последовательной программы и их автоматическое выполнение. Однако, проблемы, вызываемые многомодульностью, многовариантностью и многоязыковостью, также требуют своего решения. В статье рассматриваются возможные пути преодоления этих проблем.
Работа выполнена при поддержке РФФИ (проекты № 16-07-01067, 16-07-01014, 16-29-09550, 17-01-00820, 18-01-00851) и программы президиума РАН № 26 «Фундаментальные основы создания алгоритмов и программного обеспечения для перспективных сверхвысокопроизводительных вычислений».
Докладчик: А.С. Колганов.