Peter Pacheco received a PhD in mathematics from Florida State University. After completing graduate school, he became one of the first professors in UCLA's 'Program in Computing, which teaches basic computer science to students at the College of Letters and Sciences there. Since leaving UCLA, he has been on the faculty of the University of San Francisco. At USF Peter has served as chair of the computer science department and is currently chair of the mathematics department.His research is in parallel scientific computing. He has worked on the development of parallel software for circuit simulation, speech recognition, and the simulation of large networks of biologically accurate neurons. Peter has been teaching parallel computing at both the undergraduate and graduate levels for nearly twenty years. He is the author of Parallel Programming with MPI, published by Morgan Kaufmann Publishers."
An Introduction to Parallel Programming is the first undergraduate text to directly address compiling and running parallel programs on the new multi-core and cluster architecture. It explains how to design, debug, and evaluate the performance of distributed and shared-memory programs. The author Peter Pacheco uses a tutorial approach to show students how to develop effective parallel programs with MPI, Pthreads, and OpenMP, starting with small programming examples and building progressively to more challenging ones. The text is written for students in undergraduate parallel programming or parallel computing courses designed for the computer science major or as a service course to other departments; professionals with no background in parallel computing. - Takes a tutorial approach, starting with small programming examples and building progressively to more challenging examples- Focuses on designing, debugging and evaluating the performance of distributed and shared-memory programs- Explains how to develop parallel programs using MPI, Pthreads, and OpenMP programming models
Front Cover 1
An Introduction to Parallel Programming 6
Copyright 7
Dedication 8
Table of Contents 10
Preface 16
Acknowledgments 19
About the Author 20
Chapter 1. Why Parallel Computing? 22
1.1 Why We Need Ever-Increasing Performance 23
1.2 Why We're Building Parallel Systems 24
1.3 Why We Need to Write Parallel Programs 24
1.4 How Do We Write Parallel Programs? 27
1.5 What We'll Be Doing 29
1.6 Concurrent, Parallel, Distributed 30
1.7 The Rest of the Book 31
1.8 A Word of Warning 31
1.9 Typographical Conventions 32
1.10 Summary 33
1.11 Exercises 33
Chapter 2. Parallel Hardware and Parallel Software 36
2.1 Some Background 36
2.2 Modifications to the von Neumann Model 39
2.3 Parallel Hardware 50
2.4 Parallel Software 68
2.5 Input and Output 77
2.6 Performance 79
2.7 Parallel Program Design 86
2.8 Writing and Running Parallel Programs 91
2.9 Assumptions 91
2.10 Summary 92
2.11 Exercises 98
Chapter 3. Distributed-Memory Programming with MPI 104
3.1 Getting Started 105
3.2 The Trapezoidal Rule in MPI 115
3.3 Dealing with I/O 118
3.4 Collective Communication 122
3.5 MPI Derived Datatypes 137
3.6 Performance Evaluation of MPI Programs 140
3.7 A Parallel Sorting Algorithm 148
3.8 Summary 157
3.9 Exercises 161
3.10 Programming Assignments 168
Chapter 4. Shared-Memory Programming with Pthreads 172
4.1 Processes, Threads, and Pthreads 172
4.2 Hello, World 174
4.3 Matrix-Vector Multiplication 180
4.4 Critical Sections 183
4.5 Busy-Waiting 186
4.6 Mutexes 189
4.7 Producer-Consumer Synchronization and Semaphores 192
4.8 Barriers and Condition Variables 197
4.9 Read-Write Locks 202
4.10 Caches, Cache Coherence, and False Sharing 211
4.11 Thread-Safety 216
4.12 Summary 219
4.13 Exercises 221
4.14 Programming Assignments 227
Chapter 5. Shared-Memory Programming with OpenMP 230
5.1 Getting Started 231
5.2 The Trapezoidal Rule 237
5.3 Scope of Variables 241
5.4 The Reduction Clause 242
5.5 The parallel for Directive 245
5.6 More About Loops in OpenMP: Sorting 253
5.7 Scheduling Loops 257
5.8 Producers and Consumers 262
5.9 Caches, Cache Coherence, and False Sharing 272
5.10 Thread-Safety 277
5.11 Summary 280
5.12 Exercises 284
5.13 Programming Assignments 288
Chapter 6. Parallel Program Development 292
6.1 Two n-Body Solvers 292
6.2 Tree Search 320
6.3 A Word of Caution 356
6.4 Which API? 356
6.5 Summary 357
6.6 Exercises 362
6.7 Programming Assignments 371
Chapter 7. Where to Go from Here 374
References 378
Index 382
Erscheint lt. Verlag | 17.2.2011 |
---|---|
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Theorie / Studium ► Algorithmen | |
Mathematik / Informatik ► Mathematik | |
Technik | |
ISBN-10 | 0-08-092144-2 / 0080921442 |
ISBN-13 | 978-0-08-092144-0 / 9780080921440 |
Haben Sie eine Frage zum Produkt? |
Größe: 6,7 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
Größe: 4,5 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich