請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/46932
標題: | 在 GCC 與 LLVM 上實作以 OpenMP 程式為主動態與靜態混 合之 Data Race 偵測 Static and Dynamic Data Race Detection for OpenMP Programs on GCC and LLVM |
作者: | Jia-Zon Chang 張家榮 |
指導教授: | 廖世偉(Shih-Wei Liao) |
關鍵字: | OpenMP,GCC,LLVM,data race,多線程,動態分析,靜態分析, OpenMP,GCC,LLVM,data race,multithread,dynamic analysis,static analysis, |
出版年 : | 2010 |
學位: | 碩士 |
摘要: | 近年來,多核心的處理器架構已經被廣為採用並成為業界的主流設 計。為了能夠有效的利用多核心處理器所帶來的效能,多執行緒程式 已經成為軟體開發上的必備的技巧。除了使用 POSIX threads (Pthreads) API 外,簡單、易讀且富有可攜性的多執行緒程式開發標準也被廣泛 的使用,而 OpenMP 便是其中的佼佼者。然而在享受多執行緒程式開 發所帶來的效能地同時卻延伸出一些棘手的問題,其中之一便是 data race。在這篇論文中,我們設計了一個應用在 OpenMP 程式上,動態 與靜態偵測 data race 的工具。
首先,我們利用 GCC 分析並編譯 OpenMP 程式,分析的結果可以 用來減少之後在執行期所需的檢測。接著再利用 LLVM 在透過觀察與 分析程式的行為進行更近一步的偵測。 Multicore processors have become mainstream. Therefore, to exploit sil- icon resource effectively, multithreaded programming is critical. In addi- tion to the traditional POSIX threads API, other multithreaded APIs such as OpenMP have been proposed. OpenMP provide an interface that is easy to use, highly reliable, and portable. However, the effective exploitation of re- sources by multithreaded programming comes with cost. For instance, data races result in incorrect execution sometimes and are expensive to be elim- inated. We present a novel data race detection tool to address this cost of multithreaded programming. Specifically, we develop a plugin for GCC compiler to analyze the OpenMP constructs from the source and compile the OpenMP program. The results from the static analysis can be used to reduce the necessary instrumentation later. Next, we utilize the LLVM compiler infrastructure to observe and ana- lyze the runtime behaviors for further data race detection. |
URI: | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/46932 |
全文授權: | 有償授權 |
顯示於系所單位: | 資訊網路與多媒體研究所 |
文件中的檔案:
檔案 | 大小 | 格式 | |
---|---|---|---|
ntu-99-1.pdf 目前未授權公開取用 | 826.53 kB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。