Document Type
|
:
|
BL
|
Record Number
|
:
|
845837
|
Main Entry
|
:
|
Numrich, Robert W.
|
Title & Author
|
:
|
Parallel Programming with Co-Arrays
|
Publication Statement
|
:
|
Boca Raton :: Chapman and Hall/CRC,, 2018.
|
|
:
|
, ©2019
|
Series Statement
|
:
|
Chapman and Hall/CRC Computational Science Ser.
|
Page. NO
|
:
|
1 online resource (220 pages)
|
ISBN
|
:
|
0429793286
|
|
:
|
: 9780429793288
|
|
:
|
9781439840047
|
Contents
|
:
|
Cover -- Half Title -- Title Page -- Copyright Page -- Table of Contents -- Preface -- 1: Prologue -- 2: The Co-array Programming Model -- 2.1 A co-array program -- 2.2 Exercises -- 3: Partition Operators -- 3.1 Uniform partitions -- 3.2 Non-uniform partitions -- 3.3 Row-partitioned matrix-vector multiplication -- 3.4 Input/output in the co-array model -- 3.5 Exercises -- 4: Reverse Partition Operators -- 4.1 The partition of unity -- 4.2 Column-partitioned matrix-vector multiplication -- 4.3 The dot-product operation -- 4.4 Extended definition of partition operators -- 4.5 Exercises -- 5: Collective Operations -- 5.1 Reduction to root -- 5.2 Broadcast from root -- 5.3 The sum-to-all operation -- 5.4 The max-to-all and min-to-all operations -- 5.5 Vector norms -- 5.6 Collectives with array arguments -- 5.7 The scatter and gather operations -- 5.8 A cautionary note about functions with side effects -- 5.9 Exercises -- 6: Performance Modeling -- 6.1 Execution time for the sum-to-all operation -- 6.2 Execution time for the dot-product operation -- 6.3 Speedup and efficiency -- 6.4 Strong scaling under a fixed-size constraint -- 6.5 Weak scaling under a fixed-time constraint -- 6.6 Weak scaling under a fixed-work constraint -- 6.7 Weak scaling under a fixed-efficiency constraint -- 6.8 Some remarks on computer performance modeling -- 6.9 Exercises -- 7: Partitioned Matrix Classes -- 7.1 The abstract matrix class -- 7.2 Sparse matrix classes -- 7.3 The compressed-sparse-row matrix class -- 7.4 Matrix-vector multiplication for a CSR matrix -- 7.5 Exercises -- 8: Iterative Solvers for Sparse Matrices -- 8.1 The conjugate gradient algorithm -- 8.2 Other Krylov solvers -- 8.3 Performance analysis for the conjugate gradient algorithm -- 8.4 Strong scaling -- 8.5 Weak scaling -- 8.6 Iso-efficiency -- 8.7 Exercises -- 9: Blocked Matrices.
|
|
:
|
9.1 Partitioned dense matrices -- 9.2 An abstract class for dense matrices -- 9.3 The dense matrix class -- 9.4 Matrix-matrix multiplication -- 9.5 LU decomposition -- 9.6 Partial pivoting -- 9.7 Solving triangular systems of equations -- 9.8 Exercises -- 10: The Matrix Transpose Operation -- 10.1 The transpose operation -- 10.2 A row-partitioned matrix transposed to a row-partitioned matrix -- 10.3 The Fast Fourier Transform -- 10.4 Performance analysis -- 10.5 Strong scaling -- 10.6 Weak scaling -- 10.7 Exercises -- 11: The Halo Exchange Operation -- 11.1 Finite difference methods -- 11.2 Partitioned finite difference methods -- 11.3 The halo-exchange subroutine -- 11.4 Exercises -- 12: Subpartition Operators -- 12.1 Subpartition operators -- 12.2 Assigning blocks to images -- 12.3 Combined effect of the two partition operations -- 12.4 Permuted distributions -- 12.5 The cyclic distribution -- 12.6 Load balancing -- 12.7 Exercises -- 13: Blocked Linear Algebra -- 13.1 Blocked matrices -- 13.2 The block matrix class -- 13.3 Optimization of the LU-decomposition algorithm -- 13.4 Exercises -- 14: The Finite Element Method -- 14.1 Basic ideas from finite element analysis -- 14.2 Nodes, elements and basis functions -- 14.3 Mesh partition operators -- 14.4 The mesh class -- 14.5 Integrating the heat equation -- 14.6 Exercises -- 15: Graph Algorithms -- 15.1 Graphs -- 15.2 The breadth-first search -- 15.3 The graph class -- 15.4 A parallel breadth-first-search algorithm -- 15.5 The Graph 500 benchmark -- 15.6 Exercises -- 16: Epilogue -- A: A Brief Reference Manual for the Co-array Model -- A.1 The image index -- A.2 Co-arrays and co-dimensions -- A.3 Relative co-dimension indices -- A.4 Co-array variables with multiple co-dimensions -- A.5 Co-array variables of derived type -- A.6 Allocatable co-array variables -- A.7 Pointers -- A.8 Procedure interfaces.
|
|
:
|
A.9 Execution control -- A.10 Full barriers -- A.11 Partial barriers -- A.12 Critical segments and locks -- A.13 Input/output -- A.14 Command line arguments -- A.15 Program termination -- A.16 Inquiry functions -- A.17 Image index functions -- A.18 Execution control statements -- Bibliography -- Index.
|
Abstract
|
:
|
Parallel Programming with Co-Arrays describes the basic techniques used to design parallel algorithms for high-performance, scientific computing. It is intended for upper-level undergraduate students and graduate students who need to develop parallel codes with little or no previous introduction to parallel computing. It is also intended as a reference manual for researchers active in the field of scientific computing. All the algorithms in the book are based on partition operators. These operators provide a unifying principle that fits seemingly disparate techniques into an overall framework for algorithm design. The book uses the co-array programming model to illustrate how to write code for concrete examples, but it emphasizes that the important concepts for algorithm design are independent of the programming model. With these concepts in mind, the reader can write algorithms in different programming models based on personal taste and comfort.
|
Subject
|
:
|
Parallel processing (Electronic computers)
|
Subject
|
:
|
A Multifrontal Solver.
|
Subject
|
:
|
COMPUTERS-- Programming Languages-- General.
|
Subject
|
:
|
Execution Control.
|
Subject
|
:
|
Linear Algebra.
|
Subject
|
:
|
MATHEMATICS-- Number Systems.
|
Subject
|
:
|
OBJECT-ORIENTED DESIGN.
|
Subject
|
:
|
Parallel processing (Electronic computers)
|
Subject
|
:
|
THE COARRAY PROGRAMMING MODEL.
|
Dewey Classification
|
:
|
004/.35
|
LC Classification
|
:
|
QA76.642 .N867 2019
|
Added Entry
|
:
|
Reid, John Ker.
|