(18.232.50.137) 您好!臺灣時間:2021/05/06 17:13
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:張秀娟
研究生(外文):Hsiu-Chuan Chang
論文名稱:一個控制平行語言在對稱式多處理器上的研製
論文名稱(外文):Design and Implementation of a Task Parallel Language on Symmetric Multiprocessors
指導教授:林迺衛林迺衛引用關係
指導教授(外文):Nai-Wei Lin
學位類別:碩士
校院名稱:國立中正大學
系所名稱:資訊工程研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2001
畢業學年度:89
語文別:中文
論文頁數:144
中文關鍵詞:控制平行通道監督平行語言訊息傳遞共享變數
外文關鍵詞:task parallelchannelmonitorParallel Languagemessage passingshare variable
相關次數:
  • 被引用被引用:0
  • 點閱點閱:141
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:1
一般而言,撰寫平行程式要比撰寫循序程式來得困難許多,所以發展一個高階的平行程式語言來幫助程式設計師能夠更容易撰寫平行程式是非常必要的。在這篇論文中,我們發展出一高階平行程式語言CCC,它是程式語言C的簡單延伸。CCC除了保留傳統C原有的功能外,還提供了支援平行執行的機制來幫助我們撰寫出控制平行程式。在平行機制方面,CCC提供可以被平行執行的函式。並且用結構化的方式產生平行執行的工作。在溝通機制方面,CCC同時提供了訊息傳遞與共享變數兩種溝通機制,讓使用者依據應用程式選擇最適當的溝通方式。
CCC編譯器的後端分成兩部分:語法樹轉換器以及目的碼生成器。語法樹轉換器會將前端所產生的CCC語法樹轉換成多執行緒的C語法樹當中間碼。目的碼生成器再利用此轉換過的語法樹來產生平行程式的目的碼。針對不同的系統,這樣的架構只需改變目的碼生成器,不需改變語法樹轉換器。因此,讓我們的CCC編譯器保有較高的可重標的性。在論文中,我們也用CMU大學所提出的控制平行程式組來評估我們編譯器的效能。實驗結果顯示CCC編譯器產生的程式和手寫的程式大約相差在10%以內。

Parallel programming is usually much more difficult than sequential programming. Hence, providing a high-level parallel programming language is very important. In this thesis, we develop a high-level language CCC that is a small extension of C. CCC remains the syntax and semantics of the C language. In addition, it also supports some mechanisms to facilitate the design of the task parallel programs. For the concurrency mechanism, CCC supports parallel functions that can be executed in parallel, and parallel tasks are created in a structured way. For the communication mechanism, CCC supplies both message passing and shared variables communication mechanisms. This allows users to choose the appropriate communication mechanism based on the nature of the application programs.
The back-end of the CCC compiler is divided into two parts: the syntax tree transform and the code generator. The syntax tree transform transfers the CCC syntax tree into the multithreaded C syntax tree intermediate form. The code generator generates the object code for a particular multithread library. Base on the transformed syntax tree, in different systems, we can reuse the syntax tree transferor and only need to change code generator. Thus, our CCC compiler is more retargetable. In this thesis, we also employ the CMU task parallel program suite to test the performance of our compiler. The result of the experiment shows that the difference of the performance between the programs generated by the CCC compiler and the hand-written programs is less than 10%.

