<?xml version='1.0' standalone='no' ?>
<journal xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="JournalArticulus.xsd">
    <operCard>
        <operator>ИПМ им. М.В.Келдыша РАН|Publicator</operator>
        <date>2026-04-08 20:01:04</date>
        <cntArticle>1</cntArticle>
        <cs>0</cs>
    </operCard>
    <titleid>32018</titleid>
    <issn>2071-2901</issn>
    <codeNEB>20712901</codeNEB>
    <journalInfo lang="RUS">
        <title>Препринты ИПМ им. М.В.Келдыша</title>
    </journalInfo>
    <issue>
        <volume/>
        <number>61</number>
        <altNumber/>
        <part/>
        <dateUni>2022</dateUni>
        <issTitle/>
        <pages>1-21</pages>
        <articles>
            <article>
                <pages>1-21</pages>
                <artType>RAR</artType>
                <authors>
                    <author num="001">
                        <authorCodes>
                            <orcid>0000-0003-3953-9989</orcid>
                        </authorCodes>
                        <individInfo lang="RUS">
                            <surname>Березин</surname>
                            <initials>Андрей Всеволодович</initials>
                            <orgName>Институт прикладной математики им. М.В.Келдыша РАН</orgName>
                            <email>a_v_berezin@mail.ru</email>
                        </individInfo>
                        <individInfo lang="ENG">
                            <surname>Berezin</surname>
                            <initials>A.V.</initials>
                            <orgName>Keldysh Institute of Applied Mathematics RAS</orgName>
                        </individInfo>
                    </author>
                    <author num="002">
                        <authorCodes>
                            <spin>1380-1770</spin>
                            <orcid>0000-0001-5126-7088</orcid>
                        </authorCodes>
                        <individInfo lang="RUS">
                            <surname>Заложный</surname>
                            <initials>Никита Владимирович</initials>
                            <orgName>Институт прикладной математики им. М.В.Келдыша РАН</orgName>
                            <email>niczz9797@gmail.com</email>
                        </individInfo>
                        <individInfo lang="ENG">
                            <surname>Zalozhnyy</surname>
                            <initials>N.V.</initials>
                            <orgName>Keldysh Institute of Applied Mathematics RAS</orgName>
                        </individInfo>
                    </author>
                    <author num="003">
                        <authorCodes>
                            <spin>4673-1997</spin>
                            <orcid>0000-0002-6330-1332</orcid>
                        </authorCodes>
                        <individInfo lang="RUS">
                            <surname>Косарев</surname>
                            <initials>Олег Сергеевич</initials>
                            <orgName>Институт прикладной математики им. М.В.Келдыша РАН</orgName>
                            <email>kosabrikos@yandex.ru</email>
                        </individInfo>
                        <individInfo lang="ENG">
                            <surname>Kosarev</surname>
                            <initials>O.S.</initials>
                            <orgName>Keldysh Institute of Applied Mathematics RAS</orgName>
                        </individInfo>
                    </author>
                    <author num="004">
                        <authorCodes>
                            <spin>1106-3970</spin>
                            <orcid>0000-0002-3428-9688</orcid>
                        </authorCodes>
                        <individInfo lang="RUS">
                            <surname>Марков</surname>
                            <initials>Михаил Борисович</initials>
                            <orgName>Институт прикладной математики им. М.В.Келдыша РАН</orgName>
                            <email>m_b_markov@mail.ru</email>
                        </individInfo>
                        <individInfo lang="ENG">
                            <surname>Markov</surname>
                            <initials>M.B.</initials>
                            <orgName>Keldysh Institute of Applied Mathematics RAS</orgName>
                        </individInfo>
                    </author>
                    <author num="005">
                        <authorCodes>
                            <spin>6584-9701</spin>
                            <orcid>0000-0002-9658-3479</orcid>
                        </authorCodes>
                        <individInfo lang="RUS">
                            <surname>Тараканов</surname>
                            <initials>Илья Алексеевич</initials>
                            <orgName>Институт прикладной математики им. М.В.Келдыша РАН</orgName>
                            <email>Liu_roach@mail.ru</email>
                        </individInfo>
                        <individInfo lang="ENG">
                            <surname>Tarakanov</surname>
                            <initials>I.A.</initials>
                            <orgName>Keldysh Institute of Applied Mathematics RAS</orgName>
                        </individInfo>
                    </author>
                </authors>
                <artTitles>
                    <artTitle lang="RUS">Реализация метода частиц на компьютере с графическими ускорителями</artTitle>
                    <artTitle lang="ENG">An implementation of the electron particle method on a hybrid cluster with graphic processor units</artTitle>
                </artTitles>
                <abstracts>
                    <abstract lang="RUS">Представлен эффективный вариант алгоритма метода частиц для моделирования поверхностной генерации, распространения и рассеяния электронов в самосогласованном электромагнитном поле. Разработана реализация алгоритма на гибридном кластере с графическими процессорами (GPU). Рассмотрены пути решения проблем синхронизации результатов регистрации и обмена данными. Реализация ориентирована на задачи моделирования электронной эмиссии и самосогласованного электромагнитного поля в блоках аппаратуры.</abstract>
                    <abstract lang="ENG">The effective variant of particle method algorithm for modeling surface generation, propagation and scattering of electrons in a self-consistent electromagnetic field is presented. An implementation of the algorithm on a hybrid cluster with graphic processor units (GPU) is worked out. Solutions to the problems of synchronization of recording results and data exchange are considered. The implementation is oriented on problems of electron emission and self-consistent electromagnetic field modeling in apparature blocks.</abstract>
                </abstracts>
                <text lang="RUS">    Введение
    Создание методов и средств математического моделирования генерации электромагнитного поля в сложных технических объектах под действием ионизирующих излучений является актуальной проблемой для космической деятельности и атомной энергетики. Примером актуальной задачи из рассматриваемой предметной области является воздействие потока электронов на блок радиоэлектронной аппаратуры. Такая ситуация реализуется, например, для космического аппарата в радиационном поясе Земли [1]. Электроны рассеиваются в корпусе блока, образуя фотоны тормозного излучения [2]. Фотоны вызывают эмиссию электронов с внутренних поверхностей корпуса за счет фотоэффекта и комптоновского рассеяния [3,4]. Поток фото- и комптоновских электронов во внутренних полостях аппарата создает электромагнитное поле, которое генерирует помехи в кабелях и электростатические нагрузки в диэлектрических элементах.
    Основу математической модели таких эффектов [5] составляют кинетические уравнения для функций распределения фотонов и электронов [6,7], замыкаемые уравнениями Максвелла для самосогласованного электромагнитного поля [3]. Кинетическое уравнение для электронов учитывает не только тормозное излучение, но и упругое рассеяние, возбуждение и ударную ионизацию [8-10].
    Данные модели реализованы на кластерном суперкомпьютере с центральными процессорными устройствами (ЦПУ). Это позволило решить ряд практических задач [11,12] и осознать необходимость существенного повышения скорости вычислений. Перспективным средством достижения этого является использование графических процессорных устройств (ГПУ) [13]. Высокая скорость вычислений на гибридных кластерах обусловлена большой пиковой производительностью ГПУ при однотипной обработке большого объема данных. 
    Данная работа представляет реализацию вычисления распределений электронов в самосогласованном электромагнитном поле методом частиц [14] на гибридном кластере. Метод состоит в моделировании координат и импульсов электронов, изменяющихся под действием поля и столкновений. Объем вычислений динамических переменных и плотности тока превышает потребный для решения уравнений Максвелла. Поэтому использование ГПУ для реализации метода частиц является актуальной проблемой [15-20].
    Данная работа представляет реализацию метода частиц для задач со следующей спецификой. Расчетная область включает всю конструкцию аппаратурного блока. В ней оказываются плотные материалы – диэлектрики и металлы, а также полости, возможно заполненные воздухом. Разностная сетка для уравнений Максвелла должна точно описывать сложную геометрию внутренней конструкции блока, т.е. включать большое количество ячеек. В каждой из них для вычисления электромагнитного поля должны вычисляться плотность тока и энерговыделение электронов. Но реализация метода частиц необходима только в полостях. В плотных материалах длины пробега электронов настолько малы, что применение метода частиц не требуется. Поэтому применение метода частиц требуется в относительно небольшой части ячеек разностной сетки. Кроме того, предполагается, что электроны генерируются на границах полостей расчетной области и рассеиваются с малой передачей импульса. Длина пробега, ларморовский и дебаевский радиусы электронов сравнимы с размером расчетной области.
    Первый раздел препринта содержит постановку задачи. Второй раздел представляет описание алгоритма метода частиц по материалам [21-23] с некоторыми уточнениями. Третий раздел посвящен реализации алгоритма на гибридном кластере. Алгоритм решения уравнений Максвелла изложен в работе [24].
    1 Постановка задачи
    Рассмотрим кинетическое уравнение для функции распределения электронов  в фазовом пространстве  координат  и импульсов :
     (1)где  – время,  – скорость электрона,  и  – напряженности электрического и магнитного полей,  и  – дивергенции в пространствах координат и импульсов, e – заряд электрона, ,  – скорость света,  – полное макроскопическое сечение рассеяния электронов,  – дифференциальное макроскопическое сечение рассеяния электронов,  и  – импульсы электрона до и после рассеяния,  – источник электронов. 
    Интеграл столкновений в уравнении (1) моделирует тормозное излучение, упругое рассеяние электронов, ударную ионизацию и возбуждение среды [8-10]. При низких энергиях электронов учитывается их прилипание к молекулам кислорода и рекомбинация с ионами.
    Уравнение (1) эквивалентно [22] интегральному уравнению
     (2)где функции ,  являются решениями уравнений движения
     , (3)с начальными условиями , . Подынтегральное выражение в показателе экспоненты имеет вид
     , ,(4)где , .
    Интегральное уравнение (2) решается методом последовательных поколений [25] в пространстве финитных обобщенных функций [26]. 
    В приближении малой передачи импульса при столкновении [27] уравнение (1) принимает вид
     (5)где  – тормозная способность электрона, или сила Бете-Блоха. Последнее слагаемое в левой части (5) моделирует поглощение электрона, модуль импульса которого стал меньше . Предполагается, что  мало по сравнению с начальным импульсом электрона, а , где  – тормозной путь электрона. 
    Обобщенным решением уравнения (3) в пространстве финитных обобщенных функций является функция распределения
     ,(6)где ,  являются решениями уравнений движения:
     , (7)с теми же начальными условиями, что и уравнения (3).
    Кинетические уравнения замыкаются уравнениями Максвелла для компонент электромагнитного поля:
     ,(8)где  – плотность электрического тока.
    Следует отметить, что функции распределения в кинетических уравнениях (1) и (5) различны по своему физическому смыслу. Функция распределения в уравнении (1) «включает» всю совокупность свободных электронов. К ним относятся в том числе вторичные электроны, образующиеся при ударной ионизации среды первичными электронами. В этом случае плотность тока электронов выражается следующим действием функции распределения:
     ,(9)где  – интерполяционная функция.
    Приближение малой передачи энергии при столкновении предполагает, что при ударной ионизации падающий электрон образует два свободных электрона: первичный и вторичный. Первичным считается электрон с большей энергией. Эта энергия близка к энергии падающего электрона. Функция распределения в уравнении (5) учитывает не все, а только первичные электроны. Вторичным после ударной ионизации считается электрон с меньшей энергией. Начальное распределение вторичных электронов считается изотропным, стороннего тока они не создают. Предполагается, что они дрейфуют в электрическом поле, образуя ток проводимости. Для его моделирования разработаны отдельные математические модели. В качестве исходных данных они используют энергию, передаваемую первичными электронами рассеивающей среде при столкновениях. Она выражается следующим действием:
     ,(10)где  – масса покоя электрона,  – релятивистский фактор.
    Уравнение (5) вторичные электроны не рассматривает.
    2 Алгоритм решения кинетического уравнения методом частиц
    Пусть  – область изменения пространственных переменных. Введем разностную сетку по переменной . Расчетная область по этой переменной разбивается на Nx ячеек узлами ,). Сетка задается следующими формулами:
     ;
