幫助中心 | 我的帳號 | 關於我們

並行程序設計(電腦科學與技術面向新工科專業建設電腦系列教材)

  • 作者:編者:劉軼//楊海龍|責編:白立軍|總主編:張堯學
  • 出版社:清華大學
  • ISBN:9787302660965
  • 出版日期:2024/05/01
  • 裝幀:平裝
  • 頁數:317
人民幣:RMB 69 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是針對「並行程序設計」「並行計算」等課程編寫的教材,內容包括並行計算基礎知識、共享內存系統的OpenMP和Pthreads多線程編程、消息傳遞系統的MPI編程、Slurm作業管理系統、GPU等異構系統的CUDA/OpenCL/OpenACC/Athread編程、常用的並行設計與性能優化方法、典型並行應用演算法等,另外,還特別增加了針對我國自主研發的申威處理器編程的相關內容。本書涵蓋並行程序設計最常用的編程語言/介面、設計與性能優化方法、基礎應用演算法等內容,一方面反映了OpenMP、MPI等成熟編程語言介面的新特性,以及GPU異構編程等新型編程介面;另一方面在典型並行應用演算法部分嘗試用電腦專業人員易於理解的方式介紹典型演算法,特別是以線性方程組迭代求解方法中的共軛梯度法為例。本書每章都設置了以編程為主的習題,鼓勵讀者通過編寫程序掌握相關方法。
    本書適合作為電腦和信息類專業高年級本科生和研究生的教材,也可供高性能計算和並行計算領域的科研人員參考。

作者介紹
編者:劉軼//楊海龍|責編:白立軍|總主編:張堯學

目錄
第1章  並行程序設計概述
  1.1  並行性概述
  1.2  如何衡量計算速度
  1.3  並行計算系統基本知識
    1.3.1  弗林分類
    1.3.2  共享內存系統與消息傳遞系統
    1.3.3  幾種常見的並行計算系統
    1.3.4  互連網路
    1.3.5  多級存儲體系結構
  1.4  並行編程語言/介面分類
  1.5  浮點數格式
  1.6  例子程序
    1.6.1  矩陣相乘
    1.6.2  規約和掃描
  1.7  小結
  習題
第2章  共享內存系統並行編程
  2.1  共享內存系統中的並行模型
    2.1.1  多線程並行概述
    2.1.2  同步與互斥的概念
  2.2  OpenMP編程
    2.2.1  概述
    2.2.2  OpenMP的基本命令
    2.2.3  共享工作構造及其組合
    2.2.4  線程問同步與互斥
    2.2.5  常用子句
    2.2.6  OpenMP示常式序:級數法計算圓周率
    2.2.7  task工作構造
  2.3  Pthreads編程
    2.3.1  Pthreads簡介
    2.3.2  線程的創建和終止
    2.3.3  線程互斥
    2.3.4  Pthreads示常式序:級數法計算圓周率
    2.3.5  線程同步
    2.3.6  Pthreads示常式序:生產者-消費者
    2.3.7  線程死鎖與鎖粒度
  2.4  .面向多核系統的新型編程語言/介面
    2.4.1  Cilk與Cilk++
    2.4.2  TBB
  2.5  小結
  習題
第3章  消息傳遞系統並行編程
  3.1  MPI簡介
    3.1.1  MPI是什麼?
    3.1.2  MPI的並行模式
    3.1.3  一個簡單的MPI程序
    3.1.4  MPI基本環境
    3.1.5  通信子、進程組、進程號
    3.1.6  MPI數據類型
    3.1.7  MPI通信簡介

  3.2  點對點通信
    3.2.1  標準通信模式
    3.2.2  緩存通信模式
    3.2.3  同步通信模式
    3.2.4  就緒通信模式
    3.2.5  四種通信模式小結
    3.2.6  組合發送接收
    3.2.7  非阻塞通信
  3.3  集合通信
    3.3.1  集合通信概述
    3.3.2  數據廣播MPI_Bcast
    3.3.3  數據分發MPI_Scatter
    3.3.4  數據收集MPI_Gather
    3.3.5  組收集MPI_Allgather
    3.3.6  全互換MPI_Alltoall
    3.3.7  規約MPI_Reduce
    3.3.8  組規約MPI_Allreduce
    3.3.9  掃描MPI_Scan
    3.3.10  柵欄MPI_Barrier
  3.4  一個MPI示常式序
    3.4.1  數值積分的計算
    3.4.2  基於數值積分的圓周率計算程序
    3.4.3  MPI牆鍾時間
  3.5  進程組和通信子
    3.5.1  組管理
    3.5.2  通信子管理
    3.5.3  組間通信子
  3.6  MPI與多線程
    3.6.1  如何在MPI程序中使用多線程
    3.6.2  MPI+OpenMP示常式序
    3.6.3  分析和討論
  3.7  進程拓撲
    3.7.1  進程拓撲簡介
    3.7.2  創建進程拓撲
    3.7.3  進程拓撲相關的通信函數
  3.8  PGAS編程及語言
  3.9  作業管理系統及使用
    3.9.1  作業管理系統簡介
    3.9.2  Slurm簡介
    3.9.3  在Slurm中以作業方式執行程序
    3.9.4  Slurm的作業腳本
    3.9.5  在Slurm中以其他方式執行程序
    3.9.6  Slmm常用命令
  3.10  小結
  習題
