High-performance computing: clusters, constellations, MPPs, and future directions