A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations

碩士 === 國立臺北大學 === 電機工程學系 === 101 === When a parallel compiler analyzes a program, it must use data dependence tests to determine whether a certain region contains dependencies or not. In recent years, increasing numbers of researchers have developed data dependence test methods for different kinds o...

Full description

Bibliographic Details
Main Authors: Chia-Wei Wong, 翁嘉偉
Other Authors: Shan-Hui Ho
Format: Others
Language:en_US
Published: 2013
Online Access:http://ndltd.ncl.edu.tw/handle/b6zq89
id ndltd-TW-101NTPU0442008
record_format oai_dc
spelling ndltd-TW-101NTPU04420082019-05-15T20:53:16Z http://ndltd.ncl.edu.tw/handle/b6zq89 A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations 一個非連續最佳化數據依賴性測試用來降低原始碼級偵錯之複雜性應用於平行編譯器和向量編譯器之最佳化 Chia-Wei Wong 翁嘉偉 碩士 國立臺北大學 電機工程學系 101 When a parallel compiler analyzes a program, it must use data dependence tests to determine whether a certain region contains dependencies or not. In recent years, increasing numbers of researchers have developed data dependence test methods for different kinds of loops. A parallel compiler determines the dependence between loop iterations using data dependence tests. To do this, it must analyze the subscript expression. In a loop, if the parallel compiler determines that there are two iterations that access the same memory address, then data dependence exists, and the loop cannot be processed in parallel. Current data dependence tests can be divided into general two categories: exact dependence tests and inexact dependence tests. Exact dependence tests can be used to prove dependence and independence. Inexact dependence tests can only be applied to prove independence. The greatest common divisor (GCD) test is used to check whether there is an integer solution or not. The Banerjee test also takes the boundaries of loop index variables into account. The GCD test can only prove independence in data dependence tests, and the Banerjee test is only able to prove that an equation does not have any integer solution within the boundaries of the iteration variables; it can only be used to prove independence in a data dependence test. The I test can be used to determine dependence for one-dimensional arrays with constant bounds and unitary increment loop iteration variables. The normal I test was originally designed for loops that have an index variable that increments by a value of one; that is, it cannot be directly applied in non-unitary increment nested loops. This kind of nested loop must be converted to a unitary increment loop by loop normalization. However, it has been shown that loop normalization makes array references more complex and creates many debugging difficulties. For non-unitary increment loop iteration variables, the topic of non-continuous optimization data dependence tests is very important. In this thesis, we construct algorithms for one-dimensional arrays and multidimensional arrays using the non-continuous I optimization data dependence model. Moreover, we write a program to analyze dependence on loops in practice. Using these chart algorithms, we can directly determine dependencies for one-dimensional and multidimensional arrays with constant bounds and non-unitary increment loop iteration variables without using loop normalization; hence, the time needed for loop normalization is reduced. Because it is unnecessary to modify the code of a program, the complexity of source level debugging for parallel and vector compilers can also be reduced, which is more desirable than determination using the normal I test, which must apply loop normalization. The time complexity of the algorithms is the same as that of the normal I test: O(c_3 n^2+c_2 n)。 Shan-Hui Ho 何善輝 2013 學位論文 ; thesis 58 en_US
collection NDLTD
language en_US
format Others
sources NDLTD
description 碩士 === 國立臺北大學 === 電機工程學系 === 101 === When a parallel compiler analyzes a program, it must use data dependence tests to determine whether a certain region contains dependencies or not. In recent years, increasing numbers of researchers have developed data dependence test methods for different kinds of loops. A parallel compiler determines the dependence between loop iterations using data dependence tests. To do this, it must analyze the subscript expression. In a loop, if the parallel compiler determines that there are two iterations that access the same memory address, then data dependence exists, and the loop cannot be processed in parallel. Current data dependence tests can be divided into general two categories: exact dependence tests and inexact dependence tests. Exact dependence tests can be used to prove dependence and independence. Inexact dependence tests can only be applied to prove independence. The greatest common divisor (GCD) test is used to check whether there is an integer solution or not. The Banerjee test also takes the boundaries of loop index variables into account. The GCD test can only prove independence in data dependence tests, and the Banerjee test is only able to prove that an equation does not have any integer solution within the boundaries of the iteration variables; it can only be used to prove independence in a data dependence test. The I test can be used to determine dependence for one-dimensional arrays with constant bounds and unitary increment loop iteration variables. The normal I test was originally designed for loops that have an index variable that increments by a value of one; that is, it cannot be directly applied in non-unitary increment nested loops. This kind of nested loop must be converted to a unitary increment loop by loop normalization. However, it has been shown that loop normalization makes array references more complex and creates many debugging difficulties. For non-unitary increment loop iteration variables, the topic of non-continuous optimization data dependence tests is very important. In this thesis, we construct algorithms for one-dimensional arrays and multidimensional arrays using the non-continuous I optimization data dependence model. Moreover, we write a program to analyze dependence on loops in practice. Using these chart algorithms, we can directly determine dependencies for one-dimensional and multidimensional arrays with constant bounds and non-unitary increment loop iteration variables without using loop normalization; hence, the time needed for loop normalization is reduced. Because it is unnecessary to modify the code of a program, the complexity of source level debugging for parallel and vector compilers can also be reduced, which is more desirable than determination using the normal I test, which must apply loop normalization. The time complexity of the algorithms is the same as that of the normal I test: O(c_3 n^2+c_2 n)。
author2 Shan-Hui Ho
author_facet Shan-Hui Ho
Chia-Wei Wong
翁嘉偉
author Chia-Wei Wong
翁嘉偉
spellingShingle Chia-Wei Wong
翁嘉偉
A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations
author_sort Chia-Wei Wong
title A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations
title_short A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations
title_full A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations
title_fullStr A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations
title_full_unstemmed A Non-continuous Optimized Data Dependence Testing for Reducing the Complexity of Source Level Debugging for Parallel Compiler and Vector Compiler Optimizations
title_sort non-continuous optimized data dependence testing for reducing the complexity of source level debugging for parallel compiler and vector compiler optimizations
publishDate 2013
url http://ndltd.ncl.edu.tw/handle/b6zq89
work_keys_str_mv AT chiaweiwong anoncontinuousoptimizeddatadependencetestingforreducingthecomplexityofsourceleveldebuggingforparallelcompilerandvectorcompileroptimizations
AT wēngjiāwěi anoncontinuousoptimizeddatadependencetestingforreducingthecomplexityofsourceleveldebuggingforparallelcompilerandvectorcompileroptimizations
AT chiaweiwong yīgèfēiliánxùzuìjiāhuàshùjùyīlàixìngcèshìyòngláijiàngdīyuánshǐmǎjízhēncuòzhīfùzáxìngyīngyòngyúpíngxíngbiānyìqìhéxiàngliàngbiānyìqìzhīzuìjiāhuà
AT wēngjiāwěi yīgèfēiliánxùzuìjiāhuàshùjùyīlàixìngcèshìyòngláijiàngdīyuánshǐmǎjízhēncuòzhīfùzáxìngyīngyòngyúpíngxíngbiānyìqìhéxiàngliàngbiānyìqìzhīzuìjiāhuà
AT chiaweiwong noncontinuousoptimizeddatadependencetestingforreducingthecomplexityofsourceleveldebuggingforparallelcompilerandvectorcompileroptimizations
AT wēngjiāwěi noncontinuousoptimizeddatadependencetestingforreducingthecomplexityofsourceleveldebuggingforparallelcompilerandvectorcompileroptimizations
_version_ 1719107037378379776