Abstract

DVM-system was designed to create parallel programs of scientific-technical computations 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. DVMH-model allows creating efficient parallel programs for heterogeneous computational clusters, the nodes of which use as computing devices not only universal multi-core processors but also can use attached accelerators (GPUs or Intel Xeon Phi coprocessors). This article describes the experience of parallelizing various application programs using DVM-system. The method of incremental or partial parallelization, the system's capabilities for working with unstructured grids, new tools for mapping MPI-programs to multi-core processors and accelerators are considered. The efficiency of parallel DVMH-programs on heterogeneous computing clusters K-10, K-100, Lomonosov and MVS-10P is investigated. The main advantages of DVM-approach for the development of parallel programs are described. The main features of DVM-system tools for performance analysis and functional debugging of parallel programs are presented. The directions for further development of DVM-system are determined.

Highlights

  • Накладные расходы на копирование данных между исходными данными и их копиямиЕсли распараллеливание основных процедур (2700 из 13844 строк) программы фактически не требовало изменения текста последовательной программы и было выполнено достаточно быстро, то полное распараллеливание потребовало серьезного изменения структуры программы: инлайн подстановки процедур (для фрагментов программы, выполняемых на ускорителях), преобразования операторов ввода/вывода (DVMH-модель накладывает некоторые ограничения на использование распределенных массивов в операторах ввода/вывода), перехода на динамические массивы (вместо их моделирования) и др.

  • Переменная DVMH_PPN задает количество MPI-процессов, которые будут запускаться на каждом узле суперкомпьютера.

  • Переменная DVMH_NUM_THREADS определяет количество рабочих нитей, которые будут созданы для выполнения программы на ядрах ЦПУ, для каждого из процессов.

Read more

Summary

Накладные расходы на копирование данных между исходными данными и их копиями

Если распараллеливание основных процедур (2700 из 13844 строк) программы фактически не требовало изменения текста последовательной программы и было выполнено достаточно быстро, то полное распараллеливание потребовало серьезного изменения структуры программы: инлайн подстановки процедур (для фрагментов программы, выполняемых на ускорителях), преобразования операторов ввода/вывода (DVMH-модель накладывает некоторые ограничения на использование распределенных массивов в операторах ввода/вывода), перехода на динамические массивы (вместо их моделирования) и др. Переменная DVMH_PPN задает количество MPI-процессов, которые будут запускаться на каждом узле суперкомпьютера. Переменная DVMH_NUM_THREADS определяет количество рабочих нитей, которые будут созданы для выполнения программы на ядрах ЦПУ, для каждого из процессов. 4 и 5 показано время выполнения (в секундах) 100 итераций программы «Композит» в режиме MPI/OpenMP на суперкомпьютерах MVS-10P [7], K-100 и Ломоносов [8] при использовании от 1 до 8 вычислительных узлов для вариантов расчета при закачке в пласт сухого газа и газа, обогащенного промежуточными фракциями. 6 показано время выполнения полного расчета программы «Композит» для сетки 261x261x6 на суперкомпьютерах K-100 и K-10 [6] при использовании графических ускорителей. При использовании всех вычислительных устройств 1 узла суперкомпьютера ускорение выполнения программы составляет 13,84 раза для K-100 и 13,42 раза для K-10 по сравнению с выполнением программы на 1-м ядре.

Расчетная область и граничные условия
Схема Посл
Новый режим распределения вычислений
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call