;
         Разностные сетки для переменных  и  вводятся аналогично. По времени введем разностную сетку по переменной . Алгоритм будет изложен для одного шага по времени  Напряженности электрического и магнитного полей  и  на временном шаге считаются постоянными. Тогда задача решения кинетического уравнения на шаге  сводится к моделированию движения частицы в постоянном электромагнитном поле с учетом столкновений частиц со средой.
    Рассмотрим одну из ячеек разностной сетки и интервал времени , . Пусть в это время в ячейке находятся L частиц с весами (количеством электронов) , координатами , импульсом , временем появления в ячейке . Среди них присутствуют частицы, родившиеся ранее момента времени , тогда для них . Остальные частицы генерируются источником  в правой части уравнения (1) в течение интервала времени , а также прибывают из соседних ячеек через ее границы. Задача алгоритма, реализующего метод частиц, состоит в вычислении функции распределения электронов , удовлетворяющей уравнению (1) с источником
    .(11)    Выполнение алгоритма состоит в построении для каждой частицы траектории, которую она проходит за время . При этом моделируются события, которые могут с ней произойти. Во-первых, частица может перейти в другую ячейку разностной сетки, то есть попасть под действие электромагнитного поля с другой напряженностью. Во-вторых, частица может испытать столкновение, при котором ее импульс изменится мгновенно. Может возникнуть вторичная частица. В приближении малой передачи энергии частица может термализоваться, то есть снизить свою энергию ниже определенного порога и прийти в тепловое равновесие с рассеивающей средой. Такие частицы выводятся из рассмотрения.
    Траектория частицы на интервале времени  разбивается на сегменты между событиями. Вычисляется время , за которое частица проходит сегмент. Оно определяется как минимальное из интервала времени , оставшегося до конца шага по времени; времени до пересечения границы ячейки ; времени жизни до столкновения .
    Интервал времени  изначально задается равным . Время  однозначно определяется текущим импульсом частицы. Время жизни  является значением случайной величины, плотность распределения которой определяется сечением рассеяния. 
    После определения  интегрируются уравнения движения в заданном электромагнитном поле. Значения напряженностей его компонент интерполируются в точку, где находится частица. Одновременно рассчитывается плотность тока, созданного частицей за время . Значение  пересчитывается . 
    Если , то после вычисления новых координат и импульса моделируется столкновение. Импульс частицы меняется на реализацию случайной величины – импульса рассеянного электрона, определяемого дифференциальным сечением. Если при столкновении возникла новая частица, то она заносится в список необработанных с импульсом, рассчитанным при моделировании столкновения. Ей присваиваются координаты, вес и параметр  рассеянной частицы.
    В приближении малых потерь энергии импульс  пересчитывается с помощью решения уравнений движения (7) с учетом ионизационного торможения. Эти потери определяют энерговыделение – источник вторичных электронов. Учет упругого рассеивания производится за счет изменения заряда частицы .
    Если после окончания построения сегмента величина  остается строго положительной, то алгоритм повторяется для следующего сегмента.
    Если оказалось, что , то частица считается достигшей верхнего временного слоя и заносится в список обработанных с текущими значениями координат, импульса, веса.
    Далее подробно рассматриваются моделирование столкновений, численное решение уравнений движения, расчет плотности стороннего тока.
    2.1 Моделирование столкновений
    Столкновения моделируются в два этапа. На первом этапе определяется время до первого столкновения частицы  по формуле , где  – случайная величина, равномерно распределенная на отрезке . Эта формула следует из того, что вероятность  испытать столкновение за время  определяется как . Случайная величина  равномерно распределена на отрезке . 
    Если для частицы возможны несколько типов столкновений, то для каждого из них величина  определяется независимо. Далее вычисляется минимальное значение. Одновременно определяется тип столкновения. Минимальное время свободного пробега используется при определении . Если  то столкновение частицы со средой не моделируется.
    На втором этапе моделируются характеристики частицы после столкновения. Розыгрыш энергии и полярного угла рассеянного электрона основан на следующем факте. Пусть  – плотность вероятности. Тогда функция  определяет распределение вероятности. Можно определить обратную функцию ,. Тогда случайная величина  распределена равномерно на отрезке , а  есть случайная величина с распределением . Это позволяет вычислять  для каждого типа столкновений. Полярный угол определяется аналогично. Угловое распределение рассеянных электронов при любом столкновении обладает аксиальной симметрией. Азимутальный угол распределен равномерно на отрезке 
    2.2 Интегрирование уравнений движения
    Компоненты напряженности электрического поля ,  и  определены в середине соответствующих ребер разностной ячейки. Компоненты напряженности магнитного поля определены в центрах граней (рисунок 1).
    Рис. 1 – Размещение сеточных компонент электромагнитного поля в ячейке разностной сетки    Электромагнитное поле, действующее на частицу, определяется методом «облако в ячейке». На сегменте траектории значения компонент электромагнитного поля линейно интерполируются в точку, где находится частица, по восьми ближайшим узлам. Это соответствует использованию в методе крупных частиц интерполяционной функции , где
    ,        ,     .    Интерполяционные функции для y и z строятся аналогично.
    Уравнение движения имеет вид:
    ,    где  – импульс электрона, выраженный в единицах mc, где m – масса электрона.
    Скорость электрона выражается через импульс по формуле .
    Для вычисления изменения импульса под действием силы Лоренца строится центрированная по времени явная разностная схема. При этом используется тот факт, что магнитное поле не меняет модуля скорости.
    На первом этапе вычисляется модуль импульса по формулам:
    ,  ,  ,
