Новости
-
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 «Фундаментальные основы создания алгоритмов и программного обеспечения для перспективных сверхвысокопроизводительных вычислений».
Докладчик: А.С. Колганов.
-
Конференция "Russian ‒ German Conference: Supercomputing in Scientific and Industrial Problems ‒ 2018" проходила 23 - 27 Апреля 2018 г. по адресу Россия, Светлогорск, Отель "Универсал".
Доклады
DVM-system was developed in Keldysh Institute of Applied Mathematics, Russian Academy of Sciences, with the active participation of graduate students and students of Faculty of Computational Mathematics and Cybernetics of Lomonosov Moscow State University. It is designed to create parallel programs of scientific-technical calculations in C-DVMH and Fortran-DVMH languages. These languages use the same model of parallel programming (DVMH-model) and are the extensions of standard C and Fortran languages by parallelism specifications, implemented as compiler directives. The directives are invisible to standard compilers, so a programmer can have one program for sequential and for parallel execution on computers of different architectures.
Докладчик: В.А. Бахтин.
-
Конференция "Параллельные вычислительные технологии 2018" проходила 2 - 6 Апреля 2018 г. по адресу Россия, Ростов-на-Дону, Донской государственный технический университет.
Доклады
Оптимизация обработки изображений с использованием ГПУ
Оптимизация обработки изображений с использованием ГПУ
В данной статье рассмотрены подходы к оптимизации обработки изображений на графическом процессоре на примере алгоритма медианной фильтрации. Производится сравнение со свободно распространяемой библиотекой обработки изображений на центральном процессоре, в которой используются векторные инструкции AVX2. Достигнутая скорость фильтрации квадратом 3х3 в 100 GPixels/sec для GPU Titan Pascal и удельная скорость фильтрации квадратом 3х3 в 10.2 GPixels/sec на 1 TFlops для одинарной точности на данное время являются самыми высокими из всех известных в мире.
Докладчик: А.С. Колганов.
Самая быстрая и энергоэффективная реализация алгоритма поиска в ширину на одноузловых различных параллельных архитектурах согласно рейтингу Graph500
Самая быстрая и энергоэффективная реализация алгоритма поиска в ширину на одноузловых различных параллельных архитектурах согласно рейтингу Graph500
Поиск в ширину (BFS) является одним из основных алгоритмов обхода графа и базовым для многих алгоритмов анализа графов более высокого уровня. Поиск в ширину на графах является задачей с нерегулярным доступом к памяти и с нерегулярной зависимостью по данным, что сильно усложняет его распараллеливание на все существующие архитектуры. В статье будет рассмотрена реализация алгоритма поиска в ширину (основного теста рейтинга Graph500) для обработки больших графов на различных архитектурах: Intel х86, IBM Power8+, Intel KNL и NVidia GPU. Будут описаны особенности реализации алгоритма на общей памяти, а также преобразования графа, которые позволяют достичь рекордных показателей производительности и энергоэффективности на данном алгоритме среди всех одноузловых систем рейтинга Graph500 и GreenGraph500.
Докладчик: А.С. Колганов.
Статический анализ приватных переменных в системе автоматизированного распараллеливания Фортран-программ
Статический анализ приватных переменных в системе автоматизированного распараллеливания Фортран-программ
Ресурс параллелизма в программах в основном сосредоточен в циклах. Для того, чтобы цикл мог выполняться параллельно, необходимо обеспечить отсутствие зависимостей по данным. К одному виду таких зависимостей относятся зависимости по скалярным переменным, которые могут быть приватизированы для каждого витка цикла, так как используются только в рамках одного витка. В настоящей статье анализируется проблема автоматического определения и расстановки приватизируемых переменных в циклах для их последующего параллельного выполнения в Фортран-программах. Предлагается алгоритм их определения, основанный на методах анализа потока данных, его расширение для межпроцедурного анализа. Приводятся результаты проверки алгоритма на ряде программ из пакета тестов NASA, а также на композиционной модели многокомпонентной фильтрации при разработке месторождений нефти и газа.
Работа выполнена при поддержке грантов РФФИ №№17-01-00820, 18-01-00851 А.
Докладчик: А.С. Колганов.
Преобразование последовательных Си-программ для их распараллеливания
Преобразование последовательных Си-программ для их распараллеливания
Распараллеливание часто требует значительного преобразования программы, в том числе и на уровне исходного кода, а необходимость преобразования определяется возможностями выбранной технологии параллельного программирования. Одним из важных преобразований является подстановка процедур в Си-программах, а именно, замена вызова процедуры ее непосредственным телом со всеми подставленными аргументами. Данное преобразование позволяет при выполнении программы снизить накладные расходы, связанные с вызовом процедуры, а на этапе статического анализа и компиляции делает возможным применение различных оптимизаций, в том числе и распараллеливающих, без фактического межпроцедурного анализа. Применение данной оптимизации на уровне исходного кода позволит системе САПФОР определять более эффективные схемы распараллеливания пользовательской программы. Соответствующий модуль для системы САПФОР был реализован на языке C++ с применением инфраструктуры LLVM и Clang и проверен на тестах из набора NAS Parallel Benchmarks.
Работа выполнена при поддержке Российского фонда фундаментальных исследований, проекты 16-07-01067, 17-01-00820 и 18-01-00851.
Докладчик: А.С. Колганов.
Опыт решения прикладных задач, использующих нерегулярные сетки, с использованием DVM-системы
Опыт решения прикладных задач, использующих нерегулярные сетки, с использованием DVM-системы
DVM-система предназначена для разработки параллельных программ научнотехнических расчетов на языках C-DVMH и Fortran-DVMH. Эти языки используют единую модель параллельного программирования (DVMH-модель) и являются расширением стандартных языков Си и Фортран спецификациями параллелизма, оформленными в виде директив компилятору. DVMH-модель позволяет создавать эффективные параллельные программы для гетерогенных вычислительных кластеров с ускорителями. В статье описывается опыт использования DVM-системы для распараллеливания прикладных программ, использующих нерегуляные сетки.
Исследование выполнено при финансовой поддержке РФФИ в рамках научных проектов № 16-07-01014, 16-07-01067 и 17-01-00820.
Докладчик: В.А. Бахтин.