{"product_id":"parallel-scientific-computing-hardback-9781848215818","title":"Parallel Scientific Computing (Hardback) 9781848215818","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eParallel Scientific Computing\u003c\/font\u003e\u003cbr\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003c\/p\u003e\n\u003cp\u003e\u003cfont size=\"4\"\u003eFrédéric Magoules (Author), François-Xavier Roux (Author), Guillaume Houzeaux (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781848215818, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eHardback, published 15 December 2015\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e384 pages\u003cbr\u003e24.1 x 16.5 x 2.5 cm, 0.694 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003e\u003cp\u003e\u003ci\u003e\u003cb\u003eParallel Scientific Computing\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003eScientific computing has become an indispensable tool in numerous fields, such as physics, mechanics, biology, finance and industry. For example, it enables us, thanks to efficient algorithms adapted to current computers, to simulate, without the help of models or experimentations, the deflection of beams in bending, the sound level in a theater room or a fluid flowing around an aircraft wing.\u003c\/p\u003e \u003cp\u003eThis book presents the scientific computing techniques applied to parallel computing for the numerical simulation of large-scale problems; these problems result from systems modeled by partial differential equations. Computing concepts will be tackled via examples.\u003c\/p\u003e \u003cp\u003eImplementation and programming techniques resulting from the finite element method will be presented for direct solvers, iterative solvers and domain decomposition methods, along with an introduction to MPI and OpenMP.\u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003ePreface xi\u003c\/p\u003e \u003cp\u003eIntroduction xv\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1. Computer Architectures \u003c\/b\u003e\u003cb\u003e1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1. Different types of parallelism 1\u003c\/p\u003e \u003cp\u003e1.1.1. Overlap, concurrency and parallelism 1\u003c\/p\u003e \u003cp\u003e1.1.2. Temporal and spatial parallelism for arithmetic logic units 4\u003c\/p\u003e \u003cp\u003e1.1.3. Parallelism and memory 6\u003c\/p\u003e \u003cp\u003e1.2. Memory architecture 7\u003c\/p\u003e \u003cp\u003e1.2.1. Interleaved multi-bank memory 7\u003c\/p\u003e \u003cp\u003e1.2.2. Memory hierarchy 8\u003c\/p\u003e \u003cp\u003e1.2.3. Distributed memory 13\u003c\/p\u003e \u003cp\u003e1.3. Hybrid architecture 14\u003c\/p\u003e \u003cp\u003e1.3.1. Graphics-type accelerators 14\u003c\/p\u003e \u003cp\u003e1.3.2. Hybrid computers 16\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2. Parallelization and Programming Models \u003c\/b\u003e\u003cb\u003e17\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1. Parallelization 17\u003c\/p\u003e \u003cp\u003e2.2. Performance criteria 19\u003c\/p\u003e \u003cp\u003e2.2.1. Degree of parallelism 19\u003c\/p\u003e \u003cp\u003e2.2.2. Load balancing 21\u003c\/p\u003e \u003cp\u003e2.2.3. Granularity 21\u003c\/p\u003e \u003cp\u003e2.2.4. Scalability 22\u003c\/p\u003e \u003cp\u003e2.3. Data parallelism 25\u003c\/p\u003e \u003cp\u003e2.3.1. Loop tasks 25\u003c\/p\u003e \u003cp\u003e2.3.2. Dependencies 26\u003c\/p\u003e \u003cp\u003e2.3.3. Examples of dependence 27\u003c\/p\u003e \u003cp\u003e2.3.4. Reduction operations 30\u003c\/p\u003e \u003cp\u003e2.3.5. Nested loops 31\u003c\/p\u003e \u003cp\u003e2.3.6. OpenMP 34\u003c\/p\u003e \u003cp\u003e2.4. Vectorization: a case study 37\u003c\/p\u003e \u003cp\u003e2.4.1. Vector computers and vectorization 37\u003c\/p\u003e \u003cp\u003e2.4.2. Dependence 38\u003c\/p\u003e \u003cp\u003e2.4.3. Reduction operations 39\u003c\/p\u003e \u003cp\u003e2.4.4. Pipeline operations 41\u003c\/p\u003e \u003cp\u003e2.5. Message-passing 43\u003c\/p\u003e \u003cp\u003e2.5.1. Message-passing programming 43\u003c\/p\u003e \u003cp\u003e2.5.2. Parallel environment management 44\u003c\/p\u003e \u003cp\u003e2.5.3. Point-to-point communications 45\u003c\/p\u003e \u003cp\u003e2.5.4. Collective communications 46\u003c\/p\u003e \u003cp\u003e2.6. Performance analysis 49\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3. Parallel Algorithm Concepts \u003c\/b\u003e\u003cb\u003e53\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1. Parallel algorithms for recurrences 54\u003c\/p\u003e \u003cp\u003e3.1.1. The principles of reduction methods 54\u003c\/p\u003e \u003cp\u003e3.1.2. Overhead and stability of reduction methods 55\u003c\/p\u003e \u003cp\u003e3.1.3. Cyclic reduction 57\u003c\/p\u003e \u003cp\u003e3.2. Data locality and distribution: product of matrices 58\u003c\/p\u003e \u003cp\u003e3.2.1. Row and column algorithms 58\u003c\/p\u003e \u003cp\u003e3.2.2. Block algorithms 60\u003c\/p\u003e \u003cp\u003e3.2.3. Distributed algorithms 64\u003c\/p\u003e \u003cp\u003e3.2.4. Implementation 66\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4. Basics of Numerical Matrix Analysis \u003c\/b\u003e\u003cb\u003e71\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1. Review of basic notions of linear algebra 71\u003c\/p\u003e \u003cp\u003e4.1.1. Vector spaces, scalar products and orthogonal projection 71\u003c\/p\u003e \u003cp\u003e4.1.2. Linear applications and matrices 74\u003c\/p\u003e \u003cp\u003e4.2. Properties of matrices 79\u003c\/p\u003e \u003cp\u003e4.2.1. Matrices, eigenvalues and eigenvectors 79\u003c\/p\u003e \u003cp\u003e4.2.2. Norms of a matrix 80\u003c\/p\u003e \u003cp\u003e4.2.3. Basis change 83\u003c\/p\u003e \u003cp\u003e4.2.4. Conditioning of a matrix 85\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5. Sparse Matrices \u003c\/b\u003e\u003cb\u003e93\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1. Origins of sparse matrices 93\u003c\/p\u003e \u003cp\u003e5.2. Parallel formation of sparse matrices: shared memory 98\u003c\/p\u003e \u003cp\u003e5.3. Parallel formation by block of sparse matrices: distributed memory 99\u003c\/p\u003e \u003cp\u003e5.3.1. Parallelization by sets of vertices 99\u003c\/p\u003e \u003cp\u003e5.3.2. Parallelization by sets of elements 101\u003c\/p\u003e \u003cp\u003e5.3.3. Comparison: sets of vertices and elements 101\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6. Solving Linear Systems \u003c\/b\u003e\u003cb\u003e105\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1. Direct methods 105\u003c\/p\u003e \u003cp\u003e6.2. Iterative methods 106\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7. LU Methods for Solving Linear Systems \u003c\/b\u003e\u003cb\u003e109\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1. Principle of LU decomposition 109\u003c\/p\u003e \u003cp\u003e7.2. Gauss factorization 113\u003c\/p\u003e \u003cp\u003e7.3. Gauss–Jordan factorization 115\u003c\/p\u003e \u003cp\u003e7.3.1. Row pivoting 118\u003c\/p\u003e \u003cp\u003e7.4. Crout and Cholesky factorizations for symmetric matrices 121\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8. Parallelization of LU Methods for Dense Matrices \u003c\/b\u003e\u003cb\u003e125\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1. Block factorization 125\u003c\/p\u003e \u003cp\u003e8.2. Implementation of block factorization in a message-passing environment 130\u003c\/p\u003e \u003cp\u003e8.3. Parallelization of forward and backward substitutions 135\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9. LU Methods for Sparse Matrices \u003c\/b\u003e\u003cb\u003e139\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1. Structure of factorized matrices 139\u003c\/p\u003e \u003cp\u003e9.2. Symbolic factorization and renumbering 142\u003c\/p\u003e \u003cp\u003e9.3. Elimination trees 147\u003c\/p\u003e \u003cp\u003e9.4. Elimination trees and dependencies 152\u003c\/p\u003e \u003cp\u003e9.5. Nested dissections 153\u003c\/p\u003e \u003cp\u003e9.6. Forward and backward substitutions 159\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10. Basics of Krylov Subspaces \u003c\/b\u003e\u003cb\u003e161\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1. Krylov subspaces 161\u003c\/p\u003e \u003cp\u003e10.2. Construction of the Arnoldi basis 164\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11. Methods with Complete Orthogonalization for Symmetric Positive Definite Matrices \u003c\/b\u003e\u003cb\u003e167\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1. Construction of the Lanczos basis for symmetric matrices 167\u003c\/p\u003e \u003cp\u003e11.2. The Lanczos method 168\u003c\/p\u003e \u003cp\u003e11.3. The conjugate gradient method 173\u003c\/p\u003e \u003cp\u003e11.4. Comparison with the gradient method 177\u003c\/p\u003e \u003cp\u003e11.5. Principle of preconditioning for symmetric positive definite matrices 180\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12. Exact Orthogonalization Methods for Arbitrary Matrices \u003c\/b\u003e\u003cb\u003e185\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1. The GMRES method 185\u003c\/p\u003e \u003cp\u003e12.2. The case of symmetric matrices: the MINRES method 193\u003c\/p\u003e \u003cp\u003e12.3. The ORTHODIR method 196\u003c\/p\u003e \u003cp\u003e12.4. Principle of preconditioning for non-symmetric matrices 198\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13. Biorthogonalization Methods for Non-symmetric Matrices \u003c\/b\u003e\u003cb\u003e201\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1. Lanczos biorthogonal basis for non-symmetric matrices 201\u003c\/p\u003e \u003cp\u003e13.2. The non-symmetric Lanczos method 206\u003c\/p\u003e \u003cp\u003e13.3. The biconjugate gradient method: BiCG 207\u003c\/p\u003e \u003cp\u003e13.4. The quasi-minimal residual method: QMR 211\u003c\/p\u003e \u003cp\u003e13.5. The BiCGSTAB 217\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14. Parallelization of Krylov Methods \u003c\/b\u003e\u003cb\u003e225\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1. Parallelization of dense matrix-vector product 225\u003c\/p\u003e \u003cp\u003e14.2. Parallelization of sparse matrix-vector product based on node sets 227\u003c\/p\u003e \u003cp\u003e14.3. Parallelization of sparse matrix-vector product based on element sets 229\u003c\/p\u003e \u003cp\u003e14.3.1. Review of the principles of domain decomposition 229\u003c\/p\u003e \u003cp\u003e14.3.2. Matrix-vector product 231\u003c\/p\u003e \u003cp\u003e14.3.3. Interface exchanges 233\u003c\/p\u003e \u003cp\u003e14.3.4. Asynchronous matrix-vector product with non-blocking communications 236\u003c\/p\u003e \u003cp\u003e14.3.5. Comparison: parallelization based on node and element sets 236\u003c\/p\u003e \u003cp\u003e14.4. Parallelization of the scalar product 238\u003c\/p\u003e \u003cp\u003e14.4.1. By weight 239\u003c\/p\u003e \u003cp\u003e14.4.2. By distributivity 239\u003c\/p\u003e \u003cp\u003e14.4.3. By ownership 240\u003c\/p\u003e \u003cp\u003e14.5. Summary of the parallelization of Krylov methods 241\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15. Parallel Preconditioning Methods \u003c\/b\u003e\u003cb\u003e243\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1. Diagonal 243\u003c\/p\u003e \u003cp\u003e15.2. Incomplete factorization methods 245\u003c\/p\u003e \u003cp\u003e15.2.1. Principle 245\u003c\/p\u003e \u003cp\u003e15.2.2. Parallelization 248\u003c\/p\u003e \u003cp\u003e15.3. Schur complement method 250\u003c\/p\u003e \u003cp\u003e15.3.1. Optimal local preconditioning 250\u003c\/p\u003e \u003cp\u003e15.3.2. Principle of the Schur complement method 251\u003c\/p\u003e \u003cp\u003e15.3.3. Properties of the Schur complement method 254\u003c\/p\u003e \u003cp\u003e15.4. Algebraic multigrid 257\u003c\/p\u003e \u003cp\u003e15.4.1. Preconditioning using projection 257\u003c\/p\u003e \u003cp\u003e15.4.2. Algebraic construction of a coarse grid 258\u003c\/p\u003e \u003cp\u003e15.4.3. Algebraic multigrid methods 261\u003c\/p\u003e \u003cp\u003e15.5. The Schwarz additive method of preconditioning 263\u003c\/p\u003e \u003cp\u003e15.5.1. Principle of the overlap 263\u003c\/p\u003e \u003cp\u003e15.5.2. Multiplicative versus additive Schwarz methods 265\u003c\/p\u003e \u003cp\u003e15.5.3. Additive Schwarz preconditioning 268\u003c\/p\u003e \u003cp\u003e15.5.4. Restricted additive Schwarz: parallel implementation 269\u003c\/p\u003e \u003cp\u003e15.6. Preconditioners based on the physics 275\u003c\/p\u003e \u003cp\u003e15.6.1. Gauss–Seidel method 275\u003c\/p\u003e \u003cp\u003e15.6.2. Linelet method 276\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendices \u003c\/b\u003e\u003cb\u003e279\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAppendix 1 281\u003c\/p\u003e \u003cp\u003eAppendix 2 301\u003c\/p\u003e \u003cp\u003eAppendix 3 323\u003c\/p\u003e \u003cp\u003eBibliography 339\u003c\/p\u003e \u003cp\u003eIndex 343\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Electronics \u0026amp; communications engineering [\u003ca title=\"See our other books on Electronics \u0026amp; communications engineering\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Electronics%20\u0026amp;%20communications%20engineering%20%5BTJ%5D%22\"\u003eTJ\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wiley-ISTE","offers":[{"title":"Brand New","offer_id":52449380991256,"sku":"9781848215818","price":100.57,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781848215818.jpg?v=1785197377","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/parallel-scientific-computing-hardback-9781848215818","provider":"Freshly Printed Books","version":"1.0","type":"link"}