.        Затем система уравнений движения аппроксимируется разностной схемой:
    ,
,
.        Из этих соотношений определяются величины , и – значения импульса в следующий момент времени.
    Значения компонент импульса вычисляются следующим образом. Сначала вычисляются величины
    ,  ,  , .        Значения импульса в следующий момент времени находятся по формулам
    ,
,
.            Потеря энергии частицей за счет ионизационного торможения моделируется уравнением для импульса
    .        Уравнение имеет следующую разностную аппроксимацию, учитывающую, что торможение не может развернуть электрон в противоположную сторону:
    .        Потеря энергии частицей за счет ионизационного торможения определяет вклад в энерговыделение для модели радиационной проводимости:
    .        Упругое рассеяние в приближении малой потери импульса учитывается изменением количества электронов, образующих частицу. Уравнение имеет вид
    ,    где  – транспортное сечение упругого рассеяния.
    Для вычисления текущей величины  используется разностная схема
    . (12)    Упругое рассеяние вносит изменения только в плотность тока. При его расчете используется текущий заряд, а при расчете энерговыделения – первоначальное значение. Траектория движения частицы рассчитывается по явной схеме:
      , . (13)    2.3 Вычисление плотности тока
    Пусть частица за шаг по времени перемещается из точки  в точку  в одной пространственной ячейке (рис. 2). Для решения уравнений Максвелла определяется плотность тока в точках, указанных на рис. 3.
    
 Рис. 2 – Начальное и конечное положения частицы при перемещении за один временной шагРис. 3 – Размещение компонент плотности электрического тока в ячейке разностной сетки    Заряд частицы распределяется между вершинами той ячейки сетки, в которой она находится, в соответствии с той же интерполяционной функцией , которая использовалась при расчете действующих на частицу полей.
    Обозначим через  разность зарядов в этой вершине в начальный и конечный моменты времени для вершины с индексами  (рисунок 2). Для обеспечения непрерывности заряда потребуем, чтобы сумма токов на ребрах, выходящих из каждой вершины (с учетом знаков), была равна изменению заряда  в этой вершине. Если записать это условие для каждой вершины, получится 8 уравнений с 12 неизвестными (J):
    ,(14)    ,(15)    ,(16)    ,(17)    ,(18)    ,(19)    ,(20)    .(21)    Из этих уравнений независимы семь. Последнее можно получить как сумму предыдущих, если учесть, что полное изменение заряда равно 0. При вычислении токов используем дополнительные соображения. Частица в течение всего шага по времени не меняет ни скорости, ни направления. Естественно потребовать, чтобы ток, который она создает, был сонаправлен скорости.
    Система доопределяется требованием совпадения направлений тока частицы и вектора с компонентами , , :
    ,(22)    ,(23)    ,(24)    ,(25)где  – скорость частицы.
    Эти условия определяют недостающие пять уравнений и позволяют вычислить токи. Более того, вычисление токов можно организовать последовательно.
    Условие (22) определяет токи  из уравнения (14).
    Затем в уравнении (15) переносим в левую часть . Получаем уравнение относительно неизвестных  :
    .(26)    Это уравнение решается при условии (23). Аналогично решаются уравнения (16) при условии (24) и уравнение (17) при условии (25). Из уравнений (18-20) выражаются оставшиеся три неизвестных. Когда проекции скорости частицы на оси координат отрицательны, неизвестные исключаются в другом порядке. 
    Если частица пересекает границу ячейки, то ее траектория разбивается на два сегмента – до границы и после. На каждом сегменте частица находится внутри одной ячейки. Для этого сегмента используется приведенный алгоритм. Для определения плотности тока ток, создаваемый каждой частицей, делится на шаг по времени  и на площадь в соответствии с таблицей, приведенной ниже.
    Алгоритм использует для расчета токов только частицы, находящиеся внутри данной ячейки. Поэтому не требуется вносить какие-либо коррективы в ток на границе расчетной области или вблизи излучающих поверхностей. Отсутствие разностного накопления электрического поля из-за разрыва токов гарантировано тем, что вычисления основаны на уравнении непрерывности. 
    Таблица 1 – Площади, соответствующие элементам тока
