Scientific Programming and Computer Architecture (Scientific and Engineering Computation)

Divakar Viswanath

  • 出版商: MIT
  • 出版日期: 2017-07-28
  • 售價: $2,275
  • 貴賓價: 9.8$2,230
  • 語言: 英文
  • 頁數: 624
  • 裝訂: Hardcover
  • ISBN: 0262036290
  • ISBN-13: 9780262036290
  • 相關分類: 程式語言Computer-networks
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

What makes computer programs fast or slow? To answer this question, we have to go 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. Most books on computer programming are written at the same level of abstraction as the programming language they utilize or explain. This book starts from the premise that we have to "get under the hood." The approach begins with with specific programs and moves up to general principles gradually.

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 readers to peer into its inner workings. A brief appendix provides a useful table of machines used to time programs. The website github.com/divakarvi/bk-spca has all the programs described in the book as well as a link to the html text.

商品描述(中文翻譯)

電腦程式的速度快慢取決於什麼?要回答這個問題,我們必須深入了解程式語言的抽象背後,並研究電腦的實際運作方式。本書探討並解釋了各種科學程式設計模型(與科學家相關的程式設計模型),並強調程式設計結構如何映射到電腦架構的不同部分。其中兩個主題是程式速度和程式模組化。大多數關於電腦程式設計的書籍都是以與所使用或解釋的程式語言相同的抽象層次撰寫的。本書從我們必須「深入了解內部機制」的前提出發。這種方法從具體的程式開始,逐漸提升到一般原則。

本書深入探討連結器、編譯器、作業系統和電腦架構,以了解電腦的不同部分如何與程式互動。它從 C/C++ 的回顧開始,並解釋了庫、連結器和 Makefiles 的運作方式。所涵蓋的程式設計模型包括 Pthreads、OpenMP、MPI、TCP/IP 和 CUDA。對電腦運作方式的強調將讀者引入電腦架構,有時也會涉及作業系統核心。所研究的作業系統是 Linux,這是科學計算的首選平台。Linux 也是開源的,讓讀者能夠深入瞭解其內部運作。附錄提供了一個有用的時間程式所使用的機器表格。網站 github.com/divakarvi/bk-spca 上提供了本書中描述的所有程式,以及連結到 HTML 文本的鏈接。