New York: The Institution of Engineering and Technology, 2019. — 600 p. — ISBN: 978-1-78561-582-5.
Computing is moving away from a focus on performance-centric serial computation, and instead towards energy-efficient parallel computation. This has the potential to lead to continued performance increases without increasing clock frequencies and overcoming the thermal and power limitations of the dark-silicon era. As the number of parallel cores increases, we are transitioning to many-core computing. There is considerable interest in developing methods, tools, architectures and applications to support the many-core computing paradigm.
The primary aim of this edited book is to provide a timely and coherent account of the recent advances in many-core computing research. Starting with programming models, operating systems and their applications; the authors present runtime management techniques, followed by system modelling, verification and testing methods, and architectures and systems. The book ends with some examples of innovative applications.
Programming models, OS and applicationsHPC with many core processorsXavier Martorell, Jorge Bellon, Victor Lopez, Vicenç Beltran, Sergi Mateo, Xavier Teruel, Eduard Ayguade, and Jesus LabartaMPI+OmpSs interoperability
The interposition library
Implementation of the MPI+OmpSs interoperability
Solving priority inversion
Putting it all together
Machine characteristics
Evaluation of NTChem
Evaluation with Linpack
Conclusions and future directions
From irregular heterogeneous software to reconfigurable hardwareJohn Wickerson and George A. ConstantinidesOutline
Background
The performance implications of mapping atomic operations to reconfigurable hardware
Shared virtual memory
Weakly consistent atomic operations
Mapping weakly consistent atomic operations to reconfigurable hardware
Conclusion and future directions
Acknowledgements
Operating systems for many-core systemsHendrik Borghorst and Olaf SpinczykKernel-state synchronization bottleneck
Non-uniform memory access
Core partitioning and management
Integration of heterogeneous computing resources
Reliability challenges
Energy management
Conclusions and future directions
Decoupling the programming model from resource management in throughput processorsNandita Vijaykumar, Kevin Hsieh, Gennady Pekhimenko, Samira Khan, Ashish Shrestha, Saugata Ghose, Adwait Jog, Phillip B. Gibbons, and Onur MutluBackground
Motivation
Zorua: our approach
Zorua: detailed mechanism
Methodology
Evaluation
Other applications
Related work
Conclusion and future directions
Tools and workloads for many-core computingAmit Kumar Singh, Piotr Dziurzanski, Geoff V. Merrett, and Bashir M. Al-HashimiSingle-chip multi/many-core systems
Multi-chip multi/many-core systems
Discussion
Conclusion and future directions
Hardware and software performance in deep learningAndrew Anderson, James Garland, Yuan Wen, Barbara Barabasz, Kaveena Persand, Aravind Vasudevan, and David GreggDeep neural networks
DNN convolution
Hardware acceleration and custom precision
Sparse data representations
Program generation and optimization for DNNs
Conclusion and future directions
Acknowledgements
Runtime managementAdaptive–reflective middleware for power and energy management in many-core heterogeneous systemsTiago Mück, Amir M. Rahmani, and Nikil DuttThe adaptive–reflective middleware framework
The reflective framework
Implementation and tools
Case studies
Conclusion and future directions
Advances in power management of many-core processorsAndrea Bartolini and Davide RossiParallel ultra-low power computing
HPC architectures and power management systems
Runtime thermal management of many-core systemsAnup Das and Akash KumarThermal management of many-core embedded systems
Thermal management of 3D many-core systems
Conclusions and future directions
Adaptive packet processing on CPU–GPU heterogeneous platformsArian Maghazeh, Petru Eles, Zebo Peng, Alexandru Andrei, Unmesh D. Bordoloi, and Usman DastgeerBackground on GPU computing
Packet processing on the GPU
Persistent kernel
Case study
Conclusion and future directions
From power-efficient to power-driven computingRishad Shafik and Alex YakovlevComputing is evolving
Power-driven computing
Design-time considerations
Run-time considerations
A case study of power-driven computing
Existing research
Research challenges and opportunities
Conclusion and future directions
System modelling, verification, and testingModelling many-core architecturesGuihai Yan, Jiajun Li, and Xiaowei LiScale-out vs. scale-up
Modelling scale-out many-core
Modelling scale-up many-core
The interactions between scale-out and scale-up
Power efficiency model
Runtime management
Conclusion and future directions
Acknowledgements
Power modelling of multicore systemsMatthew J. Walker, Geoff V. Merrett, and Bashir Al-HashimiCPU power consumption
CPU power management and energy-saving techniques
Approaches and applications
Developing top-down power models
Accuracy of bottom-up power simulators
Hybrid techniques
Conclusion and future directions
Developing portable embedded software for multicore systems through formal abstraction and refinementAsieh Salehi Fathabadi, Mohammadsadegh Dalvandi, and Michael ButlerMotivation
RTM cross-layer architecture overview
Event-B
From identical formal abstraction to specific refinements
Code generation and portability support
Validation
Conclusion and future directions
Self-testing of multicore processorsMichael A. Skitsas, Marco Restifo, Maria K. Michael, Chrysostomos Nicopoulos, Paolo Bernardi, and Ernesto SanchezGeneral-purpose multicore systems
Processors-based systems-on-chip testing flows and techniques
Conclusion and future directions
Advances in hardware reliability of reconfigurable many-core embedded systemsLars Bauer, Hongyan Zhang, Michael A. Kochte, Eric Schneider, Hans-Joachim Wunderlich, and Jörg Henkel
Background
Reliability guarantee with adaptive modular redundancy
Conclusion and future directions
Acknowledgements
Architectures and systemsManycore processor architecturesPrasenjit Chakraborty, Bharath Narasimha Swamy, and Preeti Ranjan PandaClassification of manycore architectures
Processor architecture
Integration
Conclusion and future directions
Silicon photonics enabled rack-scale many-core systemsPeng Yang, Zhehui Wang, Zhifei Wang, Xuanqi Chen, Luan H.K. Duong, and Jiang XuRelated work
RSON architecture
Communication flow and arbitration
Evaluations
Conclusions and future directions
Cognitive I/O for 3D-integrated many-core systemHao Yu, Sai Manoj Pudukotai Dinakarrao, and Hantao HuangCognitive I/O architecture for 3D memory-logic integration
I/O QoS model
Communication-QoS-based management
Performance-QoS-based management
Hybrid QoS-based management
Conclusion and future directions
Approximate computing across the hardware and software stacksMuhammad Shafique, Osman Hasan, Rehan Hafiz, Sana Mazahir, Muhammad Abdullah Hanif, and Semeen RehmanComponent-level approximations for adders and multipliers
Probabilistic error analysis
Accuracy configurability and adaptivity in approximate computing systems
Multi-accelerator approximate computing architectures
Approximate memory systems and run-time management
A cross-layer methodology for designing approximate systems and the associated challenges
Many-core systems for big-data computingSam Ainsworth and Timothy M. JonesWorkload characteristics
Many-core architectures for big data
The memory system
Programming models
Case studies
Other approaches to high-performance big data
Conclusion and future directions
Biologically-inspired massively-parallel computingSteve FurberIn the beginning…
Where are we now?
So what is the problem?
Biology got there first
Bioinspired computer architecture
SpiNNaker – a spiking neural network architecture
SpiNNaker applications
Conclusion and future directions
Acknowledgements