Элемент токаПлощадьЭлемент токаПлощадь    3 Параллельная реализация алгоритма на гибридном кластере
    Вычислительный кластер включает вычислительные узлы, содержащие центральные и графические процессорные устройства (ЦПУ и ГПУ). На каждый ГПУ приходится n штук ЦПУ. ГПУ включает m потоковых мультипроцессоров – специализированных чипов, каждый из которых является независимым вычислителем. Узел имеет общую оперативную память, ячейки которой доступны каждому ЦПУ. ГПУ имеет свою, отдельную от узла, оперативную память. Обмен данными между памятью ГПУ и памятью узла осуществляется через ЦПУ, управляющее данным ГПУ. Память ГПУ является общей для всех его чипов.
    Рассмотрим организацию вычислений плотности тока, энерговыделения и электромагнитного поля в потоке электронов методом частиц. Метод подразумевает вычисление динамических переменных – координат и импульсов электронов. Объем вычислительных ресурсов, расходуемый на вычисление динамических переменных, в практических задачах существенно превышает потребный для решения уравнений Максвелла. 
    Уравнения Максвелла для электромагнитного поля решаются на ЦПУ. Для этого вся расчетная область разбивается на подобласти – прямоугольные параллелепипеды. Каждому ЦПУ ставятся в соответствие разностные ячейки, составляющие один из этих параллелепипедов. Компоненты электромагнитного поля вычисляются на ЦПУ узла в разностных ячейках отведенной ему подобласти. Обмен данными о значениях компонент электромагнитного поля на границах подобластей осуществляется в модели «матрица процессоров». Ресурсы каждого ГПУ – оперативная память и потоковые мультипроцессоры — делятся между n ЦПУ. В части ГПУ, выделенной данному ЦПУ, обрабатываются частицы, находящиеся в его подобласти. При пересечении частицей границы подобласти данные о ней передаются на управляющее ЦПУ. Оттуда данные пересылаются на ЦПУ, соответствующее подобласти, в которую частица перешла.
    На каждом временном слое ЦПУ присваивает частице начальные координаты и импульсы, а также момент рождения. Эти данные передаются на ГПУ, соответствующий подобласти, в которой частица родилась. Также на ГПУ передаются соответствующие данному временному слою значения сеточных функций, необходимые для моделирования движения частицы: значения компонент электромагнитного поля, тормозная способность, сечения рассеяния и т.д. Эти сеточные данные, используемые для моделирования движения и взаимодействий частицы, помещаются в общую оперативную память ГПУ и используются всеми чипами. Используемые сеточные данные на одном временном шаге не меняются. Кроме того, каждому чипу отводится свой сегмент общей оперативной памяти ГПУ для хранения вычисляемых данных – сеточных значений энерговыделения и плотности тока в каждой ячейке подобласти. Отведение каждому чипу памяти для хранения вычисляемых величин во всех ячейках подобласти решает проблему гибридного распараллеливания вычислений – исключает синхронизацию записи вкладов частиц, обрабатываемых отдельными чипами, в вычисляемые величины. При этом объем оперативной памяти, необходимой для хранения вычисляемых данных, резко увеличивается, поскольку количество чипов на одном ГПУ может достигать нескольких десятков. Можно привести простую оценку. Основной объем используемых данных приходится на значения компонент электромагнитного поля – шесть величин на узел сетки. Основной объем вычисляемых данных приходится на значения компонент плотности тока – три величины на узел сетки. Если ГПУ содержит 10 чипов, то объем вычисляемых данных превышает объем используемых в пять раз.
    Рассмотрим процесс выполнения вычислений после загрузки используемых на некотором временном слое данных с ЦПУ на ГПУ. Базовой исполняемой единицей в CUDA является вычислительный поток (нить (Thread)). В рассматриваемом случае им является исполнение алгоритма для одной частицы. Под вычислительным ядром понимается задание на обработку некоторой совокупности частиц. Под обработкой понимается пересчет координат и импульсов частицы при построении очередного сегмента ее траектории. Вычислительное ядро есть совокупность исходных данных о координатах и импульсах частиц на текущем слое, применяемый алгоритм, конфигурация вычислителей. Кодом ядра называется последовательность арифметических операций над характеристиками частицы, реализующая алгоритм для каждой из них. Потоки группируются в блоки в соответствии с конфигурацией ядра. Конфигурация ядра задает количество вычислителей в блоке и количество блоков. Блок потоков целиком выполняется одним чипом в составе ГПУ. Исполняемый код един для всех потоков. Чтобы потоки могли обрабатывать независимые данные, то есть разные частицы, при выборе данных они ориентируются на номер блока и свой номер в нем.
    Каждый блок в комплекте вычисляемых данных хранит трехмерные массивы распределений энерговыделения и компонент плотности тока в ячейках разностной сетки. В совокупность вычисляемых данных также входит номер ячейки, в которой находится частица блока. После выполнения кода блок записывает вклады частиц в вычисляемые данные для соответствующих ячеек. Вклады частиц различных блоков по окончании исполнения кода суммируются. Это исключает необходимость синхронизации между блоками.
    Как указано выше, за один запуск ядра для частицы строится очередной сегмент траектории. Поэтому не все обрабатываемые частицы достигают следующего временного слоя в результате однократного запуска ядра. Для отдельной частицы результатом запуска ядра может быть:
    - переход на следующий временной слой и окончание моделирования на данном шаге по времени;
    - достижение границы ячейки;
    - достижение точки взаимодействия;
    - термализация и окончание моделирования.
    Количество обрабатываемых при однократном запуске ядра частиц есть произведение количества потоков в блоке Nblock = 512 и количество мультипроцессоров Nmp = m/n, то есть несколько тысяч. Для перевода всех частиц на следующий слой по времени вычислительное ядро запускается многократно. Вычислители, частицы которых после очередного запуска не требуют дальнейшей обработки, при следующем запуске начинают обрабатывать другие частицы системы. Более подробно это описано ниже. Запуски ядра продолжаются вплоть до достижения всеми частицами данного ЦПУ следующего слоя. 
    Для хранения данных о частицах в памяти ГПУ используются три основных домена памяти. В первом домене хранятся данные частиц, оставшихся в текущей подобласти пространства с прошлого шага по времени. Для каждого из вычислительных потоков закладывается собственный домен памяти под частицы, всего Nblock*Nmp доменов. Эта основная часть памяти, отводимая под хранение данных о частицах.
    Второй и третий домены памяти хранят данные входящих и выходящих частиц. К входящим относятся частицы, рожденные на текущем шаге по времени, а также прилетевшие из соседних подобластей сетки. К выходящим относятся вторичные частицы, появившиеся в результате взаимодействий, а также частицы, вылетевшие за границу текущей подобласти. Для входящих и выходящих частиц создается по отдельному домену – «корзине» — на каждый потоковый мультипроцессор, всего Nmp «корзин» каждого типа. Входные корзины равномерно заполняются на стороне ЦПУ в перерывах между запуском ядра, обрабатывающего частицы. Аналогично на стороне ЦПУ опустошаются выходные корзины.
    Рассмотрим схему работы ГПУ с тремя областями памяти. Для каждого вычислительного потока в памяти ГПУ хранятся порядковые номера элементов памяти в основном массиве частиц:
    Iwrite – номер элемента, из которого берутся характеристики частицы для обработки при запуске ядра; 
    Iread – номер элемента, в который будут записаны изменившиеся характеристики обработанной частицы.
    Для каждого потокового мультипроцессора на ГПУ также хранятся количества частиц в выходной (Iout) и входной (Iin) корзинах.
    Организация вычислений позволяет избежать фрагментации памяти в массиве, то есть возникновения пустых элементов. Если частица достигает конца шага по времени в рамках текущей подобласти сетки, то указатели Iread и Iwrite одновременно перемещаются на следующий элемент памяти. Если частица выбывает из рассмотрения и в массиве образуется свободная ячейка, то вперед двигается только указатель Iread. Таким образом, все последующие частицы после обработки будут сдвинуты в массиве данных и закроют «дыру».
    Такая организация вычислений позволяет балансировать количество частиц между отдельными вычислительными потоками. Вычислительный поток забирает на обработку частицы из входных корзин только после того, как все частицы из его домена, уже находившиеся в системе на начало шага по времени, будут обработаны. Поэтому чем больше у вычислительного потока работы, то есть больше частиц для обработки, тем позднее он начнет брать дополнительные частицы из входной корзины. Таким образом, количество частиц оказывается автоматически сбалансированным между вычислительными потоками. В свою очередь наполнение корзин балансируется на центральном процессоре.
    После окончания обработки всех частиц на всех ГПУ производится суммирование вкладов частиц в плотности токов и энерговыделение от всех вычислительных блоков на каждом из ГПУ. После этого эти вклады от каждой подобласти отправляются на ЦПУ, где используются для расчета проводимости и решения сеточных уравнений Максвелла на верхнем временном слое.
    Главной проблемой рассмотренной реализации является организация памяти ГПУ. Хранение в ней отдельного комплекта вычисляемых сеточных данных для каждого чипа ограничивает допустимый размер сетки и количество частиц, обрабатываемых каждым чипом. В работе [28] предложено уменьшение объема памяти, занимаемой данным комплектом, за счет управления каждым ГПУ не одним, а несколькими ЦПУ. Этот подход показал высокую эффективность для задач, где метод частиц применяется для всех ячеек сетки, а длина пробега, ларморовский и дебаевский радиусы электронов малы по сравнению с размером расчетной области. Расчеты с использованием данной оптимизация показали, что в ряде практических задач распараллеливание метода частиц «по пространству», то есть деление расчетной области на подобласти и распределение между ЦПУ, является избыточным. Первоначальная модель распараллеливания выбрана с целью максимизации размера сеток, на которых возможно проведение расчетов. В ряде практических случаев это оказывается неактуальным. К таким задачам относится рассмотренная во введении проблема моделирования взаимодействия потока электронов с блоком радиоэлектронной аппаратуры. Расчетная область включает конструкционные элементы, состоящие из плотных материалов с малыми длинами пробега, в которых реализация метода частиц не требуется. Для таких задач исключение хранения вычисляемых сеточных данных для ячеек, где метод частиц не применяется, повышает скорость вычислений. 
    С точки зрения производительности, оптимизированный алгоритм не отличается от первоначального, так как для записи результатов вычисляемых данных используется дополнительный слой переадресации индексов, подготовленный на этапе подготовки начальных данных.
    Частицы могут перемещаться между подобластями в рамках одного шага по времени. Поэтому важной является проблема межпроцессорной синхронизации достижения конца шага по времени. В ходе моделирования очередного шага по времени на каждом ЦПУ одновременно происходят два параллельных процесса: запуск на ГПУ вычислительных ядер, обрабатывающих частицы системы, а также обмен входящими и выходящими частицами; координация MPI-обменов.
    В процессе координации MPI-обменов итеративно проверяется готовность текущего ЦПУ. Оно считается закончившим моделирование, если все частицы текущей подобласти достигли конца шага по времени, а также для всех частиц, отправленных в соседние подобласти, получено подтверждение о получении адресатом. В случае готовности ЦПУ выставляет барьер. Барьер является асинхронным и не блокирует процесс координации MPI-обменов. Таким образом, ЦПУ, закончившее моделирование, при получении новых частиц из соседней подобласти возобновляет их обработку. По достижении всеми ЦПУ барьера моделирование приостанавливается. Происходит подсчет общего количества необработанных частиц. Если количество равно нулю, шаг по времени заканчивается. 
    Заключение
    Эффективность представленной реализации метода частиц проверена в тестовых расчетах на вычислительном кластере К60 в ИПМ им. М.В. Келдыша РАН. Узел кластера включает 32 ядра ЦПУ в составе двух процессоров Intel Xeon Gold 6142 v4 и четыре ГПУ nVidia V100 GV100GL, 768 Gb RAM, 2 Тб HDD. Рассматривалось движение электронов в самосогласованном поле и торможение в среде. Полученные результаты близки к физическим величинам, которые были рассчитаны только с помощью ЦПУ. Время расчета на одном ЦПУ при использовании ГПУ снижается до 50 раз. Проверялось распараллеливание между несколькими узлами. При распараллеливании на два узла машинное время, затрачиваемое на движение частиц, снижается в 8 раз. Суммарное время расчета параметров частиц и самосогласованного поля снижается в 15 раз.
