我的问题与教程有关,该教程解释了如何使用 VexCL 实现 boost::odeint 以实现并发(完整的代码可以在这里找到)。
现在我问自己,在 VexCL中究竟/或它的哪一部分是并行化的?
我的印象是,ODE 部分是一项单独的任务,因为在给定示例中,ODE 的所有方程都在一个块内。也许集成部分在三个并行任务中运行。这导致了四个任务,其中(我认为)ODE 任务是一个瓶颈(因为方程可能变得非常大)。
如果这是正确的,我想知道如何提高这种并发性。我认为将 ODE 和 INT 水平组合是有意义的。这导致了 3 个任务,每个任务都无法在此级别进一步减少。