This book presents new concepts, techniques and promising programming models for designing software for chips with "many" (hundreds to thousands) processor cores. It serves as a single-source reference to the state-of-the-art in programming many-core chips.Introduction.- Multi-core and Many-core Processor Architectures.- State of the Art Multi-core Operating Systems.- The Fundamental Laws of Parallelism.- Fundamentals of Parallel Programming.- Debugging and Performance Analysis of Many-core Programs.- Many-core Virtualization and Operating Systems.- Introduction to Programming Models.- Practical Many-core Programming.- Looking Ahead.- Index.