第4章  異構系統並行編程
  4.1  異構系統編程概述
  4.2  面向NVIDIA GPU的CUDA編程
    4.2.1  CUDA概述
    4.2.2  Hello World程序:CUDA程序的基本形態

    4.2.3  兩個整數相加程序:CPU-GPU數據交換
    4.2.4  向量求和程序:CUDA多線程
    4.2.5  CUDA線程組織
    4.2.6  CUDA內存層次與變數修飾符
    4.2.7  函數修飾符
    4.2.8  CUDA流
    4.2.9  性能優化
    4.2.10  CUDA統一內存空間
    4.2.11  使用多GPU
  4.3  OpenCL編程
    4.3.1  OpenCL概述
    4.3.2  OpenCL程序的執行流程及相關API
    4.3.3  OpenCL示常式序一:向量求和
    4.3.4  OpenCL的執行模型與線程組織
    4.3.5  OpenCL的內存層次結構
    4.3.6  OpenCL示常式序二:矩陣相乘
  4.4  面向申威處理器的Athread編程
    4.4.1  申威處理器及其編程簡介
    4.4.2  Hello World程序:Athread程序的基本形態
    4.4.3  Athread變數的局部存儲空間屬性
    4.4.4  Athread主一從核編程介面
    4.4.5  Athread寄存器通信
    4.4.6  Athread版的Cannon並行矩陣相乘
  4.5  OpenACC編程
    4.5.1  OpenACC概述
    4.5.2  OpenACC語法
    4.5.3  OpenACC循環並行性
    4.5.4  基於申威處理器的OpenACC編程
  4.6  小結
  習題
第5章  並行程序性能優化
  5.1  Amdahl定律
  5.2  影響性能的主要因素
    5.2.1  並行開銷
    5.2.2  負載均衡
    5.2.3  並行粒度
    5.2.4  並行劃分
    5.2.5  依賴關係
    5.2.6  局部性
  5.3  並行程序的可擴展性及性能優化方法
    5.3.1  什麼是並行程序的可擴展性?
    5.3.2  確保並行程序可擴展性的重要原則:獨立計算塊
    5.3.3  數據劃分對性能和可擴展性的影響
    5.3.4  其他常用性能優化方法
  5.4  PCAM並行設計方法
    5.4.1  劃分
    5.4.2  通信
    5.4.3  組合
    5.4.4  映射
  5.5  小結

  習題
第6章  典型並行應用演算法
  6.1  矩陣相乘
    6.1.1  基於分塊的並行矩陣相乘
    6.1.2  改進的分塊矩陣相乘——Cannon演算法
    6.1.3  支持矩陣相乘的專用硬體——脈動陣列
  6.2  線性方程組的直接求解
    6.2.1  線性方程組及其求解方法簡介
    6.2.2  三角方程組的回代求解
    6.2.3  高斯消去法
    6.2.4  LU分解演算法
    6.2.5  並行LU分解:逐行交錯條帶劃分和塊-循環分配
  6.3  線性方程組的迭代求解
    6.3.1  經典迭代求解方法
    6.3.2  共軛梯度求解方法
    6.3.3  迭代法求解示例:偏微分方程求解
    6.3.4  幾種迭代法的並行性討論
    6.3.5  稀疏矩陣的壓縮數據格式
  6.4  快速排序
  6.5  快速傅里葉變換
    6.5.1  演算法背景
    6.5.2  演算法原理
    6.5.3  遞歸演算法轉換為迭代演算法
    6.5.4  並行演算法
  6.6  基礎線性代數庫和軟體包
    6.6.1  線性代數演算法庫BLAS
    6.6.2  線性代數軟體包LAPACK
  6.7  小結
  習題
附錄A  英文縮寫詞
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032