Главная » Просмотр файлов » Диссертация

Диссертация (1149802), страница 9

Файл №1149802 Диссертация (Моделирование и оптимизация динамики интенсивных пучков заряженных частиц) 9 страницаДиссертация (1149802) страница 92019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

д. КлассParticlesMover содержит функции интегрирования уравнений движения мак-рочастиц. Класс MeshGenerator предназначен генерирования расчетной сетки,FieldSolver — для расчета распределений электромагнитного поля. КлассыEmissionCurrentSolverPTI и EmissionCurrentSolverPIC реализуют модели иалгоритмы нахождения тока эмиссии в режиме ограничения тока пространственным зарядом. Функции-члены данных классов могут являться перегруженными(например функции UpdateMomentums() и UpdatePositions()) или иметь единственную реализацию для нескольких типов входных данных.На рис. 3.5 представлена общая UML диаграмма основных классов серверной части с учетом описанных выше составных частей DeviceStatus и Solver.Класс ModelInterface является абстрактным и предоставляет клиентской частиинтерфейс доступа к данным сервера.

Его наследник, класс ModelBase, содержитреализацию большинства виртуальных функций интерфейса ModelInterface.59ModelInterfaceparticlesDatatypegridDataTypeemitterDeviceTypeboundaryContainerTypemeshDataTypedataTypedeviceTypesolvertypedataTypeDeviceStatusModelBase-deviceStatus : deviceType-solver : SolverTypedevice3d, solverPICdevice2daxs, solverPICdevice2d, solverPTIModel2dPTIdataTypeSolverPTI+Simulate()+FieldSimulate()device2d, solverPICModel2dPICdataTypeSolverPICModel2daxsPICdevice2d, solverPTIModel2daxsPTIdevice2dpolar, solverPICModel2dpolarPICdevice2dpolar, solverPTIModel2dpolarPTIModel3dPICdevice3d, solverPTIModel3dPTIРиcунок 3.5: Общая UML диаграмма классовОн агрегирует в себе объекты типа DeviceStatus и Solver и является шаблонным.Таким образом, вызов общей функции Simulate() класса ModelBase будетприводить к использованию необходимых методов над выбранными структурами данных, определяемых параметрами шаблонов класса DeviceStatus.Класс ModelBase имеет несколько наследников, в зависимости от типа задачии типа решателя, определяющих спецификацию шаблона:Model2dPIC — двумерная задача с использованием метода частиц в ячейках;Model2dPTI — двумерная задача с использованием итерационного метода;Model2daxsPIC — задача в цилиндрических координатах с учетом осевойсимметрии с использованием метода частиц в ячейках;Model2daxsPTI — задача в цилиндрических координатах с учетом осевойсимметрии с использованием итерационного метода;Model2dpolarPIC — двумерная задача в полярных координатах с использова-нием метода частиц в ячейках;60Model2dpolarPTI — двумерная задача в полярных координатах с использова-нием итерационного метода;Model3dPIC — трехмерная задача с использованием метода частиц в ячейках;Model3dPIC — трехмерная задача с использованием итерационного метода.При создании пользователем нового проекта, в зависимости от его выбораиспользуемых системы координат и метода, создается объект одного из данныхклассов-наследников, аттрибуты которого затем меняются пользователем.

Процесс сохранения проекта заключается в сериализации всех аттрибутов классаModelBase с использованием библиотеки Boost.При загрузке существующего проекта, в зависимости от его типа, также создается объект одного из наследников ModelBase, в который затем происходитдесериализация данных из файла проекта.3.3 Алгоритмы хранения, обработки и удаления частицЗадача оптимизация и масштабировании вычислительных кодов является является одной из важнейших в вычислительной физике.

При моделировании плазмы или динамики пучков число макрочастиц может достигать порядков 109 , аинтервалы расчета порядков микросекунд, что налагает серьезные требования кпроизводительности разрабатываемых программ. В данной части работы будутрассмотрены основные использованные при написании расчетных кодов подходы.3.3.1 Структура данных хранения частицВыбор структуры данных и алгоритмов их обработки является важнейшихаспектом, критически влияющим на будущую производительность кода. Современные процессора достигают максимальной производительности только приэффективной загрузке и использовании кэш-памяти и векторизации.

Вычисления необходимо организовывать таким образом, чтобы в каждом блоке кода61над крупным массивом данных выполнялось множество однотипных операций.Классическим в этом плане является вопрос о выборе между массивом объектов, или одном объекте, содержащем массивы или указатели на массивы, иликонтейнеры ("structure of array vs array of structure"). Согласно многим источникам, например [97, 98], необходимо делать выбор в пользу одного объекта,содержащего массивы. Таким образом, в разработанном комплексе программ используется следующая структура данных для хранения положений, импульсов изарядов макрочастиц (пример для 2d задач):template <class DataType>class Particles2d{std::vector<DataType> x, y, px, py, q;std::vector<int> cellNumber;}Кроме того, для каждой частицы запоминается последний номер ячейки, вкоторой она находилась, что позволяет значительно сократить время выполненияпроцедуры локализации частицы на сетке.С точки зрения быстроты выполнения кода в каждом отдельном пункте алгоритмов частица-сетка (рис.

1.3, 1.4) выгодно обрабатывать макрочастицы блоками, записывать результаты во временные переменные и затем использоватьэти результаты на следующем этапе. Данный подход позволяет повысить эффективность использования кэш-памяти, при этом объем дополнительной памятибудет пропорционален размеру блока. Аналогичный подход используется, например, в алгоритмах перемножения матриц [99] (алгоритм Фокса). Проводилсятест зависимости скорости расчета от размера блока. Использовался процессорAMD FX8320, один вычислительный поток, 367000 макрочастиц рассчитывались в течение 7 нс.

