Parallel Programming with Co-arrays
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.
1. The co-array programming model 2. Partition operators 3. Reverse partition operators 4. Collective operations 5. Performance modeling 6. Partitioned matrix classes 7. Iterative solvers for sparse matrices 8. Blocked matrices 9. The matrix-transpose operation 10. The halo-exchange operation 11. Sub-partition operators 12. Blocked linear algebra 13. The finite element method 14. Graph algorithms A. A brief reference manual for the co-array model