The number of cores on graphical computing units (GPUs) is reaching thousands nowadays, whereas the clock speed of processors stagnates. Unfortunately, constraint programming solvers do not take advantage yet of GPU parallelism. One reason is that constraint solvers were primarily designed within the mental frame of sequential computation. To solve this issue, we take a step back and contribute to a simple, intrinsically parallel, lock-free and formally correct programming language based on concurrent constraint programming. We then re-examine parallel constraint solving on GPUs within this formalism, and develop Turbo, a simple constraint solver entirely programmed on GPUs. Turbo validates the correctness of our approach and compares positively to a parallel CPU-based solver.
翻译:如今,图形计算器(GPUs)的核心数量已经达到数千个,而处理器的时速却停滞不前。 不幸的是,制约程序求解器还没有利用 GPU 的平行功能。 一个原因是制约程序求解器主要是在顺序计算的精神框架中设计的。 要解决这个问题,我们退一步,在同时制约程序编制的基础上,形成一个简单、内在平行、无锁和正式正确的编程语言。 然后,我们重新审查在这一形式主义中同时解决对 GPU 的制约,并开发Turbo,这是一个完全在 GPUs 上编程的简单制约程序求解器。 Turbo 验证了我们的方法的正确性,并与平行的基于 CPU 的求解器相比是积极的。