Главная » Просмотр файлов » superPrac2 (mpi openmp, mpi cuda)

superPrac2 (mpi openmp, mpi cuda) (1186065)

Файл №1186065 superPrac2 (mpi openmp, mpi cuda) (Практикум)superPrac2 (mpi openmp, mpi cuda) (1186065)2020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Василенко Анатолий, 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.

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

Тип файла
PDF-файл
Размер
2,01 Mb
Материал
Тип материала
Высшее учебное заведение

Тип файла PDF

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

Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.

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

Практикум
20xx Задание cg
cg.c
generator_spd.cpp
make_petsc.
petsc_linsol.c
20xx Задание gauss_elimination
gauss_elimination.c
generator_relax.cpp
make_petsc.
petsc_linsol.c
20xx Задание jacobi
generator_relax.cpp
jacobi.c
make_petsc.
petsc_linsol.c
2010 Практикум
2016 Практикум (Дирихле, Пуассон)
дз 2. 2-й и 3-й поток
cuda profile
cuda_profile.log
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее