Fast Algorithms for Colloidal-Scale Simulations