PREFACE. ACKNOWLEDGMENTS.
PART I HETEROGENEOUS PLATFORMS: TAXONOMY, TYPICAL USES, AND PROGRAMMING ISSUES.
1. Heterogeneous Platforms and Their Uses.
1.1 Taxonomy of Heterogeneous Platforms.
1.2 Vendor-Designed Heterogeneous Systems.
1.3 Heterogeneous Clusters.
1.4 Local Network of Computers (LNC).
1.5 Global Network of Computers (GNC).
1.6 Grid-Based Systems.
1.7 Other Heterogeneous Platforms.
1.8 Typical Uses of Heterogeneous Platforms.
1.8.1 Traditional Use.
1.8.2 Parallel Computing.
1.8.3 Distributed Computing.
2. Programming Issues.
2.1 Performance.
2.2 Fault Tolerance.
2.3 Arithmetic Heterogeneity.
PART II PERFORMANCE MODELS OF HETEROGENEOUS PLATFORMS AND DESIGN OF HETEROGENEOUS ALGORITHMS.
3. Distribution of Computations with Constant Performance Models of Heterogeneous Processors.
3.1 Simplest Constant Performance Model of Heterogeneous Processors and Optimal Distribution of Independent Units of Computation with This Model.
3.2 Data Distribution Problems with Constant Performance Models of Heterogeneous Processors.
3.3 Partitioning Well-Ordered Sets with Constant Performance Models of Heterogeneous Processors.
3.4 Partitioning Matrices with Constant Performance Models of Heterogeneous Processors.
4. Distribution of Computations with Nonconstant Performance Models of Heterogeneous Processors.
4.1 Functional Performance Model of Heterogeneous Processors.
4.2 Data Partitioning with the Functional Performance Model of Heterogeneous Processors.
4.3 Other Nonconstant Performance Models of Heterogeneous Processors.
4.3.1 Stepwise Functional Model.
4.3.2 Functional Model with Limits on Task Size.
4.3.3 Band Model.
5. Communication Performance Models for High-Performance Heterogeneous Platforms.
5.1 Modeling the Communication Performance for Scientific Computing: The Scope of Interest.
5.2 Communication Models for Parallel Computing on Heterogeneous Clusters.
5.3 Communication Performance Models for Local and Global Networks of Computers.
6. Performance Analysis of Heterogeneous Algorithms.
6.1 Efficiency Analysis of Heterogeneous Algorithms.
6.2 Scalability Analysis of Heterogeneous Algorithms.
PART III PERFORMANCE: IMPLEMENTATION AND SOFTWARE.
7. Implementation Issues.
7.1 Portable Implementation of Heterogeneous Algorithms and Self-Adaptable Applications.
7.2 Performance Models of Heterogeneous Platforms: Estimation of Parameters.
7.2.1 Estimation of Constant Performance Models of Heterogeneous Processors.
7.2.2 Estimation of Functional and Band Performance Models of Heterogeneous Processors.
7.2.3 Benchmarking of Communication Operations.
7.3 Performance Models of Heterogeneous Algorithms and Their Use in Applications and Programming Systems.
7.4 Implementation of Homogeneous Algorithms for Heterogeneous Platforms.
8. Programming Systems for High-Performance Heterogeneous Computing.
8.1 Parallel Programming Systems for Heterogeneous Platforms.
8.2 Traditional Parallel Programming Systems.
8.2.1 Message-Passing Programming Systems.
8.2.2 Linda.
8.2.3 HPF.
8.3 Heterogeneous Parallel Programming Systems.
8.4 Distributed Programming Systems.
8.4.1 NetSolve.
8.4.2 Nimrod.
8.4.3 Java.
8.4.4 GridRPC.
PART IV APPLICATIONS.
9. Numerical Linear Algebra Software for Heterogeneous Clusters.
9.1 HeteroPBLAS: Introduction and User Interface.
9.2 HeteroPBLAS: Software Design.
9.3 Experiments with HeteroPBLAS.
10. Parallel Processing of Remotely Sensed Hyperspectral Images on Heterogeneous