Programming multicore and many-core computing systems
- Length: 528 pages
- Edition: 1
- Language: English
- Publisher: Wiley
- Publication Date: 2017-02-06
- ISBN-10: 0470936908
- ISBN-13: 9780470936900
- Sales Rank: #4195234 (See Top 100 Books)
Programming multi-core and many-core computing systems
Sabri Pllana, Linnaeus University, Sweden
Fatos Xhafa, Technical University of Catalonia, Spain
Provides state-of-the-art methods for programming multi-core and many-core systems
The book comprises a selection of twenty two chapters covering: fundamental techniques and algorithms; programming approaches; methodologies and frameworks; scheduling and management; testing and evaluation methodologies; and case studies for programming multi-core and many-core systems.
Program development for multi-core processors, especially for heterogeneous multi-core processors, is significantly more complex than for single-core processors. However, programmers have been traditionally trained for the development of sequential programs, and only a small percentage of them have experience with parallel programming. In the past, only a relatively small group of programmers interested in High Performance Computing (HPC) was concerned with the parallel programming issues, but the situation has changed dramatically with the appearance of multi-core processors on commonly used computing systems. It is expected that with the pervasiveness of multi-core processors, parallel programming will become mainstream.
The pervasiveness of multi-core processors affects a large spectrum of systems, from embedded and general-purpose, to high-end computing systems. This book assists programmers in mastering the efficient programming of multi-core systems, which is of paramount importance for the software-intensive industry towards a more effective product-development cycle.
Key features:
- Lessons, challenges, and roadmaps ahead.
- Contains real world examples and case studies.
- Helps programmers in mastering the efficient programming of multi-core and many-core systems.
The book serves as a reference for a larger audience of practitioners, young researchers and graduate level students. A basic level of programming knowledge is required to use this book.
Table of Contents
PART I: FOUNDATIONS
CHAPTER 1: MULTI- AND MANY-CORES, ARCHITECTURAL OVERVIEW FOR PROGRAMMERS
CHAPTER 2: PROGRAMMING MODELS FOR MULTICORE AND MANY-CORE COMPUTING SYSTEMS
CHAPTER 3: LOCK-FREE CONCURRENT DATA STRUCTURES
CHAPTER 4: SOFTWARE TRANSACTIONAL MEMORY
PART II: PROGRAMMING APPROACHES
CHAPTER 5: HYBRID/HETEROGENEOUS PROGRAMMING WITH OMPSS AND ITS SOFTWARE/HARDWARE IMPLICATIONS
CHAPTER 6: SKELETON PROGRAMMING FOR PORTABLE MANY-CORE COMPUTING
CHAPTER 7: DSL STREAM PROGRAMMING ON MULTICORE ARCHITECTURES
CHAPTER 8: PROGRAMMING WITH TRANSACTIONAL MEMORY
CHAPTER 9: OBJECT-ORIENTED STREAM PROGRAMMING
CHAPTER 10: SOFTWARE-BASED SPECULATIVE PARALLELIZATION
CHAPTER 11: AUTONOMIC DISTRIBUTION AND ADAPTATION
PART III: PROGRAMMING FRAMEWORKS
CHAPTER 12: PEPPHER: PERFORMANCE PORTABILITY AND PROGRAMMABILITY FOR HETEROGENEOUS MANY-CORE ARCHITECTURES
CHAPTER 13: FASTFLOW: HIGH-LEVEL AND EFFICIENT STREAMING ON MULTICORE
CHAPTER 14: PARALLEL PROGRAMMING FRAMEWORK FOR H.264/AVC VIDEO ENCODING IN MULTICORE SYSTEMS
CHAPTER 15: PARALLELIZING EVOLUTIONARY ALGORITHMS ON GPGPU CARDS WITH THE EASEA PLATFORM
PART IV: TESTINE, EVALUATION AN OPTIMIZATION
CHAPTER 16: SMART INTERLEAVINGS FOR TESTING PARALLEL PROGRAMS
CHAPTER 17: PARALLEL PERFORMANCE EVALUATION AND OPTIMIZATION
CHAPTER 18: A METHODOLOGY FOR OPTIMIZING MULTITHREADED SYSTEM SCALABILITY ON MULTICORES
CHAPTER 19: IMPROVING MULTICORE SYSTEM PERFORMANCE THROUGH DATA COMPRESSION
PART V: SCHEDULING AND MANAGEMENT
CHAPTER 20: PROGRAMMING AND MANAGING RESOURCES ON ACCELERATOR-ENABLED CLUSTERS
CHAPTER 21: AN APPROACH FOR EFFICIENT EXECUTION OF SPMD APPLICATIONS ON MULTICORE CLUSTERS
CHAPTER 22: OPERATING SYSTEM AND SCHEDULING FOR FUTURE MULTICORE AND MANY-CORE PLATFORMS