Parallel programming: techniques and applications using networked workstations and parallel computers

I. BASIC TECHNIQUES. 1. Parallel Computers. 2. Message-Passing Computing. 3. Embarrassingly Parallel Computations. 4. Partitioning and Divide-and-Conquer Strategies. 5. Pipelined Computations. 6. Synchronous Computations. 7. Load Balancing and Termination Detection. 8. Programming with Shared Memory. 9. Distributed Shared Memory Systems and Programming. II. ALGORITHMS AND APPLICATIONS. 10. Sorting Algorithms. 11. Numerical Algorithms. 12. Image Processing. 13. Searching and Optimization. Appendix A: Basic MPI Routines. Appendix B: Basic Pthread Routines. Appendix C: OpenMP Directives, Library Functions, and Environment Variables Index.