High Performance Heterogeneous Computing
This book provides an overview of the ongoing academic research, development, and uses of heterogeneous parallel and distributed computing in the context of scientific computing. Presenting the state of the art in this challenging and rapidly evolving area, the book is organized in five distinct parts:
Heterogeneous Platforms: Taxonomy, Typical Uses, and Programming Issues
Performance Models of Heterogeneous Platforms and Design of¿Heterogeneous Algorithms
Performance: Implementation and Software
High Performance Heterogeneous Computing is a valuable¿reference for researchers and practitioners in the area of high performance heterogeneous computing. It also serves as an excellent supplemental text for graduate and postgraduate courses in related areas.
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.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.3 Heterogeneous Parallel Programming Systems.
8.4 Distributed Programming Systems.
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 Clusters.
10.1 Hyperspectral Imaging: Introduction and Parallel Techniques.
10.2 A Parallel Algorithm for Analysis of Hyperspectral Images and Its Implementation for Heterogeneous Clusters.
10.3 Experiments with the Heterogeneous Hyperspectral Imaging Application.
11. Simulation of the Evolution of Clusters of Galaxies on Heterogeneous Computational Grids.
11.1 Hydropad: A Simulator of Galaxies’ Evolution.
11.2 Enabling Hydropad for Grid Computing.
11.2.1 GridRPC Implementation of the Hydropad.
11.2.2 Experiments with the GridSolve-Enabled Hydropad.
11.3 SmartGridSolve and Hydropad.
11.3.1 SmartGridSolve Implementation of the Hydropad.
11.3.2 Experiments with the SmartGridSolve-Enabled Hydropad.
PART V FUTURE TRENDS.
12. Future Trends in Computing.
12.2 Computational Resources.
12.2.1 Complex and Heterogeneous Parallel Systems.
12.2.2 Intel-ization of the Processor Landscape.
12.2.3 New Architectures on the Horizon.
12.5 Some Important Concepts for the Future.
12.5.1 Heterogeneous Hardware Environments.
12.5.2 Software Architecture.
12.5.3 Open Source.
12.5.4 New Applications.
12.5.5 Verification and Validation.
12.6 2009 and Beyond.
Appendix A Appendix to Chapter 3.
A.1 Proof of Proposition 3.1.
A.2 Proof of Proposition 3.5.
Appendix B Appendix to Chapter 4.
B.1 Proof of Proposition 4.1.
B.2 Proof of Proposition 4.2.
B.3 Proof of Proposition 4.3.
B.4 Functional Optimization Problem with Optimal Solution, Locally Nonoptimal.
Jack J. Dongarra, PhD, is University Distinguished Professor of Computer Science in the Electrical Engineering and Computer Science Department at the University of Tennessee and serves as Distinguished Research Staff in the Computer Science and Mathematics Division at Oak Ridge National Laboratory (ORNL). He is a Turing Fellow in the Computer Science and Mathematics Schools at the University of Manchester and an Adjunct Professor in the Computer Science Department at Rice University. He specializes in numerical algorithms in linear algebra, parallel computing, the use of advanced computer architectures, programming methodology, and tools for parallel computers. His research includes the development, testing, and documentation of high quality mathematical software. He has published approximately 200 articles, papers, reports, or technical memoranda and is the coauthor of several books. He is a member of the IEEE and is the recipient of the IEEE Sid Fernbach Award and the first IEEE Medal of Excellence in Scalable Computing.