Введение 3
Постановка задачи 5
Глава 1. Описание предметной области 6
Глава 2. Разностные схемы «предиктор-корректор» 8
2.1. Описание 8
2.2. Метод Мак-Кормака 9
Глава 3. Обзор архитектуры Kepler 11
Глава 4. Построение разностной схемы 15
4.1. Конечно-разностная схема для уравнения КдВБ 15
4.2. Начальные распределения 17
4.3. Чистый перенос 18
4.4. Уравнение Бюргерса 19
4.5. Уравнение Кортевега - де Вриза 20
Глава 5. Реализация алгоритма 22
5.1. Работа с памятью 22
5.2. Функции ядра 25
5.3. Запуск алгоритма 26
Выводы 28
Заключение 29
Список литературы 30
Нелинейные явления появляются в природе повсюду: от волн на водной поверхности до магнитных, от оптики до прогнозов погоды. Следовательно, их описание и понимание имеет принципиальное значение, как с теоретической, так и прикладной точки зрения.
Нелинейные явления, как правило, описываются дифференциальными уравнениями, решение которых часто является сложной проблемой. Тем не менее, существует специальный класс дифференциальных уравнений, которые разрешимы (в некотором смысле) - интегрируемые системы. Многие понятия современной математической физики, такие как солитоны, инстантоны и квантовые группы имеют свое происхождение в теории интегрируемых систем. Когда физическое явление описывается интегрируемой системой, ее поведение может быть понято во всем мире и его часто можно предсказать. Красота этой теории заключается в его универсальности: многие фундаментальные нелинейные уравнения оказываются как широко применимы, так и интегрируемы. Кроме того, в ряде случаев неинтегрируемые нелинейные уравнения могут быть приближены, при некоторых предположениях, нелинейными интегрируемыми уравнениями, что позволяет лучше понять явления, моделируемые ими.
Однако апроксимация неинтегрируемых нелинейных уравнений не всегда положительно сказывается на получаемых результатах, и найденное решение отличается от истинного довольно сильно. Решение же самих неинтегрируемых нелинейных уравнений очень трудно даже численно и практически невозможно с помощью стандартных аналитических методов. Особенно трудно получить надежные результаты в асимптотической области.
Множество полезных подходов, предложенных для векторных систем, вряд ли может быть перенесено на существующие кластерные системы. Разработка гетерогенных вычислительных систем, основанных на GPGPU, открывает новые возможности для анализа нелинейных эволюционных уравнений. Но GPGPU еще не векторный ускоритель, так что трудно контролировать и оптимизировать параллельные задачи, а «узкие места» встроенной памяти делают практически невозможным получение надежных результатов для трёхмерных проблем. Поэтому необходимо сделать предварительные испытания для простой проблемы, чтобы осветить все возможные трудности и найти оптимальные численные подходы для будущих оптимизаций алгоритмов.
В настоящее время графические ускорители приобретают всё большую популярность, причём они используются не только для решения специализированных задач компьютерной графики или обработки видео, но и для общих вычислений.
Одной из задач, где возможно использование вычислений на GPU является решение дифференциальных уравнений в частных производных. Отдельно стоит подчеркнуть, что это очень трудоёмкий процесс, а производительности CPU недостаточно для решения задач моделирования нелинейных волновых процессов в реальном времени, что делает более предпочтительным использование высокопроизводительных систем и параллельных алгоритмов.
В данной работе был показан процесс построения такого алгоритма для решения дифференциального уравнения в частных производных, описывающего нелинейные волновые процессы в гидродинамике.