Resolución de ecuaciones diferenciales en GPU

Loading...
Thumbnail Image

Official URL

Full text at PDC

Publication date

2025

Advisors (or tutors)

Editors

Journal Title

Journal ISSN

Volume Title

Publisher

Citations
Google Scholar

Citation

Abstract

El estudio y la simulación numérica de fenómenos físicos descritos por ecuaciones en derivadas parciales (EDPs) constituye una herramienta fundamental en múltiples disciplinas científicas y de ingeniería. Sin embargo, la resolución eficiente de estos problemas puede volverse computacionalmente costosa cuando se requieren mallas finas o dominios de gran tamaño. En este contexto, la programación en GPU surge como una alternativa poderosa para acelerar algoritmos numéricos gracias a su arquitectura de paralelismo masivo. En este trabajo se analizan e implementan métodos numéricos para resolver cinco EDPs clásicas - la ecuación del calor (1D y 2D), la ecuación de onda (1D y 2D) y la ecuación de Laplace (2D) - mediante esquemas de diferencias finitas. Tras establecer el marco teórico, se desarrollan implementaciones tanto en CPU como en GPU utilizando Python y PyCUDA. El objetivo principal es cuantificar el aumento de rendimiento obtenido al ejecutar estos algoritmos en GPU. Para ello, se construye un banco de pruebas y se comparan los tiempos de ejecución de ambos algoritmos. Los resultados muestran mejoras significativas al utilizar GPU, con aceleraciones de hasta dos órdenes de magnitud en algunos casos. Finalmente, se discuten las limitaciones observadas y se proponen posibles líneas de optimización y trabajo futuro.
The study and numerical simulation of physical phenomena described by partial differential equations (PDEs) is a fundamental tool in many scientific and engineering disciplines. However, solving these problems efficiently can become computationally expensive when fine meshes or large domains are required. In this context, GPU programming emerges as a powerful alternative to accelerate numerical algorithms, thanks to its massively parallel architecture. This work analyzes and implements numerical methods to solve five classical PDEs - the heat equation (1D and 2D), the wave equation (1D and 2D), and the Laplace equation (2D) - using finite difference schemes. After establishing the theoretical framework, we develop implementations both in CPU and GPU using Python and PyCUDA. The main objective is to quantify the performance improvement achieved by executing these algorithms in a GPU. To this end, a benchmark is built and execution times are compared between both approaches. The results show significant gains when using GPU, with speed-ups of up to two orders of magnitude in some cases. Finally, observed limitations are discussed and possible optimization paths and future work are proposed.

Research Projects

Organizational Units

Journal Issue

Description

Unesco subjects

Keywords