算法967

算法967:体势的分布式存储快速多极方法。常系数椭圆型偏微分方程(PDE)的解可以用积分变换来计算:与偏微分方程基本解(也称为体积势)的卷积。我们提出了一种计算体势的快速多极子方法(FMM),并用它来构造Poisson、Stokes和低频Helmholtz问题的空间自适应解。传统的非牛顿体方法适用于离散粒子相互作用。用体积势,用体积积分代替和。粒子方法可以用来加速积分。但开发一种特殊的FMM更有效。在本文中,我们将讨论这种FMM的有效实现。我们使用高阶分段Chebyshev多项式和八叉树数据结构来表示输入和输出场,并使近场和核无关FMM(KIFMM)的频谱精确逼近用于远场近似。对于分布式内存并行,我们使用了空间填充曲线、局部本质树和我们之前开发的超立方体通信方案。我们提出了新的近和远交互遍历,以优化缓存使用。另外,与粒子$N$-body代码不同,我们需要一个2:1的平衡树来允许预计算。我们提出了一个快速的2:1平衡方案。最后,我们使用矢量化,包括Intel Sandy Bridge架构上的AVX指令集,以获得超过50%的峰值浮点性能。我们在德克萨斯高级计算中心(TACC)的Stampede平台上使用了任务并行性。我们在单个节点上实现了大约600{scgflop}/s的双精度性能。对于一个粒子分布高度不均匀的18{sce}+9未知数的问题,我们最大的stamped运行在16K核上花费了3.5s(相当于有效分辨率超过了3{sce}+23个未知值,因为我们在八叉树中使用了23个能级)。