Export citation

Show simple item record

dc.contributor.authorViswanath, Divakar
dc.date.issued2017
dc.date.submitted2019-01-17 23:55
dc.date.submitted2018-12-01 23:55:55
dc.date.submitted2019-01-20 23:47:11
dc.date.submitted2020-04-01T10:58:00Z
dc.identifier1004044
dc.identifierOCN: 1091191898
dc.identifierhttp://library.oapen.org/handle/20.500.12657/26041
dc.description.abstractA 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.
dc.languageEnglish
dc.relation.ispartofseriesScientific and Engineering Computation
dc.rightsopen access
dc.subject.classificationbic Book Industry Communication::U Computing & information technology::UM Computer programming / software development::UMS Mobile & handheld device programming / Apps programming
dc.subject.classificationbic Book Industry Communication::U Computing & information technology::UY Computer science
dc.subject.classificationbic Book Industry Communication::U Computing & information technology::UY Computer science::UYZ Human-computer interaction::UYZM Information architecture
dc.subject.otherC
dc.subject.otherC++
dc.subject.otherprogramming languages
dc.subject.otherprocessor
dc.subject.othermemory
dc.subject.othernetwork
dc.subject.otherhigh performance computing
dc.subject.othercomputer science
dc.subject.otherengineering
dc.subject.othersuper computing
dc.titleScientific Programming and Computer Architecture
dc.typebook
oapen.relation.isPublishedByae0cf962-f685-4933-93d1-916defa5123d
virtual.oapen_relation_isPublishedBy.publisher_nameThe MIT Press
virtual.oapen_relation_isPublishedBy.publisher_websitehttps://mitpress.mit.edu/mit-press-open
oapen.relation.isbn9780262036290
oapen.pages624
oapen.place.publicationCambridge


Files in this item

FilesSizeFormatView

There are no files associated with this item.

This item appears in the following Collection(s)

Show simple item record

open access
Except where otherwise noted, this item's license is described as open access