Scientific Programming and Computer Architecture

by Viswanath

ISBN: 9780262364331 | Copyright 2017

Click here to preview

Instructor Requests

Digital Exam/Desk Copy Print Desk Copy Ancillaries
Tabs
Expand/Collapse All
Contents (pg. vii)
Preface (pg. xiii)
Chapter 1: C/C++: Review (pg. 1)
1.1 An example: The Aitken transformation (pg. 3)
1.2 C review (pg. 9)
1.3 C++ review (pg. 27)
1.4 A little Fortran (pg. 52)
1.5 References (pg. 55)
Chapter 2: C/C++: Libraries and Makefiles (pg. 57)
2.1 Mixed-language programming (pg. 59)
2.2 Using BLAS and LAPACK libraries (pg. 69)
2.3 Building programs using GNU Make (pg. 81)
2.4 The Fast Fourier Transform (pg. 113)
2.5 References (pg. 130)
Chapter 3: The Processor (pg. 133)
3.1 Overview of the x86 architecture (pg. 139)
3.2 Compiler optimizations (pg. 156)
3.3 Optimizing for the instruction pipeline (pg. 186)
3.4 References (pg. 219)
Chapter 4: Memory (pg. 221)
4.1 DRAM and cache memory (pg. 224)
4.2 Optimizing memory access (pg. 246)
4.3 Reading from and writing to disk (pg. 266)
4.4 Page tables and virtual memory (pg. 274)
4.5 References (pg. 284)
Chapter 5: Threads and Shared Memory (pg. 287)
5.1 Introduction to OpenMP (pg. 290)
5.2 Optimizing OpenMP programs (pg. 304)
5.3 Introduction to Pthreads (pg. 316)
5.4 Program memory (pg. 348)
5.5 References (pg. 367)
Chapter 6: Special Topic: Networks and Message Passing (pg. 369)
6.1 MPI: Getting started (pg. 371)
6.2 High-performance network architecture (pg. 380)
6.3 MPI examples (pg. 399)
6.4 The Internet (pg. 472)
6.5 References (pg. 495)
Chapter 7: Special Topic: The Xeon Phi Coprocessor (pg. 497)
7.1 Xeon Phi architecture (pg. 501)
7.2 Offload (pg. 508)
7.3 Two examples: FFT and matrix multiplication (pg. 524)
Chapter 8: Special Topic: Graphics Coprocessor Programming Using CUDA (pg. 535)
8.1 Graphics coprocessor architecture (pg. 538)
8.2 Introduction to CUDA (pg. 551)
8.3 Two examples (pg. 566)
8.4 References (pg. 576)
Appendix A: Machines Used, Plotting, Python, GIT, Cscope, and gcc (pg. 577)
A.1 Machines used (pg. 578)
A.2 Plotting in C/C++ and other preliminaries (pg. 578)
A.3 C/C++ versus Python versus MATLAB (pg. 582)
A.4 GIT (pg. 584)
A.5 Cscope (pg. 585)
A.6 Compiling with gcc/g++ (pg. 586)
Index (pg. 587)

Divakar Viswanath

Divakar Viswanath is Professor of Mathematics at the University of Michigan.


eTextbook
Go paperless today! Available online anytime, nothing to download or install.

Features

  • Highlighting
  • Bookmarking
  • Note-taking