High Performance Parallel Runtimes
-
Michael Klemm
and Jim Cownie
About this book
This book focuses on the theoretical and practical aspects of parallel programming systems for today's high performance multi-core processors and discusses the efficient implementation of key algorithms needed to implement parallel programming models. Such implementations need to take into account the specific architectural aspects of the underlying computer architecture and the features offered by the execution environment.
This book briefly reviews key concepts of modern computer architecture, focusing particularly on the performance of parallel codes as well as the relevant concepts in parallel programming models. The book then turns towards the fundamental algorithms used to implement the parallel programming models and discusses how they interact with modern processors.
While the book will focus on the general mechanisms, we will mostly use the Intel processor architecture to exemplify the implementation concepts discussed but will present other processor architectures where appropriate. All algorithms and concepts are discussed in an easy to understand way with many illustrative examples, figures, and source code fragments.
The target audience of the book is students in Computer Science who are studying compiler construction, parallel programming, or programming systems. Software developers who have an interest in the core algorithms used to implement a parallel runtime system, or who need to educate themselves for projects that require the algorithms and concepts discussed in this book will also benefit from reading it.
You can find the source code for this book at https://github.com/parallel-runtimes/lomp.
Source code downloads with code examples used throughout the book. Cover all implementation aspects of such programming systems.
Author / Editor information
Michael Klemm, München
Jim Cownie, Bristol UK
Topics
-
Download PDFPublicly Available
Frontmatter
I -
Download PDFPublicly Available
Foreword
V -
Download PDFPublicly Available
Preface
IX -
Download PDFPublicly Available
Contents
XI -
Download PDFPublicly Available
List of figures
XVII -
Download PDFPublicly Available
Listings
XIX -
Download PDFPublicly Available
List of tables
XXIII -
Download PDFPublicly Available
Glossary
XXV -
Download PDFRequires Authentication UnlicensedLicensed
1 Setting the stage
1 -
Download PDFRequires Authentication UnlicensedLicensed
2 Parallel programming models and concepts
11 -
Download PDFRequires Authentication UnlicensedLicensed
3 Many-core and multi-core computer architectures
48 -
Download PDFRequires Authentication UnlicensedLicensed
4 Compiler and runtime interaction
90 -
Download PDFRequires Authentication UnlicensedLicensed
5 Fundamental parallel runtime mechanisms
127 -
Download PDFRequires Authentication UnlicensedLicensed
6 Mutual exclusion and atomicity
146 -
Download PDFRequires Authentication UnlicensedLicensed
7 Barriers and reductions
194 -
Download PDFRequires Authentication UnlicensedLicensed
8 Scheduling parallel loops
228 -
Download PDFRequires Authentication UnlicensedLicensed
9 Runtime support for task-parallel models
259 -
Download PDFRequires Authentication UnlicensedLicensed
10 Summary and final thoughts
304 -
Download PDFRequires Authentication UnlicensedLicensed
Bibliography
307 -
Download PDFRequires Authentication UnlicensedLicensed
Index
315 -
Download PDFRequires Authentication UnlicensedLicensed
List of acronyms
327
-
Manufacturer information:
Walter de Gruyter GmbH
Genthiner Straße 13
10785 Berlin
productsafety@degruyterbrill.com