TAILIEUCHUNG - Parallel Programming: for Multicore and Cluster Systems- P2

Parallel Programming: for Multicore and Cluster Systems- P2: Innovations in hardware architecture, like hyper-threading or multicore processors, mean that parallel computing resources are available for inexpensive desktop computers. In only a few years, many standard software products will be based on concepts of parallel programming implemented on such hardware, and the range of applications will be much broader than that of scientific computing, up to now the main application area for parallel computing | x Contents Thread Scheduling in Package Compiler Execution Environment Coordination and Synchronization of Threads .349 Exercises for Chap. 7 Algorithms for Systems of Linear Equations .359 Gaussian Elimination .360 Gaussian Elimination and LU Parallel Row-Cyclic Parallel Implementation with Checkerboard Distribution . 367 Analysis of the Parallel Execution Time .373 Direct Methods for Linear Systems with Banded Discretization of the Poisson Tridiagonal Generalization to Banded Solving the Discretized Poisson Iterative Methods for Linear Standard Iteration Parallel Implementation of the Jacobi Parallel Implementation of the Gauss-Seidel Gauss-Seidel Iteration for Sparse Red-Black Conjugate Gradient Sequential CG Parallel CG Cholesky Factorization for Sparse Sequential Storage Scheme for Sparse Matrices .430 Implementation for Shared Exercises for Chap. Chapter 1 Introduction In this short introduction we give an overview of the use of parallelism and try to explain why parallel programming will be used for software development in the future. We also give an overview of the rest of the book and show how it can be used for courses with various foci. Classical Use of Parallelism Parallel programming and the design of efficient parallel programs have been well established in high-performance scientific computing for many years. The simulation of scientific problems is an important area in natural and engineering sciences of growing .