文件名称:Programming.multicore.and.many-core.computing.systems.epub
文件大小:9.49MB
文件格式:EPUB
更新时间:2020-02-28 05:50:44
Multicore Programming
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