Description |
1 online resource (xxi, 598 pages) : illustrations. |
Series |
Scientific and engineering computation |
|
Scientific and engineering computation.
|
Bibliography |
Includes bibliographical references and index. |
Contents |
Preface -- C/C++: Review -- C/C++: Libraries and Makefiles -- The Processor -- Memory -- Threads and Shared Memory -- Special Topic: Networks and Message Passing -- Special Topic: The Xeon Phi Coprocessor -- Special Topic: Graphics Coprocessor Programming Using CUDA -- Machines Used, Plotting, Python, GIT, Cscope, and gcc. |
Summary |
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. -- Provided by publisher. |
Note |
Print version record. |
Local Note |
MIT Press DTL OA MIT Titles |
Subject |
Computer programming.
|
|
Computer architecture.
|
|
Software engineering.
|
|
C (Computer program language)
|
|
Mobile & handheld device programming / Apps programming.
|
|
Computer science.
|
|
Information architecture.
|
|
COMPUTERS -- Computer Architecture.
|
|
C (Computer program language) (OCoLC)fst00843279
|
|
Computer architecture. (OCoLC)fst00872026
|
|
Computer programming. (OCoLC)fst00872390
|
|
Software engineering. (OCoLC)fst01124185
|
|
Wissenschaftliches Rechnen.
|
|
Computerarchitektur.
|
|
C Programmiersprache.
|
|
Software Engineering.
|
Genre/Form |
Electronic books.
|
Other Form: |
Print version: Viswanath, Divakar. Scientific programming and computer architecture. Cambridge, Massachusetts : The MIT Press, [2017] 0262036290 9780262036290 (DLC) 2016043792 (OCoLC)967774923 |
ISBN |
9780262036290 (hardcover ; alkaline paper) |
|
0262036290 (hardcover ; alkaline paper) |
|