• Оглавление
  • Введение
  • Обзор технологий



  • страница1/21
    Дата11.07.2018
    Размер1.74 Mb.

    Разработка алгоритмов решения систем гиперболических уравнений на графических процессорах


      1   2   3   4   5   6   7   8   9   ...   21

    Министерство образования и науки Российской Федерации

    МОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ
    (государственный университет)


    ФАКУЛЬТЕТ ОБЩЕЙ И ПРИКЛАДНОЙ МАТЕМАТИКИ

    КАФЕДРА ИНФОРМАТИКИ

    (Специализация 011600 «Прикладные физика и математика»)


    Разработка алгоритмов решения систем гиперболических уравнений на графических процессорах.








    Выпускная квалификационная работа

    студента 973а группы

    Дашкевича Антона Дмитриевича
    Научный руководитель:

    доктор физико-математических наук,

    член-корреспондент РАН
    Петров И.Б.
















    Оглавление


    1Введение 1

    2Обзор технологий 2

    3Постановка задачи. 3

    3.1Реализация простейшей схемы. 4

    3.2Реализация улучшенной схемы 8

    3.3Схема TVD2 c лимитером Sweby. 11



    4Распараллеливание последовательного алгоритма решения уравнения переноса с помощью технологии CUDA. 15

    4.1Краткое описание технологии CUDA. 15

    4.2Двумерное уравнение переноса (схема без осцилляций). Реализация на CUDA. 18

    5Уравнение упругости 20

    5.1Постановка задачи 20

    5.2Описание схемы и ограничителя, который используется в расчетах. 21

    5.3Распараллеливание решения 2-х мерной задачи упругости с помощью технологии CUDA. 21

    5.4Распараллеливание решения 2-х мерной задачи упругости с помощью технологии CUDA и использования разделяемой(shared) памяти. 30

    5.5Распараллеливание решения 2-х мерной задачи упругости с помощью технологии CUDA на нескольких GPU 34

    5.6Оптимизация 38

    6Моделирование влияния головной ударной волны Челябинского метеорита на поверхность Земли 38

    6.1Введение 38

    6.2Начальные данные 39

    6.3Постановка задачи 41

    6.4Результаты 43

    7Выводы 47

    8Планы 47

    9Литература 47



    1. Введение


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

    Одно из перспективных направлений, для уменьшения времени расчетов, является GPU.

    В данной работе решаются гиперболические уравнения. Рассмотрено несколько схем, и рассмотрены их преимущества и недостатки. Задача сразу написана для работы на CPU, протестирована, и только потом перенесена для работы на графических процессорах. Рассматривается применение технологии CUDA для моделирования таких задач на графических процессорах.

    Мы будем рассматривать 2 задачи:



    1. Двумерное уравнение переноса

    2. Двумерное уравнение упругости
    1. Обзор технологий


    На данный момент существуют различные технологии для работы на графических карточках. Основными поставщиками графических устройств являются NVidia и AMD. Каждый предлагает свое решение для разработки приложений на их устройствах. В случае NVidia эта технология называется CUDA. AMD предлагает технологию Stream. Анализ работы различных алгоритмов показывает, что нет критической разницы в производительности при использовании данных технологий. Кроме того, количество документации по CUDA значительно больше, чем по аналогичной технологии от AMD.

    Кроме того, для работы в кластерной среде необходимо совместное использование технологий, для работы на графических устройствах с технологией MPI. Обе технологии: CUDA и Stream, можно интегрировать для использования совместно с MPI. Но, для технологии CUDA это сделать гораздо проще, чем для Stream.

    Рассмотрим технологию OpenCL, которая изначально создавалась как стандарт не только для работы с GPGPU устройствами, но и для исполнения программ на кластерной среде, с различными подключенными устройствами: NVidia GPU, AMD GPU, SpursEngine (Cell) (IBM, SONY, TOSHIBA), Cpu x86, x64 processors и т.д. Но, на данный момент этот стандарт поддерживается только для NVidia GPU, AMD GPU, AMD CPU,Intel CPU. Под поддержкой имеется ввиду наличие компиляторов, драйверов для работы с устройствами.

    Язык, который используется в OpenCL, схож с языком, используемым в CUDA. Поэтому переход к стандарту разработки приложений под GPGPU осуществляется легко, если разрабатывать с помощью CUDA. Характеристики, приведенные в [9], говорят, что на данный момент, использование OpenCL на устройствах от NVidia, уступают в производительности программам, использующим технологию CUDA на 13-65%. Хотя, сейчас NVidia активно совершенствует производительность при работе с OpenCL.

    Так же для работы с графическими устройствами на данный момент существует технология Direct Compute, опубликованная Microsoft в составе Direct X11, в которой были добавлены, так называемые, шейдеры общего назначения. Хотя технология не кроссплатформенна, все же достаточно актуально, ведь на данный момент большая часть пользователей на данный момент используют Windows. Технология Direct Compute в основном нацелена на решение задач общего назначения, но все же она может быть использована, для работы с графикой, например: рендеринг теней и т.п.

    Технология Direct Compute поддерживается основными производителями GPU устройств: NVidia и AMD. На данный момент в этом секторе лидирует AMD, которая, на данный момент лучше интегрирована с Direct Compute и работает “поверх” данной технологии.

    В Direct X11 сделана поддержка чисел с двойной точностью. Сравнительный анализ скорости работы данной технологии по сравнению с CUDA и OpenCL пока проведен достаточно слабо.

    По состоянию на 13 июня 2013 года, 14 суперкомпьютеров из первых 100 имеют гибридную архитектуру. Среди них суперкомпьютер Titan, который занимает 2-ую строчку в рейтинге. Это говорит о росте популярности проведения расчетов на GPU.

    В текущей работе не будет реализовываться алгоритм на OpenCL , на CPU.

    По причинам, изложенным выше, для решения поставленной задачи была выбрана технология CUDA.


      1   2   3   4   5   6   7   8   9   ...   21

    Коьрта
    Контакты

        Главная страница


    Разработка алгоритмов решения систем гиперболических уравнений на графических процессорах