中文

在 GPU 和多核 CPU 上求解批量线性规划

分布式、并行与集群计算 2016-09-27 v1

摘要

线性规划出现在大量应用中,将其卸载至 GPU 是提升性能的可行方法。现有关于在 GPU 上卸载并求解 LP 的工作表明,性能提升来源于大规模 LP(通常为 500 个约束、500 个变量及以上)。为了在涉及中小规模 LP 的应用中从 GPU 获得性能提升,我们提出并行求解大量 LP 的批量求解方法。在本文中,我们介绍了批量 LP 求解器库的设计与 CUDA 实现,以内存合并访问、降低 CPU-GPU 内存传输延迟和负载均衡为目标。使用开源求解器 GLPK (GNU Linear Programming Kit) 在 CPU 上顺序求解作为基准,对批量 LP 求解器的性能进行了比较。针对三种类型的 LP 评估了性能。第一类是初始基本解为可行的 LP,第二类是初始基本解为不可行的 LP,第三类是可行域为 Hyperbox 的 LP。对于第一类,我们展示了在运行一批规模为 100100100100 个变量,100100 个约束)的 50k50k 个 LP 时,获得了 18.3×18.3\times 的最大加速。对于第二类,在求解一批规模为 20020010k10k 个 LP 时,获得了 12×12\times 的最大加速。对于第三类,我们展示了在求解一批近 400400 万个规模为 5 的 LP 时获得了 63×63\times 的显著加速,在求解 600 万个规模为 28 的 LP 时获得了 34×34\times 的加速。此外,我们表明用于求解线性规划的开源库 GLPK 可以轻松扩展,通过多线程并行求解多个 LP。线程并行的 GLPK 实现在 1212 核 Intel Xeon 处理器上求解一批规模为 1001001e51e5 个 LP 时,运行速度提高了 9.6×9.6\times。我们展示了批量 LP 求解器在控制系统设计数学模型的状态空间探索领域的应用。

关键词

引用

@article{arxiv.1609.08114,
  title  = {Solving Batched Linear Programs on GPU and Multicore CPU},
  author = {Amit Gurung and Rajarshi Ray},
  journal= {arXiv preprint arXiv:1609.08114},
  year   = {2016}
}

备注

contains 31 pages in double line spacing, 11 figures with 2 tables. A preliminary work has been accepted in the 8th IEEE International Student Research Symposim on High Performance Computing, HiPC'2015, Bangalore, December 16-19, 2015. http://www.hipc.org/hipc2015/documents/HiPC-SRS-Paper/1570220654.pdf