  Population annealing Monte Carlo is an efficient sequential algorithm for
simulating k-local Boolean Hamiltonians. Because of its structure, the
algorithm is inherently parallel and therefore well suited for large-scale
simulations of computationally hard problems. Here we present various ways of
optimizing population annealing Monte Carlo using 2-local spin-glass
Hamiltonians as a case study. We demonstrate how the algorithm can be optimized
from an implementation, algorithmic accelerator, as well as scalable
parallelization points of view. This makes population annealing Monte Carlo
perfectly suited to study other frustrated problems such as pyrochlore
lattices, constraint-satisfaction problems, as well as higher-order
Hamiltonians commonly found in, e.g., topological color codes.
