解决具有大量变量(> 1e6 个变量)的复杂 ODE - 最佳实践?

计算科学 显卡
2021-12-23 11:05:30

我必须解决形状的非​​线性 ODE

zA=f(A)
f非线性函数和A具有 >1e6 个变量的矩阵/向量(即A是一个具有 >1000x1000 个条目的矩阵)。对于系统右手边的每次计算(即f(A)) 我必须计算大约五个矩阵-矩阵乘法BAB一个常数矩阵和每行大约五个 FFTA.A正在使用复数。

为了解决这个系统,我打算使用像odeintboost 这样的求解器。我还打算在 GPU 上运行计算,以使用矩阵-矩阵-乘法和批处理 FFT 的提高速度。不过,我不得不发现 odeint 不支持将推力::复杂作为值类型。因此,我目前的做法是复制A在每一步到GPU,并返回f(A)之后到求解器。这是相当昂贵的,因此我想避免它。

因此,是否有其他策略(除了编写我自己的求解器)可以帮助在合理的时间内求解这个 PDE?我应该仍然尝试使用 GPU,还是尝试 MPI(或混合方法)之类的东西?此外,我注意到对于几组参数,方程表现得相当僵硬。在这种情况下是否有解决系统的选项?

0个回答
没有发现任何回复~