LEADER 02667 am 22003493u 450 001 9910306634203321 005 20220422120219.0 010 $a0-262-03629-0 035 $a(CKB)4100000007522825 035 $a(OAPEN)1004044 035 $a(EXLCZ)994100000007522825 100 $a20190120d|||| uy 101 0 $aeng 135 $auuuuu---auuuu 200 10$aScientific Programming and Computer Architecture 210 $aCambridge$cThe MIT Press$d2017 215 $a1 online resource (624) 311 $a0-262-34047-X 330 $aA variety of programming models relevant to scientists explained, with an emphasis on how programming constructs map to parts of the computer.What makes computer programs fast or slow? To answer this question, we have to get behind the abstractions of programming languages and look at how a computer really works. This book examines and explains a variety of scientific programming models (programming models relevant to scientists) with an emphasis on how programming constructs map to different parts of the computer's architecture. Two themes emerge: program speed and program modularity. Throughout this book, the premise is to "get under the hood," and the discussion is tied to specific programs. The book digs into linkers, compilers, operating systems, and computer architecture to understand how the different parts of the computer interact with programs. It begins with a review of C/C++ and explanations of how libraries, linkers, and Makefiles work. Programming models covered include Pthreads, OpenMP, MPI, TCP/IP, and CUDA.The emphasis on how computers work leads the reader into computer architecture and occasionally into the operating system kernel. The operating system studied is Linux, the preferred platform for scientific computing. Linux is also open source, which allows users to peer into its inner workings. A brief appendix provides a useful table of machines used to time programs. The book's website (https://github.com/divakarvi/bk-spca) has all the programs described in the book as well as a link to the html text. 517 $aScientific and Engineering Computation 606 $aMobile & handheld device programming / Apps programming$2bicssc 606 $aComputer science$2bicssc 606 $aInformation architecture$2bicssc 615 7$aMobile & handheld device programming / Apps programming 615 7$aComputer science 615 7$aInformation architecture 676 $a005.1 700 $aViswanath$b Divakar$4aut$0930373 906 $aBOOK 912 $a9910306634203321 996 $aScientific Programming and Computer Architecture$92092763 997 $aUNINA