FOREST: A Parallel Treecode for Gravitational N-Body Simulations with up to 20 Million Particles