## Parallel Programming with Co-Arrays.

Material type: TextSeries: eBooks on DemandChapman and Hall/CRC Computational Science Ser: Publisher: Boca Raton : CRC Press LLC, 2018Copyright date: ©2018Description: 1 online resource (220 pages)Content type: text Media type: computer Carrier type: online resourceISBN: 9780429793288Subject(s): Parallel processing (Electronic computers)Genre/Form: Electronic books.Additional physical formats: Print version:: Parallel Programming with Co-ArraysDDC classification: 004/.35 LOC classification: QA76.642 .N867 2019Online resources: Click here to view this ebook.Item type | Current location | Call number | URL | Status | Date due | Barcode |
---|---|---|---|---|---|---|

Electronic Book | UT Tyler Online Online | QA76.642 .N867 2019 (Browse shelf) | https://ebookcentral.proquest.com/lib/uttyler/detail.action?docID=5509972 | Available | EBC5509972 |

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.

Description based on publisher supplied metadata and other sources.

### Author notes provided by Syndetics

Robert Numrich's professional career has been a study of computational methods for high-performance, scientific computing, starting with his PhD. thesis in theoretical chemistry at the University of Minnesota, continuing at Control Data Corporation designing vector algorithms for the Cyber-205, then at Cray Research developing performance models for the Cray-2 and Cray-3 computers. As a member of the core design team for the Cray-T3D and Cray-T3E, he developed the co-array parallel programming model. After Cray, he held a senior research position at the Minnesota Supercomputing Institute, where he continued work on parallel algorithms and developed performance models using the methods of dimensional analysis. He continued this work as Senior Scientist at the High-Performance Computing Center, City University of New York, and currently holds a position as Adjunct Professor of Computer Science at the CUNY Graduate Center. This book is a summary of the important ideas he has learned, developed, and used throughout his career.

There are no comments on this title.