superPrac2 (mpi openmp, mpi cuda) (Практикум)

PDF-файл superPrac2 (mpi+openmp, mpi+cuda) (Практикум) Суперкомпьютерное моделирование и технологии (63878): Лекции - 11 семестр (3 семестр магистратуры)superPrac2 (mpi+openmp, mpi+cuda) (Практикум) - PDF (63878) - СтудИзба2020-08-25СтудИзба

Описание файла

Файл "superPrac2 (mpi+openmp, mpi+cuda)" внутри архива находится в следующих папках: Практикум, 2016 Практикум (Дирихле, Пуассон), дз 2. 2-й и 3-й поток. Решение (avasite). PDF-файл из архива "Практикум", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Василенко Анатолий, 621 группа (3-й поток)Исходный код: [https://github.com/phonexicum/DHP-PE-RA-FDM]2 ветви:1. master – mpi+openmp – 2-е задание суперпрактикума2. mpi-cuda – 3-е задание практикумаНомер варианта: (2-й в списке группы)  2 mod 18 + 18* (2 mod 2) = 2Первый набор функций, равномерная сетка, максимум норма.Оглавление:1.Сборка проекта .............................................................................................................................................. 12.Математическая постановка задания .......................................................................................................... 23.Инфограф .......................................................................................................................................................

34.Распределение задач между процессами .................................................................................................... 55.Основные особенности при использовании технологий параллелизации .............................................. 66.5.1.Использование MPI ............................................................................................................................... 65.2.Распределение задач между ядрами (OpenMP) ..................................................................................

65.3.Использование технологии CUDA....................................................................................................... 6Результаты тестирования на суперкомпьютерах .......................................................................................

86.1.Численные результаты .......................................................................................................................... 86.2.Выводы из численных результатов .................................................................................................... 107.Точное решение диф. уравнения ............................................................................................................... 138.Графическое изображение функции, погрешности вычислений ...........................................................

138.1. Графическое изображение точного аналитического решения и вычисленного решениядифференциального уравнения ..................................................................................................................... 139.8.2.Графическое изображение абсолютной погрешности ..................................................................... 148.3.Графическое изображение относительной погрешности ................................................................ 148.4.Графическое изображение скорости сходимости. ............................................................................

15Профилирование и анализ работы с графическим ускорителем ............................................................ 171. Сборка проектаЕсть Makefile,lmount или jmount – подмонтируют в папку mount файловую систему нужного суперкомпьютера.make upload – скопирует все нужные файлы (все .cpp, .h, .cu) в подмонтированную файловую систему.На суперкомпьютере тем же make-файлом можно скомпилировать программуmake lcompile или make jcompile или make jcompile-ompВ коде есть некоторое количество комментариев, но ещё там все имена – user-friendly.Немного об особенностях используемых технологий (особенно cuda) можно прочитать ниже в параграфе«Основные особенности при использовании технологий параллелизации».12.

Математическая постановка заданияВсе необходимые математические формулы приведены в постановке задачи, выданной студентам.Можно выписать основные математические формулы с учётом моего варианта задания:23. ИнфографКартинка ниже наглядно показывает зависимости между данными с учётом их распределения междупроцессами, при вычислении k-й итерации алгоритма.1. Красным выделены начальные состояния и проверка критерия останова2. Чёрным выделены функции, используемые не только на своём текущем шаге, но и используемыедля следующей итерации3.

Зелёным цветом пронумерован некоторый порядок вычисления операций4. При вычислении скалярных произведений и критерия останова необходимо агрегировать данныесо всех процессов.5. После вычисления коэффициентов \tao и \alpha необходимо их разослать между всеми процессами6. При вычислении delta функций, необходимо пересылать данные между соседними процессами,для вычисления пятиточечной аппроксимации3Картинка ниже показывает граф вычисления 1-й итерации алгоритма:Нетрудно видеть, что 1-я итерация может быть легко сведена к k-й итерации, если исключить вычисление4, 5, 6 операций, а в качестве \alpha взять “1”.Основные операции которые необходимо уметь вычислять:1.

Вычислить скалярное произведение.2. Вычислить 5-ти точечную аппроксимацию.3. Разослать коэффициент между всеми процессами.4. Вычислить значение некоторой функции в точке, при этом вычисление в данной точке основанона данных, уже имеющихся у процесса.5. Проверить критерий останова.44. Распределение задач между процессамиОбласть рассчётов разбивается на прямоугольники. Каждому прямоугольнику сопоставляется процесс,который будет его рассчитывать. И в случае необходимости запрашивать и предоставлять соседямданные (а также возможно агрегирующему процессу)Разделение происходит следующим образом:1. Выбирается, разбиение по количеству процессов по вертикали и горизонтали (например, есливсего дано 512 процессов, то по горизонтали можно выделить 16, а по вертикали – 32 процесса)(соотношение между процессами не должно превышать 2:1, чтобы результирующая область,сопоставленная с каждым из процессов, имела соотношение не более 2:1)2.

вычисляется сколько клеток приходится на заданное количество процессов, в случае если нацелоне делится, то остаток распределяется равномерно (по 1-му элементу на каждого) междупоследними процессами (это возможно т.к. остаток всегда меньше делителя)Картинка ниже наглядно показывает пример при распределении 1000 столбцов между соответствующими32 процессами:Аналогичное разбиение применяется и по вертикали.Данная картинка сделана для наглядности и для частного случая, в программе – разбиение происходитполностью автоматически в зависимости от заданного числа процессов по вертикали и горизонтали, атакже в зависимости от размера сетки.55. Основные особенности при использовании технологий параллелизации5.1.Использование MPIВ момент инициализации вычислений, все участвующие процессы объединяются в свой отдельныйкоммуникатор, в рамках которого происходят операции send/recv и broadcast (MPI_Reduce) операции.Соседние процессы многократно пересылают друг другу массивы данных (значения граничныхэлементов области).

Для это используются асинхронные send/recv.Для подсчёта нормы (максимального элемента среди множества других элементов), изначально процессвычисляет значения максимального элемента для своей области, после чего используется MPI_Reduce.Аналогично для подсчёта общей суммы в составе скалярного произведения, также используетсяMPI_Reduce.5.2.Распределение задач между ядрами (OpenMP)В рамках вычислений часто необходимо производить независимые операции для каждого узла сетки.Возможность распараллеливания между нитями присутствует в следующих операциях:1.

Вычисление скалярного произведения (aggregate sum)2. Вычисление 5-ти точечной аппроксимацииa. вычисление новой функции дельта, на основе функции данной ранее во внутренних точках,что позволяет вычислять значение каждой ячейки независимо)b. распределённые между нитями различные независимые участки кода (подготовка данныхк отправке посредством MPI другим процессам, и обработка принятых данных)3. Вычисление критерия останова (нахождение нормы (в моём случае – нахождение максимума измножества чисел))4.

Вычисление функций r, g, p – т.к. каждый раз вычисление каждой ячейки – это независимаяоперация.Основные используемые возможности openmp: распараллеливание циклов (#pragma omp for) и разбиениенезависимых вычислительных задач на секции между несколькими нитями.Также используется reduce для агрегации результата между нитями, однако на BlueGene работает reduceдля сложения, и не работает для находения max (по-видимому не поддерживается компилятором intel –«mpixlcxx_r»), поэтому для вычисления глобального максимума пришлось задействовать критическуюсекцию.Согласно заданию – каждый mpi процесс запускался отдельно на 4-х ядреном процессоре и разбивал себяна 3 openmp нити.5.3.Использование технологии CUDAНа Ломоносове (с видеокартой Tesla X2070) поддерживаются следующие технологии: MemoryMapping иUAC.

(полный перечень ТТХ можно посмотреть в README git-репозитория).Все массивы данных, используемые для вычислений изначально создаются в памяти графической карты,после чего все вычисления над ними производятся лишь через вычислительные ядра.Основные типы вычислительных ядер:1.

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