A High-Performance Design for Hierarchical Parallelism in the QMCPACK Monte Carlo code
A High-Performance Design for Hierarchical Parallelism in the QMCPACK Monte Carlo code
Ye Luo,P. Doak,P. Kent
TLDR
A new high-performance design for parallelism within the Quantum Monte Carlo code QMCPACK is introduced, better able to exploit the hierarchical parallelism of heterogeneous architectures compared to the previous GPU implementation.
Abstract
We introduce a new high-performance design for parallelism within the Quantum Monte Carlo code QMCPACK. We demonstrate that the new design is better able to exploit the hierarchical parallelism of heterogeneous architectures compared to the previous GPU implementation. The new version is able to achieve higher GPU occupancy via the new concept of crowds of Monte Carlo walkers, and by enabling more host CPU threads to effectively offload to the GPU. The higher performance is expected to be achieved independent of the underlying hardware, significantly improving developer productivity and reducing code maintenance costs. Scientific productivity is also improved with full support for fallback to CPU execution when GPU implementations are not available or CPU execution is more optimal.
