(3.238.173.209) 您好!臺灣時間:2021/05/15 16:45
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

: 
twitterline
研究生:張正銘
研究生(外文):Cheng-Ming Chang
論文名稱:一個CCC資料平行程式語言的可重標的編譯器
論文名稱(外文):A retargetable Compiler of CCC Data Parallel Programming Language
指導教授:林迺衛林迺衛引用關係
指導教授(外文):Nai-Wei Lin
學位類別:碩士
校院名稱:國立中正大學
系所名稱:資訊工程研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2001
畢業學年度:89
語文別:中文
論文頁數:179
中文關鍵詞:資料平行計算程式語言編譯器資料平行程式語言
外文關鍵詞:Data ParallelProgramming LanguageCompilerData Parallel Programming Language
相關次數:
  • 被引用被引用:0
  • 點閱點閱:142
  • 評分評分:
  • 下載下載:10
  • 收藏至我的研究室書目清單書目收藏:0
一般而言,撰寫平行程式比撰寫循序程式困難,所以提供一個高階的平行程式語言幫助程式設計師更容易撰寫平行程式是非常重要的,而我們所發展的高階平行程式語言CCC是C的延伸。CCC提供三個主要的性質來支援資料平行程式的平行計算環境,分別是虛擬處理器、同步執行模式、全域命名.依CCC的發展始意而言,我們希望用CCC撰寫平行程式可以比用來發展平行程式的低階訊息傳遞函式庫(如MPI和PVM)更具有生產力,並且能產生比隱性的平行程式語言(如HPF和HPC++)更有效率的程式碼。
CCC所擁有的三種性質讓程式設計師可以不需考慮太多與硬體相關的細節問題。從虛擬計算環境至實際的計算環境的轉換過程是由編譯器來處理,此轉換過程包含兩個主要步驟:虛擬處理器的模擬以及目的碼的生成。其中虛擬處理器的模擬只與實際計算環境中處理器個數的總和有關,是以CCC至CCC的轉換方式來實作。因此我們對虛擬處理器的模擬幾乎完全與底層的硬體細節無關,大部分與底層硬體相關的程式碼是在目的碼產生中編譯的。進一步來說,此編譯結構讓我們的編譯器保有極高的可重標的性。

Programming in parallel is usually much more difficult than programming in serial. Hence, providing a high-level parallel programming language become very crucial. The high-level parallel programming language CCC is a simple extension of C. CCC has three salient features for providing a virtual computing environment to support data parallel programming: virtual processors, synchronous execution, and global name space. In principle, CCC can provide better productivity than low-level communication libraries such as MPI and PVM, and can produce more efficient code than implicit parallel programming languages such HPF and HPC++.
The three salient features of CCC relieve programmers from specifying most of machine-dependent details. The mapping from the virtual computing environment to the physical computing environment is handled by the compiler. This mapping consists of two parts: emulator of virtual processors, and code generation. The emulator from virtual processors depends only on the number of processors in the physical computing environment, and is implemented as a source-to-source transformation. This implementation allows this emulation almost machine-independent. Most machine-dependent codes are in code generation. This organization makes our compiler highly retargetable.

