Introduction to parallel programming
By: Steven Brawer.
Publisher: Academic Press
Published: 1989
Place of publication: Boston
Language: eng
Number of pages: 423
Subjects: Parallel programming (Computer science)
Other titles: Parallel programming.
Notes: Bibliography: p. 417-418.
Includes index.
Table of contents: label: 1
title: Introduction
pagenum: 1; label: 1.1
title: Who Should Read This Book
pagenum: 1; label: 1.2
title: Brief Introduction to Parallel Programming
pagenum: 2; label: 1.3
title: About the Text
pagenum: 3; label: 1.4
title: The Context of This Book
pagenum: 6; label: 1.5
title: Add-ons
pagenum: 7; label: 2
title: Tiny Fortran
pagenum: 9; label: 2.1
title: Introduction
pagenum: 9; label: 2.2
title: Program Structure
pagenum: 10; label: 2.3
title: Identifiers
pagenum: 12; label: 2.4
title: Declarations: Scalars and Arrays
pagenum: 13; label: 2.5
title: I/O
pagenum: 14; label: 2.6
title: Array Storage
pagenum: 15; label: 2.7
title: Assignment
pagenum: 15; label: 2.8
title: Arithmetic Expressions
pagenum: 15; label: 2.9
title: If-then-else-endif Blocks
pagenum: 17; label: 2.10
title: Loops
pagenum: 19; label: 2.11
title: Function/Subroutine Calls
pagenum: 21; label: 2.12
title: Passing Arguments in Function/Subroutine Calls
pagenum: 22; label: 3
title: Hardware and Operating System Models
pagenum: 27; label: 3.1
title: Introduction
pagenum: 27; label: 3.2
title: Hardware
pagenum: 28; label: 3.3
title: Time-sharing with a Single Processor
pagenum: 29; label: 3.4
title: Time-sharing with Multiple Processors
pagenum: 33; label: 3.5
title: A Brief Description of Tightly Coupled Multiprocessing
pagenum: 34; label: 3.6
title: Summary
pagenum: 39; label: 4
title: Processes, Shared Memory, and Simple Parallel Programs
pagenum: 41; label: 4.1
title: Introduction
pagenum: 41; label: 4.2
title: Processes and Processors
pagenum: 42; label: 4.3
title: Shared Memory—1
pagenum: 44; label: 4.4
title: Forking—Creating Processes
pagenum: 46; label: 4.5
title: Joining Processes
pagenum: 51; label: 4.6
title: Shared Memory—2
pagenum: 55; label: 4.7
title: Processes Are Randomly Scheduled — Contention
pagenum: 64; label: 4.8
title: Summary
pagenum: 67; label: 5
title: Basic Parallel Programming Techniques
pagenum: 69; label: 5.1
title: Introduction
pagenum: 69; label: 5.2
title: Loop Splitting
pagenum: 69; label: 5.3
title: Ideal Speedup
pagenum: 75; label: 5.4
title: Spin-Locks, Contention and Self-Scheduling
pagenum: 79; label: 5.5
title: Histogram
pagenum: 93; label: 5.6
title: Summary
pagenum: 100; label: 5.7
title: Additional Problems
pagenum: 101; label: 6
title: Barriers and Race Conditions
pagenum: 103; label: 6.1
title: Introduction
pagenum: 103; label: 6.2
title: The Barrier Calls
pagenum: 103; label: 6.3
title: Expression Splitting
pagenum: 114; label: 6.4
title: Summary
pagenum: 119; label: 6.5
title: Additional Problems—Elementary Statistics
pagenum: 120; label: 7
title: Introduction to Scheduling—Nested Loops
pagenum: 121; label: 7.1
title: Introduction
pagenum: 121; label: 7.2
title: Variations on Loop Splitting
pagenum: 125; label: 7.3
title: Variation on Self-Scheduling
pagenum: 133; label: 7.4
title: Indirect Scheduling
pagenum: 136; label: 7.5
title: Summary
pagenum: 138; label: 7.6
title: Additional Problems
pagenum: 139; label: 8
title: Overcoming Data Dependencies
pagenum: 141; label: 8.1
title: Introduction
pagenum: 141; label: 8.2
title: Induction Variable
pagenum: 142; label: 8.3
title: Forward Dependency
pagenum: 145; label: 8.4
title: Block Scheduling and Forward Dependency
pagenum: 148; label: 8.5
title: Backward Dependency
pagenum: 154; label: 8.6
title: Break Out of Loop
pagenum: 155; label: 8.7
title: Splittable Loops
pagenum: 160; label: 8.8
title: Reordering Loops
pagenum: 169; label: 8.9
title: Special Scheduling — Assign Based on Condition
pagenum: 174; label: 8.10
title: Additional Problems
pagenum: 178; label: 9
title: Scheduling Summary
pagenum: 181; label: 9.1
title: Introduction
pagenum: 181; label: 9.2
title: Loop Splitting
pagenum: 181; label: 9.3
title: Expression Splitting
pagenum: 182; label: 9.4
title: Self-Scheduling
pagenum: 183; label: 9.5
title: Indirect Scheduling
pagenum: 184; label: 9.6
title: Block Scheduling
pagenum: 186; label: 9.7
title: Special Scheduling
pagenum: 187; label: 10
title: Linear Recurrence Relations—Backward Dependencies
pagenum: 189; label: 10.1
title: Introduction to Recurrence Relations
pagenum: 189; label: 10.2
title: `x(i) = x(i-1) + y(i)`
pagenum: 191; label: 10.3
title: `x(i) = a(i)*x(i-1) + y(i)`
pagenum: 200; label: 10.4
title: `x(i) = a(i)*x(i-1) + b(i)*x(i-2)`
pagenum: 211; label: 10.5
title: Additional Problems—Other Recurrence Relations
pagenum: 215; label: 11
title: Performance Tuning
pagenum: 219; label: 11.1
title: Introduction
pagenum: 219; label: 11.2
title: Parallel Programming and the Structure of Programs
pagenum: 220; label: 11.3
title: Positioning the `process_fork`
pagenum: 225; label: 11.4
title: The Effect of the Number of Processes on Overhead
pagenum: 229; label: 11.5
title: Using Cache Effectively
pagenum: 232; label: 12
title: Discrete Event, Discrete Time Simulation
pagenum: 239; label: 12.1
title: Introduction
pagenum: 239; label: 12.2
title: Description of the Model
pagenum: 241; label: 12.3
title: Single-Stream Algorithm and Data Structures
pagenum: 244; label: 12.4
title: Single-Stream Program
pagenum: 248; label: 12.5
title: Introduction to the Parallel Version
pagenum: 260; label: 12.6
title: Data Dependencies in the Parallel Algorithm
pagenum: 260; label: 12.7
title: Updating Linked Lists—Contention and Deadlock
pagenum: 263; label: 12.8
title: The Parallel Algorithm
pagenum: 273; label: 12.9
title: Parallel Program
pagenum: 274; label: 12.10
title: Summary
pagenum: 291; label: 13
title: Some Applications
pagenum: 293; label: 13.1
title: Introduction
pagenum: 293; label: 13.2
title: Average and Mean Squared Deviation
pagenum: 293; label: 13.3
title: Fitting a Line to Points
pagenum: 295; label: 13.4
title: Numerical Integration
pagenum: 298; label: 13.5
title: Exploring a Maze
pagenum: 299; label: 13.6
title: Traveling Salesman Problem
pagenum: 308; label: 13.7
title: General Gaussian Elimination
pagenum: 329; label: 13.8
title: Gaussian Elimination for Tridiagonal Matrix
pagenum: 342; label: 14
title: Semaphores and Events
pagenum: 347; label: 14.1
title: Introduction
pagenum: 347; label: 14.2
title: Semaphores
pagenum: 348; label: 14.3
title: Events
pagenum: 361; label: 14.4
title: Summary
pagenum: 368; label: 15
title: Programming Projects
pagenum: 369; label: Appendix A
title: Equivalent C and Fortran Constructs
pagenum: 371; label: A.1
title: Program Structure
pagenum: 371; label: A.2
title: Loops
pagenum: 372; label: A.3
title: Conditionals
pagenum: 373; label: A.4
title: Branches
pagenum: 375; label: A.5
title: Functions and Subroutines
pagenum: 375; label: Appendix B
title: EPF: Fortran 77 for Parallel Programming
pagenum: 379; label: B.1
title: Introduction
pagenum: 379; label: B.2
title: Parallel Regions and the Structure of an EPF Module
pagenum: 380; label: B.3
title: Sharing Memory—Private
pagenum: 382; label: B.4
title: `doall-end` `doall`
pagenum: 384; label: B.5
title: `critical` `section-end` `critical` `section`
pagenum: 387; label: B.6
title: `barrier`
pagenum: 389; label: B.7
title: `barrier` `begin-end` `barrier`
pagenum: 390; label: B.8
title: Spin-Locks
pagenum: 392; label: B.9
title: Events
pagenum: 392; label: B.10
title: Built-In Functions
pagenum: 393; label: B.11
title: Some Subroutines Written in EPF
pagenum: 394; label: Appendix C
title: Parallel Programming on a Uniprocessor Under Unix
pagenum: 401; label: C.1
title: Introduction
pagenum: 401; label: C.2
title: Calling C Programs from Fortran and Vice Versa
pagenum: 402; label: C.3
title: `process_fork`
pagenum: 405; label: C.4
title: Spin-Locks
pagenum: 406; label: C.5
title: Barriers
pagenum: 408; label: C.6
title: `process_join`
pagenum: 410; label: C.7
title: Shared Memory
pagenum: 411; label: C.8
title: Cleanup
pagenum: 413; label: C.9
title: An Example
pagenum: 414; title: Bibliography
pagenum: 417; title: Index
pagenum: 419; title: Order Form for Parallel Programs on Diskette
pagenum: 423