Scientific Programming and Computer Architecture
by Viswanath
ISBN: 9780262036290 | Copyright 2017
Instructor Requests
| 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
|