基于Clang的C語言代碼并行化轉換工具的設計與實現(xiàn)
發(fā)布時間:2017-09-27 19:06
本文關鍵詞:基于Clang的C語言代碼并行化轉換工具的設計與實現(xiàn)
【摘要】:在互聯(lián)網飛速發(fā)展的今天,人們進入了一個數據爆炸的年代,針對于一些互聯(lián)網后臺核心的應用,每天有數以億記的用戶,完成海量的點擊、訪問,然而在大并發(fā)下的數據處理不可避免的面臨著各種各樣的瓶頸。目前,憑著擁有極高運算能力的高性能并行計算機成為現(xiàn)金計算機發(fā)展方向上的重要標桿,計算設備的計算能力成為了衡量一個國家的經濟能力和科技實力的主要度量,同時在另一方面它也在不斷促進國家經濟的發(fā)展、科學技術的進步以及綜合國力的提升。 現(xiàn)在,世界范圍內的眾多研究人員,正在對GPU運算進行著各類開發(fā)試驗,并對這種并行計算的能力進行學習與研究。但是在這樣的工作中,大多數工作都是基于一些原始的數據所進行的。當研究者和開發(fā)人員將開發(fā)的工作在GPU上執(zhí)行時,他們需要考慮到GPU的并行編程,并且遵守GPU的底層架構。遵循這樣的想法,本文提供了一種可以將傳統(tǒng)的C遺產代碼轉換為可并行執(zhí)行的OpenMP代碼的工具。在本文基礎上提供的主要工作內容如下: 1.在對代碼進行分析時,代碼中的嵌套循環(huán)的提取是工具中的重要部分,在此部分中,我們在結合工具原有的代碼分析能力的基礎上,對代碼中的嵌套循環(huán)進行提取,從而進行進一步的分析與處理工作。 2.對嵌套循環(huán)代碼中的數據依賴關系,我們也進行了相應的進一步的處理。根據分析代碼所生成的抽象語法樹與控制流圖的基礎上,我們對其中的數據依賴關系進行相應的分析,由此來建立一張有向的數據依賴關系圖。通過此數據依賴關系圖,對于嵌套循環(huán)的拆分與重建進行指導,我們就可以盡可能的對程序進行并行化處理。 3.針對程序中存在著非常復雜的上下文關系,在循環(huán)重構過程中,我們運用安德森指針分析的方法來對代碼進行過程間分析。對于程序代碼中的指針或大量的引用進行標記和跟蹤,,分析一個變量的變化過程、存儲狀態(tài)以及內部的存儲值。 4.Clang/LLVM作為一個輕量級的提示友好的編譯器近年來獲得了大量研究人員的關注。作為一個開源編譯器,它在很大程度上提高了代碼的執(zhí)行效率。本文在此基礎上進行開發(fā),也是為了達到對代碼的并行編譯執(zhí)行程度達到一個相對客觀的程度。 本文在進行有關串行程序并行化的同時,針對目前國內并行編程發(fā)展的整體情況以及大量待處理遺產程序的需求,設計和實現(xiàn)了一種在Clang基礎上可以將C語言程序自動并行化轉換的工具。
【關鍵詞】:自動并行化 Clang 源源轉換
【學位授予單位】:吉林大學
【學位級別】:碩士
【學位授予年份】:2015
【分類號】:TP338.6
【目錄】:
- 摘要4-6
- Abstract6-11
- 第1章 緒論11-17
- 1.1 研究背景11-12
- 1.2 并行編譯的發(fā)展及現(xiàn)狀研究12-14
- 1.2.1 并行編譯的發(fā)展12-13
- 1.2.2 并行編譯國內外研究現(xiàn)狀13-14
- 1.3 論文主要工作14-16
- 1.4 本章小結16-17
- 第2章 Clang 基礎上的代碼轉換工具設計17-33
- 2.1 代碼轉換工具功能分析17-24
- 2.1.1 Intel 編譯器的自動并行化17-18
- 2.1.2 PGI 高性能并行編譯器18
- 2.1.3 Clang/LLVM 編譯器18-20
- 2.1.4 LLVM 前端 Clang 編譯模塊分析20
- 2.1.5 詞法分析20-21
- 2.1.6 語法分析21
- 2.1.7 語義分析21
- 2.1.8 中間代碼生成21-24
- 2.2 串并源源轉換方法的設計24-32
- 2.2.1 控制流圖25-26
- 2.2.2 抽象語法樹26-29
- 2.2.3 指針指向分析29
- 2.2.4 循環(huán)依賴關系29-30
- 2.2.5 循環(huán)依賴的種類30-31
- 2.2.6 循環(huán)依賴分析31-32
- 2.3 本章小結32-33
- 第3章 基于 Clang 的代碼自動轉換編譯功能的概要設計33-38
- 3.1 CTMP 代碼轉換功能設計思路33-34
- 3.2 基于 Clang 的 CTMP 相關模塊34-37
- 3.2.1 驅動參數34-36
- 3.2.2 LLVM 的靜態(tài)分析模塊36-37
- 3.3 本章小結37-38
- 第4章 CTMP 擴展功能設計與實現(xiàn)38-53
- 4.1 過程間分析設計38-41
- 4.2 循環(huán)拆分模塊設計策略41-46
- 4.2.1 循環(huán)檢測41-43
- 4.2.2 嵌套循環(huán)的拆解43-45
- 4.2.3 循環(huán)的拆解重組45-46
- 4.3 變量替換在 CTMP 中的應用策略46-48
- 4.4 代碼生成功能的實現(xiàn)48-51
- 4.4.1 代碼生成的相關表示48-50
- 4.4.2 代碼生成主要方法50-51
- 4.5 本章小結51-53
- 第5章 實驗及測試結果53-55
- 第6章 總結與展望55-57
- 參考文獻57-59
- 作者簡介及在學期間所取得的科研成果59-60
- 致謝60
【參考文獻】
中國期刊全文數據庫 前2條
1 夏軍,楊學軍,曾麗芳,周海芳;基于投影分層技術的嵌套循環(huán)空間局部性優(yōu)化方法[J];計算機學報;2003年05期
2 趙捷;趙榮彩;丁銳;黃品豐;;基于嵌套循環(huán)分類的并行識別技術[J];軟件學報;2012年10期
中國博士學位論文全文數據庫 前1條
1 李倩;Java程序指向分析研究[D];南京大學;2012年
本文編號:931380
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/931380.html
最近更新
教材專著