Power, Programmability, and Granularity: The Challenges of ExaScale Computing | Synapse