000 02707 a2200229 4500
005 20180122123956.0
008 180122b xxu||||| |||| 00| 0 eng d
020 _a9781439873717
040 _cIIT Kanpur
041 _aeng
082 _a004.22
_bL577p
100 _aLevesque, John
245 _aProgramming for hybrid multi/manycore MPP systems
_cJohn Levesque and Aaron Vose
260 _bCRC Press
_c2018
_aBoca Raton
300 _axxxv, 305p
440 _aChapman & Hall/CRC computational science series
490 _a/ edited by Horst Simon
520 _a"Ask not what your compiler can do for you, ask what you can do for your compiler." --John Levesque, Director of Cray’s Supercomputing Centers of Excellence The next decade of computationally intense computing lies with more powerful multi/manycore nodes where processors share a large memory space. These nodes will be the building block for systems that range from a single node workstation up to systems approaching the exaflop regime. The node itself will consist of 10’s to 100’s of MIMD (multiple instruction, multiple data) processing units with SIMD (single instruction, multiple data) parallel instructions. Since a standard, affordable memory architecture will not be able to supply the bandwidth required by these cores, new memory organizations will be introduced. These new node architectures will represent a significant challenge to application developers. Programming for Hybrid Multi/Manycore MPP Systems attempts to briefly describe the current state-of-the-art in programming these systems, and proposes an approach for developing a performance-portable application that can effectively utilize all of these systems from a single application. The book starts with a strategy for optimizing an application for multi/manycore architectures. It then looks at the three typical architectures, covering their advantages and disadvantages. The next section of the book explores the other important component of the target―the compiler. The compiler will ultimately convert the input language to executable code on the target, and the book explores how to make the compiler do what we want. The book then talks about gathering runtime statistics from running the application on the important problem sets previously discussed. How best to utilize available memory bandwidth and virtualization is covered next, along with hybridization of a program. The last part of the book includes several major applications, and examines future hardware advancements and how the application developer may prepare for those advancements.
650 _aComputer architecture
700 _aVose, Aaron
942 _cBK
999 _c558391
_d558391