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 определяет количество рабочих нитей, которые будут созданы для выполнения программы на ядрах ЦПУ, для каждого из процессов.
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-м ядре.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Bulletin of the South Ural State University. Series "Computational Mathematics and Software Engineering"
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.