This book presents new concepts, techniques and promising programming models for designing software for chips with 'many' (hundreds to thousands) processor cores. Given the scale of parallelism inherent to these chips, software designers face new challenges in terms of operating systems, middleware [...]