Результаты расчета показывают, что производительностькода будет иметь некоторую зависимость от размера блока — существует некоторое оптимальное значение, обеспечивающее наилучшее использование кэш-62памяти и скорость расчета (рис. 3.6). Данное оптимальное значение, по всейвидимости, будет зависеть от конкретных характеристик задачи и архитектурывычислительной системы.Также, важным аспектом, влияющим на производительность, яв-Время выполнения, секунд380ляется алгоритм удаления частиц,370покинувших расчетную область.360350Простая реализация, подразумева-340ющая удаление частиц на каж-330дом шаге будет приводить к необ-32031001234Размер блока5x 10ходимости часто дефрагментиро-4вать вектора, хранящие информаРиcунок 3.6: Зависимостьпроизводительности кода от размера блокацию о частицах, что приведет к существенному замедлению расчета.Для минимизации этих затрат, наместа тех частиц, что должны быть удалены, перезаписываются новые, помещаемые на каждом шаге в расчетную область.

Если число частиц, которые необходимо удалить, превышает число новых частиц, остаток помечается специальнымобразом и не участвует в дальнейших расчетах. Раз в 20 шагов все подлежащиеудалению частицы удаляются и вектора дефрагментируются.3.3.2 Параллельная реализация методов частица-сетка с использованиемOpenMPМетоды частица-сетка успешно параллелятся как для систем с общей памятью, так и для распределенных систем, или GPU, и обладают хорошей масштабируемостью.Существует два основных подхода к распараллеливанию методов частиц вячейках, описанные в литературе [37, 100–102].63Первый основан на декомпозиции расчетной области на подобласти между вычислителями (потоками или процессами).

Каждый вычислитель при этомответственен за обработку тех частиц, которые находятся в его подобласти. Втаком случае, при операции расчета пространственного заряда не будет возникать конфликтов чтения, однако нагрузка на вычислители при этом может бытьне сбалансирована (например, когда большая часть частиц локализована в малойобласти). Дополнительно, вычислительный алгоритм в таком случае значительно усложняется и требует дополнительных балансировок нагрузки.

Такая стратегия, однако, подходит в тех случаях, когда объем памяти, который возможновыделить для хранения сеточных значений пространственного заряда ограничен,например, при распараллеливания для GPU.Другой подход основан на декомпозиции всех макрочастиц между вычислителями. Каждый вычислитель при этом ответственен за обработку одной изравных долей всех частиц. Нагрузка при этом очевидно оказывается хорошисбалансирована, однако, операция вычисления плотности пространственного заряда будет вызывать конфликты записи, в случаях, когда два вычислителя будутодновременно увеличивать значения заряда в дном и том же узле. Эта проблемаможет быть решена с помощью атомарных операций, или предоставления каждому вычислителю собственной копии массива для накопления в нем распределения пространственного заряда.

После завершения каждого шага, необходимопроизвести синхронизацию и суммирование локальных распределений заряда.Для реализации в разработанном комплексе программ был выбран второйподход, как наиболее подходящий для систем с общей памятью и позволяющийдобиться наилучшей масштабируемости.643.2.1 Исследование масштабируемости метода частиц в ячейкахРеализованную последовательность вычислений в методе частиц в ячейках сучетом разбиения частиц на потоки и на блоки внутри потока можно представить с помощью следующего алгоритма:Зарезервировать память для хранения временных переменныхВыделить для каждого потока локальный массивдля хранения плотности зарядаРаспределеить начальные данные между потоками#pragma omp parallel num_threads(numThreads){while время меньше заданного{#pragma omp barrier#pragma omp single{Просуммировать заряд, накопленный во всех потокахРешить уравнения поляВычислить ток эмиссии}thread = omp_get_thread_num();Разбить частицы, обрабатываемые потоком thread на блокиfor все блоки частиц{Вычислить весовые коэффициенты для всех частиц в блокеВычислить поле для всех частиц в блокеСохранить текущие положения частиц в блокеВычислить новые положения и импульсы для всех частиц в блокеПроверить взамодействие частиц блока с границами расчетной областиЛокализовать частицы в блоке на сеткеВычислить весовые коэффициенты для всех частиц в блокеВычислить плотность заряда}65Сгенерировать новые частицыУдалить частицы, покинувшие расчетную область}}Таким образом, на каждомшаге интегрирования в методе87Ускорениечастиц в ячейках необходимоN p=140000проводить минимум две син-N p=34600065N p=691000N =1380000хронизации потоков выполне-Идеальнаямасштабируемостьния — перед расчетом поля иp4после него (неявная синхро3низация потоков присутству2ет также после выполнения112345678Число вычислительных потоковблока omp single), а вычислительные потоки порождаютсяРиcунок 3.7: Зависимость ускорения от числатолько один раз — на входе ввычислительных потоков и числа макрочастиц.

Характеристики

Список файлов диссертации

Моделирование и оптимизация динамики интенсивных пучков заряженных частиц
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7104
Авторов
на СтудИзбе
255
Средний доход
с одного платного файла
Обучение Подробнее