第一章導論 …………………………………………………………1
1-1 動機 ………………………………………………………………1
1-2 CCC平行設計環境…………………………………………………2
1-3 論文結構 …………………………………………………………3
第二章平行程式語言CCC……………………………………………4
2-1 平行機制 …………………………………………………………4
2-1-1 平行函式的定義…………………………………………5
2-1-2 平行函式的呼叫…………………………………………6
2-2 訊息傳遞溝通機制 ………………………………………………8
2-2-1 通道………………………………………………………8
2-2-2 範例程式 ………………………………………………12
2-3 共享變數溝通機制………………………………………………13
2-3-1 監督 ……………………………………………………13
3-3-2 範例程式 ………………………………………………15
2-4 小結………………………………………………………………16
第三章pthread 函式庫……………………………………………17
3-1 Pthread的平行機制 ……………………………………………17
3-2 Pthread的同步機制 ……………………………………………19
3-2-1 互斥鎖的變數宣告及存取函式 ………………………19
3-2-2 讀寫鎖變數宣告及存取函式 …………………………20
3-2-3 條件變數及函式 ………………………………………21
3-3 Pthread的排程 …………………………………………………22
第四章CCC 的編譯器 ………………………………………………26
4-1 編譯器架構 ………………………………………………………26
4-2 CCC 語法樹 ………………………………………………………27
4-2-1 平行函式定義……………………………………………28
4-2-2 par平行區段結構 ………………………………………29
4-2-3 parfor平行區段結構……………………………………29
4-2-4 通道定義…………………………………………………30
4-2-5 監督定義…………………………………………………30
4-3 語法樹的轉換 ……………………………………………………31
4-3-1 平行函式定義……………………………………………32
4-3-2 par平行區段結構 ………………………………………35
4-3-3 parfor平行區段結構……………………………………36
4-3-4 通道結構…………………………………………………37
4-3-5 監督結構…………………………………………………40
4-4 多執行緒C語言程式碼的生成……………………………………43
4-4-1 平行函式定義……………………………………………43
4-4-2 par平行區段結構 ………………………………………44
4-4-3 parfor平行區段結構……………………………………47
4-4-4 通道結構…………………………………………………49
4-4-5 監督結構…………………………………………………52
第五章效能評估 ……………………………………………………54
5-1 測試環境與實驗程式 ……………………………………………54
5-2 1D fast Fourier transform……………………………………55
5-3 2D fast Fourier transform……………………………………56
5-4 Narrowband tracking radar……………………………………57
5-5 Multibaseline stereo imaging ………………………………58
5-6 Airshed simulation ……………………………………………59
5-7 Finite Differences ……………………………………………60
5-8 小結 ………………………………………………………………61
第六章 結論與未來展望………………………………………………62
參考文獻…………………………………………………………………64
英漢對照…………………………………………………………………65
附錄………………………………………………………………………68

[1] Andrews, Concurrent Programming: Principles and
Practice, Benjamin/Cummings, 1991.
[2] Andrews and Olsson, The SR Programming Language:
Concurrency in Practice, Benjamin/Cummings, 1993.
[3] B. Nicbols, D. Buttlar, J. P. Farrell. Pthreads
Programming. O’Reilly & Associates, Inc., 1996.
[4] C.C. Lin, Implementation of a Task Parallel Language
on Top of Cilk Runtime System Master’s thesis, National
Chung Cheng Univ., Taiwan, R.O.C.,1999.
[5] Charles J. Northrup, Programming with UNIX Threads,
John Wiley & Sons, 1996.
[6] Cilk 5.2 Reference Manual. Technical report,
Supercomputing Technologies Group MIT Laboratory for
Computer Science. JULY, 1998.
[7] Dinda, P., Gross, T., O'Hallaron, D., Segall, E.,
Stichnoth, J., Subhlok, J., Webb, J., and Yang, B. "The
CMU task parallel program suite". Tech. Rep. CMU-CS-94-
131, School of Computer Science, Carnegie Mellon
University, Mar. 1994.
[8] I. Foster, and K. M. Chandy. "Fortran M: A Language for
Modular Parallel Programming". Journal of parallel and
Distributed Computing, 1994.
[9] Ian T. Foster. Designing and Building Parallel Programs.
Addison Wesley, pp.18-19.
[10] K.M. Chandy and C. Kesselman. CC++: A Declarative
Concurrent Object Oriented Programming Notation. In
Research Directions in Object Oriented Programming, The
MIT Press, pp. 281-313, 1993.

QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