Programming Massively Parallel Processors. A Hands-on Approach | Synapse