Рассмотрим численную реализацию двумерного волнового уравнения, которое является фундаментальным уравнением во многих инженерных задачах. Приближенное решение функции вычисляется из дискретных точек в пространственной сетке на основе дискретных временных шагов. Начальные значения задаются условием начального условия. Сначала мы объясним, как преобразовать дифференциальное уравнение в неявное уравнение конечных разностей, соответственно, систему уравнений в конечных разностях, которые можно использовать для вычисления приближенного решения. Затем мы изменим этот алгоритм, чтобы распараллелить эту задачу на GPU. Особое внимание уделяется повышению производительности параллельный алгоритм. Кроме того, мы запустим реализованный параллельный код на графическом процессоре и серийный код центрального процессора, рассчитав ускорение на основе времени выполнения. Мы представляем, что параллельный код, который выполняется на GPU, дает ожидаемые результаты, сравнивая наши результаты с результатами, полученными при запуске последовательного кода той же симуляции на CPU. Фактически, в некоторых случаях моделирование на GPU выполняется в 22 раза быстрее, чем на CPU.
Ключевые слова: численное моделирование, GPU, технология CUDA, волновое уравнение, конечная разность.