Proof-Number Search is a best-first search algorithm with many successful applications, especially in game solving. As large-scale computing clusters become increasingly accessible, parallelization is a natural way to accelerate computation. However, existing parallel versions of Proof-Number Search are known to scale poorly on many CPU cores. Using two parallelized levels and shared information among workers, we present the first massively parallel version of Proof-Number Search that scales efficiently even on a large number of CPUs. We apply our solver, enhanced with Grundy numbers for reducing game trees, to the Sprouts game, a case study motivated by the long-standing Sprouts Conjecture. Our solver achieves a significantly improved 332.9$\times$ speedup when run on 1024 cores, enabling it to outperform the state-of-the-art Sprouts solver GLOP by four orders of magnitude in runtime and to generate proofs 1,000$\times$ more complex. Despite exponential growth in game tree size, our solver verified the Sprouts Conjecture for 42 new positions, nearly doubling the number of known outcomes.
翻译:证明数搜索是一种最佳优先搜索算法,在诸多领域尤其是博弈求解中取得了广泛应用。随着大规模计算集群日益普及,并行化成为加速计算的必然途径。然而,现有的证明数搜索并行版本在大量CPU核心上普遍存在扩展性不足的问题。通过采用两级并行架构及工作节点间的信息共享机制,我们首次实现了能在大规模CPU集群上高效扩展的大规模并行证明数搜索算法。我们将该求解器(通过引入Grundy数以缩减博弈树)应用于Sprouts游戏——这一案例研究源于长期存在的Sprouts猜想。实验表明,在1024个核心上运行时,我们的求解器实现了332.9倍的显著加速,其运行时间比当前最先进的Sprouts求解器GLOP快四个数量级,并能生成复杂度提升1000倍的证明。尽管博弈树规模呈指数级增长,我们的求解器仍成功验证了Sprouts猜想的42个新局态,使已知结果数量近乎翻倍。