論文目次
英文摘要.......................................................i
中文摘要......................................................ii
誌 謝.....................................................iii
圖例目錄......................................................iv
表格目錄.......................................................v
演算法目錄....................................................vi
第一章 導論....................................................1
第二章 CCC平行程式語言.........................................3
2.1 平行計算的模式.........................................3
2.2 平行計算的定義.........................................4
2.3 平行計算的使用.........................................7
2.4 平行運算子.............................................8
2.5 編譯器的架構...........................................9
第三章 分散式資料結構與處理器之對應...........................11
3.1 分配模型..............................................11
3.2 內建資料分配函數......................................13
3.2.1 區塊分配........................................13
3.2.2 循環分配........................................14
3.2.3 區塊循環分配....................................15
3.2.4 全部分配........................................15
3.2.5 內建分配函數表示式..............................16
3.3 直接分配數............................................17
3.3.1 直接分配函數定義................................17
3.3.2 定義Map,UnMap函數...............................17
3.4 線性實體處理器之虛擬處理器模擬........................20
3.5 多維度直接映射分配函數演算法..........................21
3.5.1 資料分配方向為in, inout.........................21
3.5.2 資料分配方向為out, inout........................24
第四章 對虛擬處理器的模擬.....................................27
4.1 實體處理器的模擬環境..................................27
4.2 模擬碼中資料結構的模擬................................28
4.3 模擬碼中程式流程的模擬................................30
4.3.1 運算式..........................................31
4.3.2 敘述句if........................................33
4.3.3 敘述句switch....................................34
4.3.4 複合敘述句......................................34
4.3.5 敘述句for.......................................35
4.3.6 敘述句while.....................................35
4.3.7 敘述句dowhile...................................36
4.3.8 無條件跳躍敘述句................................36
4.3.9 敘述句的混合使用................................37
4.3.10 模擬迴圈.......................................38
4.4 實體處理器初步模擬碼之轉換實例........................40
第五章 對虛擬處理器模擬的最佳化...............................44
5.1 共用資料結構的觀察....................................44
5.2 循環式敘述句的轉換....................................45
5.3 模擬迴圈的內移........................................46
5.4 最佳化模擬碼語法樹的實作演算法........................47
5.4.1 定義資料結構的型態集合..........................47
5.4.2 共用資料結構之分析..............................48
5.4.3 實體處理器對節點處理器之模擬....................49
5.4.4 平行函式敘述句之初步分群........................49
5.4.5 新增資料結構之宣告..............................52
5.4.6 模擬迴圈內敘述句之進階分群......................53
5.4.7 平行函式資料結構之的模擬........................54
5.4.8 加上模擬迴圈....................................54
5.4.9 模擬迴圈內敘述句的展開..........................55
5.4.10 最佳化模擬碼的語法樹生成.......................56
5.5 矩陣乘法的編譯實例....................................57
第六章 目的碼的產生...........................................62
6.1 執行時期支援函式庫....................................62
6.1.1 函式庫組織......................................62
6.1.2 函式庫的資料結構................................63
6.1.3 函式庫的巨集檔..................................65
6.1.4 與訊息傳遞函式無關函式庫........................67
6.1.5 矩陣乘法使用實例................................69
6.2 非區域性存取語法的目的碼..............................72
6.2.1 一般非區域性讀取................................73
6.2.2 一般非區域性寫入................................74
6.2.3 全域運算之指定/廣播分配.........................74
6.2.4 節點處理器相對定址之非區域性讀取................75
6.2.5 節點處理器相對定址之非區域性寫入................76
6.3 目的碼編譯實例........................................77
6.3.1 矩陣乘法的”CCCLibMacro.h”.....................77
6.3.2 矩陣乘法的完整程式碼............................80
第七章 效能評估...............................................87
7.1矩陣乘法(Matrix Mutiplication).........................87
7.2高斯消去法(Matrix Gaussian Elimination)................89
7.3 LU因式化(Matrix LU Factor Decomposition)..............90
7.4瓦嚇爾結點遞移演算法(Warshall's Transitive Closure)....91
7.5易瓦特希尼斯質因數分析演算法(Sieve of Eratosthenes)....92
第八章 結論與未來展望.........................................94
參考文獻......................................................96
附 錄 一 CCC Grammar..........................................98
附 錄 二 範例程式完整程式碼..................................101
英漢對照.....................................................172
漢英對照.....................................................176

參考文獻
[1]C.-W. Chiang, T.-C. Liu, and N.-W. Lin, “Design and Implementation of a Data Parallel Language,” Proceedings of the Second Workshop on Compiler Techniques for High-Performance Computing, 1996, pp. 9-15.
[2]N.-W. Lin, “Data Maping in Agglomeration of Virtual Processors,” Proceedings of the Fourth Workshop on Compiler Techniques for High-Performance Computing, March 19-20, 1998.
[3]C.-W. Chiang, “Implementation of C* on Distributed Memory Multicomputer,” Master’s thesis, National Chung Cheng Univ., Taiwan, R.O.C.,1995.
[4]T.-C. Liu, “Emulating Virtual Processors in a Data Parallel Language,” Master’s thesis, National Chung Cheng Univ., Taiwan, R.O.C.,1996.
[5]C.-C. Chang, “Implementation of a Data Parallel Language on a Network of Workstations,”Master’s thesis, National Chung Cheng Univ., Taiwan, R.O.C.,1998.
[6]B. W. Kernighan and D. M. Ritchie, The C Programming Language(second edition), Prentice-Hall, Englewood Cliffs, NJ, 1998.

QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top