我已经开发了一个有限元方法的工作解决方案,以使用 GPU 和 OpenCL 使用共轭梯度方法解决传热问题。这种方法的主要缺点是对内存的要求很高。此外,在显卡的情况下,内存通常非常有限。我看到两个选项:
- 创建子域并使用主机内存交换部分网格
- 使用多面方法
我必须考虑到具体的架构。交换可能非常昂贵。CG 方法在 GPGPU 计算的背景下很流行,但我找不到 CG 和 multifrontal 方法(在 GPGPU 的情况下)之间的任何比较。multifrontal 方法可以比 CG 更快吗?这是一个笼统的问题,其实还是要看实现的。