Skip to main content
QUICK REVIEW

[论文解读] Scaling the semidefinite program solver SDPB

Walter Landry, David Simmons–Duffin|arXiv (Cornell University)|Sep 21, 2019
Parallel Computing and Optimization Techniques参考文献 59被引用 35
一句话总结

本文介绍 SDPB 2.0,一种大规模并行、基于 MPI 的半正定规划求解器 SDPB 的新版本,利用 Elemental 库在数百个核心和多节点上扩展,显著提升共形自举问题的性能。

ABSTRACT

We present enhancements to SDPB, an open source, parallelized, arbitrary precision semidefinite program solver designed for the conformal bootstrap. The main enhancement is significantly improved performance and scalability using the Elemental library and MPI. The result is a new version of SDPB that runs on multiple nodes with hundreds of cores with excellent scaling, making it practical to solve larger problems. We demonstrate performance on a moderate-size problem in the 3d Ising CFT and a much larger problem in the $O(2)$ Model.

研究动机与目标

  • 动机:在共形自举中需要更强大的 SDP 求解器,以处理更大的交叉对称性问题。
  • 描述实现可扩展、高性能 SDP 求解所需的体系结构和数值方面的变革。
  • 通过对 Ising 与 O(2) 模型的基准测试来展示性能提升和可扩展性。
  • 评估新求解器相对于 SDPB 1.0 的正确性与稳定性,并勾勒未来方向。

提出的方法

  • 用 MPI 取代 OpenMP 以实现并行化,使其在多节点、多核心(数百核心)上扩展。
  • 将 MPACK 替换为 Elemental 库,用于分布式密集线性代数,并引入 GMP 以实现任意精度算术。
  • 将计算组织为与正性约束对应的独立块,以实现核心本地化工作并最小化全局同步。
  • 实现自制的 MPI_Reduce_scatter(),在 Q 矩阵全局运算期间控制内存使用。
  • 引入一个内存使用权衡选项 procGranularity,以在牺牲速度的代价下减少内存占用。

实验结果

研究问题

  • RQ1与 SDPB 1.0 相比,基于 MPI 的 SDPB 2.0 在大型自举问题上的性能和可扩展性如何?
  • RQ2在共形自举背景下,需要哪些体系结构变更以实现多节点、高核心数的 SDP 求解?
  • RQ3将 MPACK/OpenMP 替换为 Elemental/MPI 在 SDPB 中对正确性和稳定性有何影响?
  • RQ4将 Q 矩阵分布到各节点的内存影响有哪些,如何进行缓解?

主要发现

  • SDPB 2.0 在所有测试的核心数下均显著快于 SDPB 1.0,在核心数越高时提升越显著。
  • SDPB 2.0 能跨多节点扩展,实现单节点 SDPB 1.0 无法完成的百核计算。
  • 由于分布式的 Q,SDPB 2.0 的每节点内存使用增加,通过 procGranularity 选项得到缓解。
  • 正确性检查显示 SDPB 2.0 得到的解与 SDPB 1.0 相同,在非常晚期的迭代中有微小数值差异,但结果达到高精度一致。
  • 对 3d Ising 和 O(2) 模型的基准测试展示了不同问题规模和核心数下的性能和内存特征。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。