Ya he desarrollado una solución de trabajo del Método de Elementos Finitos para resolver problemas de transferencia de calor usando GPU y OpenCL usando el método de Gradiente Conjugado. La principal desventaja de este método es la gran demanda de memoria. Además, en el caso de las tarjetas gráficas, la memoria suele ser muy limitada. Veo dos opciones:
- Cree subdominios e intercambie partes de la malla con la memoria del host
- Utiliza métodos multifrontales
Tengo que tener en cuenta la arquitectura específica. El intercambio podría ser muy costoso. El método CG es popular en el contexto de la computación GPGPU, pero no puedo encontrar ninguna comparación entre los métodos CG y multifrontal (en el caso de GPGPU). ¿Puede el método multifrontal ser más rápido que el CG? Esta es una pregunta general, de hecho, todavía depende de la implementación.