</text>
                <codes>
                    <udk>519.6</udk>
                    <doi>10.20948/prepr-2022-61</doi>
                </codes>
                <artFunding>
                    <funding lang="RUS">Исследование выполнено в рамках научной программы Национального центра физики и математики (проект «Математическое моделирование на суперЭВМ экса- и зеттафлопсной производительности»).</funding>
                </artFunding>
                <keywords>
                    <kwdGroup lang="RUS">
                        <keyword>электрон</keyword>
                        <keyword>метод частиц</keyword>
                        <keyword>синхронизация вычислений</keyword>
                        <keyword>ГПУ</keyword>
                    </kwdGroup>
                    <kwdGroup lang="ENG">
                        <keyword>electron particle method</keyword>
                        <keyword>synchronization of calculations</keyword>
                        <keyword>GPU</keyword>
                    </kwdGroup>
                </keywords>
                <references>
                    <reference>S.N. Vernov, A.E. Chudakov. Terrestrial corpuscular and cosmic rays // Space Research. H. Kallmann Bijl (eds).  Amsterdam: 1960, p.751–796.</reference>
                    <reference>Н. Davies, Н.А. Bethe and L.C. Maximon. Theory of bremsstrahlung and pair production. Integral cross section for pair production // Phys. Rev., 1954, v.93, p.788-795.</reference>
                    <reference>L.D. Landau, E.M. Lifshitz. The Classical Theory of Fields, 4th Edition, Butterworth–Heinemann, 1975, v.2.</reference>
                    <reference>W. Heitler. The Quantum Theory of Radiation. – Oxford: Clarendon Press, 1954.</reference>
                    <reference>A. V. Berezin, A. S. Vorontsov, M. E. Zhukovskiy, M. B. Markov, S. V. Parot'kin. “Particle method for electrons in a scattering medium”, Comput. Math. Math. Phys., 55:9 (2015), 1534–1546.</reference>
                    <reference>Kenneth M. Case, Paul F. Zweifel. Linear Transport Theory. Addison-Wesley Publishing Company. 1967.</reference>
                    <reference>H. Alfven, C. Falthammar. Cosmical Electrodynamics. Fundamental Principles. Oxford at the Clarendon Press, 1963.</reference>
                    <reference>N.F. Mott, H.S.W. Massey. The theory of atomic collisions. – Oxford: Clarendon Press, 1965.</reference>
                    <reference>М. Gryzinski. Classic Theory of Electronic and Ionic Inelastic Collisions // Phys. Rev., 1959, v.115, №2, p.374-383.</reference>
                    <reference>Yong-Ki Kim, M. E. Rudd. Theory for Ionization of Molecules by Electrons // Phys. Rev., 1994, v.50, p.3954-3967.</reference>
                    <reference>Berezin A. V., Vorontsov A. V., Zakharov S. V., Markov M. B., Parot’kin S. V. Modeling of prebreakdown stage of gaseous discharge // Math. Models Comput. Simul. 2013. V.5. P.492–500.</reference>
                    <reference>А. В., Жуков Д. А., Жуковский М. Е., Конюков В. В., Крайнюков В. И., Марков М. Б., Помазан Ю. В., Потапенко А. И. Моделирование электромагнитных эффектов в сложных конструкциях при воздействии импульсных излучений // Мат. Моделир. и числ. Методы. 2015. V.6, P.58–72.</reference>
                    <reference>Четверушкин Б.Н. Суперкомпьютерные технологии: Проблемы и перспективы ближайшего будущего // Вестн. РАН. 2018. Т. 88. № 12. С. 1083–1089.</reference>
                    <reference>Бэдсел Ч., Ленгдон А. Физика плазмы и численное моделирование: Пер. с англ. // М.: Энергоатомиздат, 1989. – 452 с.</reference>
                    <reference>Dadyka D.I., Anisimov I.O. Implementation of the Modern Plasma Simulation Codes via PIC Method for Parallel Computing Systems // Problems of Atomic Science and Technology. 2017, № 1. Series: Plasma Physics (23), p. 64-67.</reference>
                    <reference>A. Myers et al. Porting WarpX to GPU-accelerated platforms // Parallel Computing. V. 108, 2021, 102833.</reference>
                    <reference>S. Fatemi et al. AMITIS: A 3D GPU-Based Hybrid-PIC Model for Space and Plasma Physics. //IOP Conf. Series: Journal of Physics: Conf. Series 837 (2017) 012017.</reference>
                    <reference>Романенко А. А., Снытников А. В. Оптимизация переупорядочивания модельных частиц при реализации метода частиц в ячейках на GPU // Вестник НГУ. Серия: Информационные технологии. 2019. Т. 17, № 1. С. 82–89.</reference>
                    <reference>Bastrakov S., Donchenko R., Gonoskov A., Efimenko E., Malyshev A., Meyerov I., Surmin I. Particle-in-cell plasma simulation on heterogeneous cluster systems. // Journal of Computational Science, 3, 474-479 (2013).</reference>
                    <reference>Kelling J., Bastrakov S. et al. Challenges Porting a C++ Template-Metaprogramming Abstraction Layer to Directive-based Offloading. // arXiv-CS-Software Engineering (IF), 2021-10-16.</reference>
                    <reference>Berezin A.V., Markov M.B., Parot’kin S.V. On the Particle Method for Electrons in an Inhomogeneous Scattering Medium //Computational Mathematics and Mathematical Physics. 2021. T.61. № 9. С.1521-1531.</reference>
                    <reference>A.V. Berezin, A.S. Vortonsov, M.E. Zhukovskiy, M.B. Markov, S.V. Paroy’kin. Partical method for electrons in a scattering medium // Comput. Math. Math. Phys., 55:9(2015), 1534-1546.</reference>
                    <reference>Андрианов А. Н., Березин А. В., Воронцов А. С., Ефимкин К. Н., Марков М. Б. Моделирование электромагнитных полей радиационного происхождения на многопроцессорных вычислительных системах. // Препринты ИПМ им. М.В. Келдыша, 2006, № 74.</reference>
                    <reference>А.В. Березин, М.Б. Марков, Б.Д. Плющенков. Локально-одномерная разностная схема для электродинамических задач с заданным волновым фронтом. // Препринты ИПМ им. М.В. Келдыша, 2005, №31.</reference>
                    <reference>Whittaker E. T., Watson G. N. A Course of Modern Analysis. Cambridge University Press, 1996.</reference>
                    <reference>Shilov G. E. Generalized Functions and Partial Differential Equations. New-York: Gordon and Breech Science Publishers Inc., 1968.</reference>
                    <reference>М. Б. Марков, “Приближение однородного рассеяния электронов на траекториях”, Матем. моделирование, 21:10 (2009), 85–93.</reference>
                    <reference>Б. Н. Четверушкин, М. Б. Марков, Р. В. Усков, “О распараллеливании метода частиц для гибридного суперкомпьютера”, Докл. РАН. Матем., информ., проц. упр., 505 (2022), 19–23.</reference>
                </references>
                <files>
                    <furl>https://keldysh.ru/papers/2022/prep2022_61.pdf</furl>
                </files>
            </article>
        </articles>
    </issue>
</journal>
