АВТОМАТИЗИРОВАННОЕ РАСПАРАЛЛЕЛИВАНИЕ ПРОГРАММ ДЛЯ ГЕТЕРОГЕННЫХ КЛАСТЕРОВ С ПОМОЩЬЮ СИСТЕМЫ SAPFOR (2022)
В статье рассмотрен подход к автоматизированному распараллеливанию программ для кластеров с помощью системы SAPFOR (System FOR Automated Parallelization). Главной целью системы SAPFOR является автоматизация процесса отображения последовательных программ на параллельные архитектуры в модели DVMH, которая является моделью программирования, основанной на директивах. Помимо этого, система SAPFOR позволяет выполнять автоматически некоторый класс преобразований над исходным кодом программы по запросу пользователя через графический интерфейс. На определенных классах задач пользователь системы SAPFOR может рассчитывать на полностью автоматическое распараллеливание, если программа была написана или приведена к потенциально параллельному виду. Также в статье описаны подходы к построению схем распределения данных и вычислений на распределенную память в модели DVMH. Эффективность полученных алгоритмов построения схем аспределения данных и вычислений продемонстрирована на примере некоторых приложений из пакета NAS Parallel Benchmarks.
Идентификаторы и классификаторы
- eLIBRARY ID
- 50104881
Высокопроизводительные вычислительные технологии получили широкое распространение среди большого количества областей науки: вычислительная гидродинамика, исследования климата и окружающей среды, нейронные сети и искусственный интеллект, и многие другие. Сложились разнообразные подходы к организации параллельных вычислений, предполагающие использование различных технологий параллельного программирования [1]. При этом при выборе и применении предпочтительных подходов для решения конкретной задачи часто приходится сталкиваться с определенными трудностями [2].
Среди них можно выделить необходимость одновременного применения различных технологий программирования (MPI+OpenMP, MPI+OpenMP+CUDA и т.д.), чтобы задействовать все доступные вычислительные ресурсы. При этом прикладной программист должен обладать знаниями, позволяющими применять каждую из них. Множество используемых технологий может меняться по мере развития доступной вычислительной аппаратуры, что усложняет сопровождение и развитие уже написанных программных комплексов. Кроме того, запуск вычислительной задачи на сложной, часто гибридной, вычислительной системе может сопровождаться необходимостью подбора многочисленных параметров для достижения максимальной производительности. В сложившейся ситуации крайне желательной становится автоматизация максимального количества этапов, составляющих процесс разработки и сопровождения параллельной программы.
Одним из направлений такой автоматизации является разработка единых подходов, охватывающих сразу несколько уровней параллелизма и позволяющих отображать программу на различные архитектуры вычислителей. Примером единого подхода является стандарт SYCL [3], который добавляет параллелизм в последние версии языка С++ для поддержки параллельного выполнения на GPU, CPU и FPGA.
Список литературы
- B. Ya. Steinberg and O. B. Steinberg, “Program Transformations as the Base for Optimizing Parallelizing Compilers”, Program Systems: Theory and Applications 12, Issue 1, 21-113 (2021). DOI: 10.25209/2079-3316-2021-12-1-21-113 EDN: FZFEPX
- P. Czarnul, J. Proficz, and K. Drypczewski, “Survey of Methodologies, Approaches, and Challenges in Parallel Programming Using High-Performance Computing Systems”, Sci. Program. 2020, Article ID 4176794 (2020). DOI: 10.1155/2020/4176794
- SYCL Academy. https://sycl.tech Cited December 8, 2022.
- Celerity. High-level C++ for Accelerator Clusters. https://celerity.github.io Cited December 8, 2022.
- H. Murai, M. Nakao, T. Shimosaka, et al., “XcalableACC - a Directive-Based Language Extension for Accelerated Parallel Computing”, in Proc. Int. Conf. for High Performance Computing, Networking, Storage and Analysis, New Orleans, USA, November 16-21, 2014. https://pro-env.riken.jp/data/2014/post266s2-file3.pdf Cited December 8, 2022.
- N. A. Konovalov, V. A. Krukov, S. N. Mikhajlov, and A. A. Pogrebtsov, “Fortran DVM: a Language for Portable Parallel Program Development”, Program. Comput. Softw. 21 (1), 35-38 (1995).
- V. A. Bakhtin, M. S. Klinov, V. A. Krukov, et al., “Extension of the DVM-Model of Parallel Programming for Clusters with Heterogeneous Nodes”, Vestn. Yuzhn. Ural. Gos. Univ. Ser. Mat. Model. Program. No. 12, 82-92 (2012).
- V. A. Bakhtin, A. S. Kolganov, V. A. Krukov, et al., “Dynamic Tuning Methods of DVMH-Programs for Clusters with Accelerators”, in Proc. Int. Conf. on Russian Supercomputing Days, Moscow, Russia, September 28-29, 2015 (Mosk. Gos. Univ., Moscow, 2015), pp. 257-268.
- W.-M. Hwu, S. Ryoo, S.-Z. Ueng, et al., “Implicitly Parallel Programming Models for Thousand-Core Microprocessors”, in Proc. 44th Annual Design Automation Conference, San Diego, USA, June 4-8, 2007 (ACM Press, New York, 2007), pp. 754-759. DOI: 10.1145/1278480.1278669
-
R. Baghdadi, U. Beaugnon, A. Cohen, et al, "PENCIL: A Platform-Neutral Compute Intermediate Language for Accelerator Programming", in Proc. Int. Conf. on Parallel Architecture and Compilation Techniques, San Francisco, USA, October 18-21, 2015 (IEEE Press, Washington, DC, 2015), pp. 138-149. DOI: 10.1109/PACT.2015.17
-
M. Kruse, Introducing Molly: Distributed Memory Parallelization with LLVM, arXiv preprint: 1409.2088v1[cs.PL] (Cornell Univ. Library, Ithaca, 2014),10.48550/arXiv.1409.2088 Cited December 8, 2022. DOI: 10.48550/arXiv.1409.2088CitedDecember8
-
H. Vandierendonck, S. Rul, and K. De Bosschere, "The Paralax Infrastructure: Automatic Parallelization with a Helping Hand", in Proc. Int. Conf. on Parallel Architectures and Compilation Techniques, Vienna, Austria, September 11-15, 2010 (ACM Press, New York, 2010), pp. 389-400. dOI: 10.1145/1854273.1854322
-
N. A. Kataev and A. S. Kolganov, "Additional Parallelization of Existing MPI Programs Using SAPFOR", Numer. Methods Program. 22 (4), 239-251 (2021). DOI: 10.26089/NumMet.v22r415 EDN: PEFMNX
-
M. S. Klinov and V. A. Krukov, "Automatic Parallelization of Fortran Programs. Mapping to Cluster", Vestn. Lobachevskii Univ. Nizhni Novgorod, No. 2, 128-134 (2009).
-
V. A. Bakhtin, I. G. Borodich, N. A. Kataev, et al., "Dialogue with a Programmer in the Automatic Parallelization Environment SAPFOR", Vestn. Lobachevskii Univ. Nizhni Novgorod, No. 5(2), 242-245 (2012).
-
N. Kataev, "Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR", in Communications in Computer and Information Science (Springer, Cham, 2018), Vol. 965, pp. 487-499. DOI: 10.1007/978-3-030-05807-4_41 EDN: OSMYIO
-
N. Kataev, A. Smirnov, and A. Zhukov, "Dynamic Data-Dependence Analysis in SAPFOR", CEUR Workshop Proc. Vol. 2543 (2020), pp. 199-208. DOI: 10.20948/abrau-2019-62 EDN: CXEULI
-
N. Kataev, "Interactive Parallelization of C Programs in SAPFOR", CEUR Workshop Proc. Vol. 2784 (2020), pp. 139-148.
-
N. Kataev, "LLVM Based Parallelization of C Programs for GPU", in Communications in Computer and Information Science (Springer, Cham, 2020), Vol. 1331, pp. 436-448. doi. DOI: 10.1007/978-3-030-64616-5_38 EDN: QUKQFS
-
NAS Parallel Benchmarks. https://www.nas.nasa.gov/publications/npb.html Cited December 8, 2022.
-
S. P. Amarasinghe and M. S. Lam, "Communication Optimization and Code Generation for Distributed Memory Machines", ACM SIGPLAN Not. 28 (6), 126-138 (1993). DOI: 10.1145/155090.155102
-
H. P. Zima, H.-J. Bast, and M. Gerndt, "SUPERB: A Tool for Semi-Automatic MIMD/SIMD Parallelization", Parallel Comput. 6 (1), 1-18 (1988). DOI: 10.1016/0167-8191(88)90002-6
-
T. Grosser, A. Groesslinger, and C. Lengauer, "Polly - Performing Polyhedral Optimizations on a Low-Level Intermediate Representation", Parallel Process. Lett. 22 (2012). DOI: 10.1142/S0129626412500107 EDN: KRKDQD
-
C. Lattner and V. Adve, "LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation", in Proc. Int. Symp. on Code Generation and Optimization (CGO'04), Palo Alto, USA, March 20-24, 2004. DOI: 10.1109/CGO.2004.1281665
-
L. R. Gervich, E. N. Kravchenko, B. Ya. Shteinberg, and M. V. Yurushkin, "Automatic Program Parallelization with a Block Data Distribution", Numer. Analysis Appl. 8 (1), 35-45 (2015). DOI: 10.1134/S1995423915010048 EDN: UFMKGV
-
U. Bondhugula, "Compiling Affine Loop Nests for Distributed-Memory Parallel Architectures", in Proc. Int. Conf. on High Performance Computing, Networking, Storage and Analysis, Denver, USA, November 17-22, 2013. DOI: 10.1145/2503210.2503289
-
U. Bondhugula, A. Hartono, J. Ramanujam, and P. Sadayappan, "A Practical Automatic Polyhedral Parallelizer and Locality Optimizer", SIGPLAN Not. 43 (6), 101-113 (2008). DOI: 10.1145/1375581.1375595
-
P. Banerjee, J. A. Chandy, M. Gupta, et al., "The Paradigm Compiler for Distributed-Memory Multicomputers", Computer 28 (10), 37-47 (1995). DOI: 10.1109/2.467577
-
L. B. Sokolinsky, "BSF: A Parallel Computation Model for Scalability Estimation of Iterative Numerical Algorithms on Cluster Computing Systems", J. Parall. Distrib. Comput. 149, 193-206 (2021). DOI: 10.1016/j.jpdc.2020.12.009 EDN: OENERK
-
Heterogeneous cluster K10. https://www.kiam.ru/MVS/resourses/k10.html Cited December 8, 2022.
Выпуск
Методы и алгоритмы вычислительной математики и их приложения.
Параллельные программные средства и технологии.
Другие статьи выпуска
В данной статье рассматривается балансно-характеристический численный метод решения гиперболических систем уравнений на треугольных расчетных сетках. Описываются основные шаги алгоритма на примере решения двумерных уравнений мелкой воды. Метод верифицирован и проведено его сравнение с методами, разработанными другими авторами, на основных тестах для уравнений мелкой воды над ровным дном.
In this paper, we consider the Fredholm integral equations of the second kind and construct a new iterative scheme associated to the Nyström method, which was elaborated by Atkinson to approximate the solution over a large interval. Primarily, we demonstrate the inability to generalize the Atkinson iterative methods. Then, we describe our modified generalization in detail and discuss its advantages such as convergence of the iterative solution to the exact solution in the sense norm of the Banach space С0[a,b]. Finally, we give a numerical examples to illustrate the accuracy and reliability of our generalization.
В статье рассматривается параллельный алгоритм решения задач глобальной оптимизации и обсуждается его реализация с использованием набора инструментов Intel oneAPI. Предполагается, что целевая функция задачи задана как “черный ящик” и удовлетворяет условию Липшица. Изложенный в статье параллельный алгоритм использует схему редукции размерности на основе кривых Пеано, которые непрерывно и однозначно отображают отрезок вещественной оси на гиперкуб. В качестве средства для реализации параллельного алгоритма использован инструментарий Intel oneAPI, который позволяет писать один код как для центрального процессора, так и для графических ускорителей. Приведены результаты вычислительных экспериментов, полученные при решении серии сложных задач многоэкстремальной оптимизации.
На сегодняшний день многопроходный метод PIV (Particle Image Velocimetry) широко используется в области экспериментальной механики жидкости и газа из-за его высокой надежности при решении практических задач. Однако он имеет известное ограничение, связанное с ошибками, возникающими при вычислении производных скорости, необходимых для деформации обрабатываемых PIV-изображений при повышении производительности метода. Поскольку количество ошибок увеличивается с применением схем более высокого порядка, на практике чаще всего ограничиваются первым порядком, что в свою очередь приводит к снижению пространственного разрешения. В данной работе предлагается метод, допускающий применение схем более чем второго порядка, что позволяет заметно повысить точность измерения скорости и ее производных и тем самым увеличить пространственное разрешение. Метод не требует восстановления ошибочных векторов скорости, позволяет избежать численного расчета производных скорости и легко применим на практике.
Исследованы закономерности процессов испарения и конденсации чистого пара в методе решеточных уравнений Больцмана. Выполнено моделирование этих процессов при постоянных во времени потоках пара на границе расчетной области. Показано, что в этом случае осуществляются квазистационарные режимы испарения и конденсации. Предложен простой численно эффективный метод задания потока пара на плоской границе расчетной области путем вычисления функций распределения на входящих характеристиках метода решеточных уравнений Больцмана. В расчетах показано, что поток массы при испарении плоской поверхности пропорционален разности плотностей насыщенного и окружающего пара при данной температуре поверхности, что хорошо согласуется с законом Герца-Кнудсена. Результаты трехмерного и одномерного моделирования методом решеточных уравнений Больцмана совпадают с высокой точностью. Показано, что отношение разности плотностей к потоку вещества на границе фаз при заданной температуре линейно зависит от времени релаксации как для испарения, так и для конденсации. Исследовано влияние температуры на интенсивность потоков испарения и конденсации чистого пара. Обнаружена зависимость процессов испарения и конденсации от времени релаксации, которое определяет кинематическую вязкость флюида.
Процесс распараллеливания программ может быть затруднён ввиду их оптимизации под последовательное выполнение. Из-за этого полученная параллельная версия может быть неэффективной, а в некоторых случаях распараллеливание оказывается невозможным. Решить указанные проблемы помогают преобразования исходного кода программ. В данной статье рассматривается реализации в системе автоматизированного распараллеливания SAPFOR (System FOR Automated Parallelization) преобразований последовательных Фортран-программ, позволяющих облегчить работу пользователя в системе и существенно снизить трудоемкость распараллеливания программ. Применение реализованных преобразований в системе SAPFOR продемонстрировано на прикладной программе, решающей систему нелинейных дифференциальных уравнений в частных производных. Также было произведено сравнение производительности полученной параллельной версией с версиями, распараллелеными вручную с использованием DVM и MPI технологий.
Работа посвящена построению параллельных алгоритмов решения прямой начально-краевой задачи и обратной задачи о восстановлении правой части для уравнения диффузии с дробной производной по времени. При использовании дополнительной информации о решении в некоторой внутренней точке обратная задача сводится к прямой задаче для вспомогательного уравнения. После применения конечно-разностных схем задачи сводятся к решению систем линейных алгебраических уравнений. Разработанные алгоритмы основаны на методе параллельной прогонки и реализованы для многоядерных процессоров с использованием технологии OpenMP. Проведены численные эксперименты для исследования производительности разработанных алгоритмов.
Издательство
- Издательство
- МГУ
- Регион
- Россия, Москва
- Почтовый адрес
- оссийская Федерация, 119991, Москва, Ленинские горы, д. 1
- Юр. адрес
- оссийская Федерация, 119991, Москва, Ленинские горы, д. 1
- ФИО
- Садовничий Виктор Антонович (РЕКТОР)
- E-mail адрес
- info@rector.msu.ru
- Контактный телефон
- +7 (495) 9391000
- Сайт
- https://msu.ru/