摘要:En este trabajo se aborda la ecuación del transporte advectiva-difusiva lineal en 3D, ecuación en derivadas parciales con términos parabólicos e hiperbólicos. Uno de los paradigmas numéricos más utilizados para la discretización (y posterior resolución) de este tipo de sistemas de ecuaciones es el método de las diferencias finitas. Este método permite hacer un abordaje con diversos esquemas, de forma tal que se pueden especificar métodos explícitos o implícitos en el tiempo o un promedio de ambos. En este trabajo se comparan diferentes esquemas de resolución (explícito y Crank-Nicolson) y diferentes métodos de resolución (SIP y predictor-corrector para el esquema no explicito), desde el punto de vista de la precisión numérica (mediante la comparación con aproximaciones analíticas) y la escalabilidad de rendimiento en el uso de plataformas masivamente paralelas. Cada esquema se implementó en dos códigos paralelos (C + CUDA y C + OpenMP). Para cada implementación se evaluó el desempeño, en precisión y tiempo de cálculo, considerando diferentes tamaños de maya, discretización temporal y criterios de convergencia, llegando a resolver casos de hasta 223.495.688 celdas. Los resultados obtenidos muestran que para el caso estudiado los métodos explícitos permiten obtener resultados con el mismo nivel de precisión que los implícitos y con tiempos de cálculo menores, cuando los primeros son implementados en GPU.
其他摘要:En este trabajo se aborda la ecuación del transporte advectiva-difusiva lineal en 3D, ecuación en derivadas parciales con términos parabólicos e hiperbólicos. Uno de los paradigmas numéricos más utilizados para la discretización (y posterior resolución) de este tipo de sistemas de ecuaciones es el método de las diferencias finitas. Este método permite hacer un abordaje con diversos esquemas, de forma tal que se pueden especificar métodos explícitos o implícitos en el tiempo o un promedio de ambos. En este trabajo se comparan diferentes esquemas de resolución (explícito y Crank-Nicolson) y diferentes métodos de resolución (SIP y predictor-corrector para el esquema no explicito), desde el punto de vista de la precisión numérica (mediante la comparación con aproximaciones analíticas) y la escalabilidad de rendimiento en el uso de plataformas masivamente paralelas. Cada esquema se implementó en dos códigos paralelos (C + CUDA y C + OpenMP). Para cada implementación se evaluó el desempeño, en precisión y tiempo de cálculo, considerando diferentes tamaños de maya, discretización temporal y criterios de convergencia, llegando a resolver casos de hasta 223.495.688 celdas. Los resultados obtenidos muestran que para el caso estudiado los métodos explícitos permiten obtener resultados con el mismo nivel de precisión que los implícitos y con tiempos de cálculo menores, cuando los primeros son implementados en GPU.