Новости
-
Конференция "Параллельные вычислительные технологии 2019" проходила 2 - 4 Апреля 2019 г. по адресу Россия, Калининград, Балтийский федеральный университет.
Доклады
Преобразование программ на высокоуровневом языке программирования на основе результатов анализа низкоуровневого представления программ в системе SAPFOR
Преобразование программ на высокоуровневом языке программирования на основе результатов анализа низкоуровневого представления программ в системе SAPFOR
В статье рассматривается подход, позволяющий использовать результаты анализа низкоуровневого представления программы для выполнения ее преобразований на уровне исходного кода. Данный подход применяется в системе SAPFOR (System FOR Automated Parallelization) для приведения программ к потенциально параллельному виду и последующему выявлению в них неявного параллелизма. Для анализа программ используется система компиляторов LLVM (Low Level Virtual Machine). В качестве представления программы используется LLVM IR. Clang применяется для выполнения преобразований на уровне исходного кода. В статье рассматриваются преимущества выполнения анализа программ на уровне LLVM IR и особенности выполнения его преобразований с целью повышения качества проводимого анализа для исходной программы на языке высокого уровня.
Работа выполнена при поддержке Российского фонда фундаментальных исследований, проекты 17-01- 00820 и 18-01-00851.
Докладчик: Н.А. Катаев.
Автоматическое инкрементальное распараллеливание больших программных комплексов с помощью системы SAPFOR
Автоматическое инкрементальное распараллеливание больших программных комплексов с помощью системы SAPFOR
Основная сложность разработки параллельной программы для кластера – необходимость принятия глобальных решений по распределению данных и вычислений с учетом свойств всей программы, а затем выполнения кропотливой работы по модификации программы и ее отладки. Большой объем программного кода, а также многомодульность, многовариантность и многоязыковость, затрудняют принятие решений по согласованному распределению данных и вычислений. Опыт использования предыдущей системы САПФОР показал, что при распараллеливании на кластер больших программ и программных комплексов необходимо уметь распараллеливать их постепенно, начиная с наиболее времяемких фрагментов и постепенно добавляя новые фрагменты, пока не достигнем желаемого уровня эффективности параллельной программы. С этой целью предыдущая система была полностью переработана, и на ее основе была создана новая система SAPFOR (System FOR Automated Parallelization). Для решения поставленной задачи будет рассмотрен метод инкрементального, или частичного распараллеливания, идея которого заключается в том, что распараллеливанию подвергается не вся программа целиком, а ее части (области распараллеливания) – в них заводятся дополнительные экземпляры требуемых данных, производится распределение этих данных и соответствующих им вычислений. В данной статье будет рассмотрено применение автоматического отображения программ на кластер с помощью предложенного метода инкрементального распараллеливания на примере программного комплекса, решающего задачу моделирования добычи залежей нефти и газа
Докладчик: А.С. Колганов.
DVM-система предназначена для разработки параллельных программ научно-технических расчетов на языках C-DVMH и Fortran-DVMH. Эти языки используют единую модель параллельного программирования(DVMH-модель) и являются расширением стандартных языков Си и Фортран спецификациями параллелизма, оформленными в виде директив компилятору. DVMH-модель позволяет создавать эффективные параллельные программы для гетерогенных вычислительных кластеров, в узлах которых в качестве вычислительных устройств наряду с универсальными многоядерными процессорами могут использоваться ускорители (графические процессоры или сопроцессоры Intel Xeon Phi). В статье описывается методика отладки параллельных программ в DVM-системе, а также рассматриваются новые возможности DVM-отладчиков.
Докладчик: В.А. Бахтин.
-
Конференция "Иванниковские чтения - 2018 (Ivannikov Memorial Workshop)" проходила 3 - 4 Мая 2018 г. по адресу Армения, Ереван, Российско-Армянский Университет.
Доклады
LLVM Based Approach to Static Analysis of C Programs in SAPFOR
LLVM Based Approach to Static Analysis of C Programs in SAPFOR
Heterogeneous computational systems are becoming very popular nowadays. However, developing efficient parallel programs, that can exploit the potential parallelism of these systems, still remains difficult for most of application programmers. Program parallelization may require significant transformation of the original program. SAPFOR (System FOR Automated Parallelization) aims to simplify the development of parallel programs of scientific-technical calculations. It was designed to perform source-to-source transformation of a sequential program for execution on heterogeneous computational systems. This paper discusses the implementation of program analysis in SAPFOR. The presented approach relies on LLVM (Low Level Virtual Machine) capabilities to examine a program. SAPFOR explores the properties of low-level program representation to recognize related properties of the program in programming language. Some kind of IR-level transformations may be applied without any loss of analysis accuracy. Furthermore, these transformations allow us to increase the quality of program analysis.
Докладчик: Н.А. Катаев.
-
Автоматизация распараллеливания Си версии теста BT из пакета NAS Parallel Benchmarks 3.3.1 с помощью системы SAPFOR 3.0. Распараллеливание выполняется с использованием стандарта OpenMP.
Исходная версия NAS NPB: https://www.nas.nasa.gov/publications/npb.html
NAS NPB на Си: Seo, S., Jo, G., Lee, J. Performance Characterization of the NAS Parallel Bench-marks in OpenCL // 2011 IEEE International Symposium on. Workload Characterization (IISWC), 2011. P. 137–148
-
Конференция "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».