實戰Matlab之並行程式設計
Matlab環境1.2.1 Matlab函式1.3.4 Matlab並行構架7.2.1
內容介紹
《實戰Matlab之並行程式設計》通過閱讀和學習,讀者可以掌握基於多種平台(多核、多處理器、集群和GPU等),利用多項技術(Matlab並行計算工具箱、多執行緒MEX檔案、OpenMP和GPU等),學習理解Matlab並行程式設計的原理、方法和技巧。《實戰Matlab之並行程式設計》共分l0章:第1章為Matlab開發環境和程式設計基礎;第2章為利用parfor對for循環進行並行;第3章為SPMD並行結構;第4章為其他Matlab並行結構;第5章為Matlab並行計算數據類型;第6章為Matlab通用並行程式設計;第7章為MDCE配置;第8章為創建多執行緒MEX檔案;第9章為在Matlab中套用OpenMP進行並行計算;第10章為利用GPU並行執行Matlab程式。書中附錄共包括三個部分,即MEX檔案基礎知識、用戶配置項和Matlab並行計算常用概念說明。書中所有的原始碼均可在出版社網站的下載中心和Matlab中文論壇(www.iLoveMatlab.cn)中下載。除特別說明之外,其開發和編譯環境均為Matlab2010與Visual C2010。作品目錄
第1章 Matlab開發環境和程式設計基礎1.1 本章導讀1.2 Matlab環境1.2.1 命令行視窗1.2.2 代碼編輯器1.2.3 工作空間視窗1.2.4 歷史命令視窗1.2.5 利用Matlab環境的界面操作1.2.6 Matlab幫助1.2.7 代碼輸入提示1.3 Matlab語言基礎1.3.1 Matlab腳本檔案1.3.2 Matlab運算符與表達式1.3.3 Matlab函式1.3.4 Matlab的向量運算1.3.5 Matlab的程式控制1.3.6 面向對象程式設計1.4 Matlab常用的數據類型1.4.1 數值陣列1.4.2 字元陣列1.4.3 邏輯陣列1.4.4 元組陣列1.4.5 結構體陣列1.4.6 函式句柄陣列1.5 Matlab常用數據顯示函式1.5.1 figure視窗1.5.2 繪製曲線1.5.3 顯示圖像數據1.5.4 顯示三維曲面數據第2章 利用parfor對for循環進行並行2.1 本章導讀2.2 循環和並行2.3 for循環的並行性2.4 parfor關鍵字2.5 Matlab client和worker2.6 利用parfor並行for循環的基本原理2.7 利用parfor並行for循環的基本步驟2.8 配置Matlab並行計算池2.8.1 matlabpool命令2.8.2 matlabpool配置2.9 第一個parfor程式及其與for循環的對比2.10 parfor循環比for循環快多少?2.10.1 不啟動matlabpool,直接執行parfor程式2.10.2 打開matlabpool2.11 parfor和for的不同2.12 數據通信的影響2.12.1 數據通信較大的情況2.12.2 parfor和for的執行時間曲線2.12.3 數據通信影響較小的情況2.13 函式句柄在parfor並行程式分析中的套用2.14 簡約操作2.14.1 簡約操作的基本概念及並行原理2.14.2 簡約操作並行效率分析2.14.3 簡約操作的執行順序2.14.4 簡約操作與簡約變數的特徵2.15 parfor循環中的主要變數類型2.15.1 parfor循環變數概述2.15.2 循環變數2.15.3 分段變數2.15.4 廣播變數2.15.5 臨時變數2.16 parfor程式設計需要考慮的其他問題2.16.1 變數名稱(函式優先)2.16.2 顯式使用變數2.16.3 parfor中使用函式句柄2.16.4 在parfor中調用遞歸函式2.16.5 parfor性能考慮2.16.6 Matlab並行計算池中worker的位置第3章 SPMD並行結構3.1 本章導讀3.2 SPMD3.3 SPMD的使用方法3.4 Matlab client與Matlab lab數據互動3.5 distributed或codistributed數值陣列3.5.1 採用distributed對象創建分散式陣列3.5.2 採用codistributed對象創建分散式陣列3.6 在SPMD中獲取job、task、lab、scheduler信息3.7 利用SPMD並行結構解決計算密集型問題3.8 利用SPMD並行結構解決數據密集型問題第4章 其他Matlab並行結構4.1 本章導讀4.2 for-drange4.2.1 for-drange套用於分散式陣列4.2.2 for-drange套用於非分散式陣列4.3 利用pmode並行執行Matlab程式4.3.1 啟動pmode視窗4.3.2 pmode視窗界面4.3.3 顯示pmode數據4.3.4 在集群中啟動pmode視窗4.3.5 通過pmode命令在各個lab和Matlab client之間傳輸數據4.4 並行執行Matlab函式4.4.1 同步模式4.4.2 異步模式第5章 Matlab並行計算數據類型5.1 本章導讀5.2 Matlab並行計算數據類型5.2.1 同體變數5.2.2 異體變數5.2.3 獨有變數5.2.4 分散式變數5.3 並行計算數據類型的轉換方法5.3.1 將同體變數轉換為其他變數5.3.2 將異體變數轉換為其他變數5.3.3 將獨有變數轉換為其他變數5.3.4 將分散式變數轉換為其他變數5.4 Matlab並行計算數據類型的套用5.4.1 parallel job中套用並行計算數據類型5.4.2 SPMD並行結構中套用並行計算數據類型5.5 Matlab分散式陣列5.5.1 分散式陣列的特點5.5.2 Matlab如何分割分散式陣列?5.5.3 Matlab如何顯示分散式陣列?5.5.4 在Matlab客戶端創建分散式陣列5.5.5 在parallel job或SPMD並行結構中創建分散式陣列5.5.6 codistributed對象操作分散式陣列5.5.7 創建二維分割的Matlab分散式陣列5.5.8 利用codistributor函式構造codistributor對象5.5.9 支持分散式陣列的Matlab函式第6章 Matlab通用並行程式設計6.1 本章導讀6.2 概述6.3 通用Matlab並行計算的基本概念6.4 Matlab並行計算架構6.5 job的狀態及運行周期6.6 開發調試並行程式基本流程6.7 distributed job的操作方法6.7.1 distributed job6.7.2 創建distributed job的方法6.8 parallel job的操作方法6.8.1 parallel job6.8.2 distributed job和parallel job 的區別6.8.3 創建parallel job的方法6.8.4 避免死鎖問題6.9 matlabpool job的操作方法6.10 batch job的操作方法6.11 job manager、worker、job和task對象的屬性6.11.1 job manager對象6.11.2 job對象6.11.3 worker對象6.11.4 task對象6.12 worker對象的操作方法6.12.1啟動worker6.12.2 findResource方法6.12.3操作worker對象的函式6.13 task對象的操作方法6.14 job對象的操作方法6.14.1 利用createTask函式創建task6.14.2 等待任務狀態改變6.15 scheduler對象的操作方法6.15.1 findResource函式6.15.2 利用scheduler對象創建和管理job的方法6.16 parallel job和SPMD結構中lab間數據通信問題6.17 關於路徑問題6.18 利用Callback函式6.19 並行程式調試和分析第7章 MDCS配置7.1 本章導讀7.2 Matlab並行構架7.2.1 Matlab並行計算平台及拓撲結構7.2.2 單集群節點7.2.3 多集群節點7.3 MDCS的配置項7.4 MDCS操作指令及操作方法7.4.1 MDCS的命令及選項7.4.2 mdce命令操作實例7.4.3 nodestatus命令及選項7.4.4 nodestatus命令操作實例7.4.5 remotecopy命令及選項7.4.6 採用remotemdce遠程執行mdce指令7.4.7 startjobmanager7.4.8 停止jobmanager運行7.4.9 startworker7.4.10 stopworker7.5 管理job manager、集群節點和worker的方法7.5.1 利用命令行管理7.5.2 利用管理中心管理第8章 創建多執行緒MEX檔案8.1 本章導讀8.2 利用MEX檔案在Matlab中創建並行套用8.3 多執行緒MEX檔案創建及調試過程第9章 在Matlab中套用OpenMP進行並行計算9.1 本章導讀9.2 OpenMP及其工作原理9.3 OpenMP與Matlab9.4 第一個OpenMP實例9.5 利用OpenMP並行執行for循環9.6 OpenMP並行編譯指令9.6.1 引導parallel並行結構的指令和選項9.6.2 引導work?sharing並行結構的指令和選項第10章 利用GPU並行執行Matlab程式10.1 本章導讀10.2 操作GPU設備10.3 創建GPU數值陣列10.4 操作GPU數據的函式10.5 自定義支持GPU的函式10.6 擴展Matlab對GPU支持的方法10.6.1 直接編寫GPU程式,通過Matlab調用10.6.2 GPU與C語言混合併編譯為MEX附錄A MEX檔案基礎知識A.1設定Matlab C/C++編譯器用於編譯MEX檔案A.2 MEX檔案的功能A.3 MEX檔案與M檔案的關係A.4 MEX檔案實例A.5 MEX檔案結構說明A.6 編譯MEX檔案A.7 採用C++創建MEX檔案附錄B Matlab並行計算配置項B.1 配置項的管理和創建工具B.2 選擇默認的配置項B.3 打開配置項管理工具B.4 創建新的配置項B.5 配置項編輯工具B.6 將配置項保存為檔案B.7 驗證配置選項B.8 操作配置項的命令附錄C Matlab並行計算常用概念說明