DOACROSS Loops Parallelization for Parallelizing Compilers

碩士 === 國立交通大學 === 資訊科學學系 === 83 === Loop-level parallelism is the most common resource to be exploited by parallelizing compiler. On most existing parallelizing compiler, only DOALL loops parallelization are supported....

Full description

Bibliographic Details
Main Authors: Shih-Hung Kao, 高世宏
Other Authors: Shian-Shyong Tseng
Format: Others
Language:en_US
Published: 1995
Online Access:http://ndltd.ncl.edu.tw/handle/02486619045673065283
Description
Summary:碩士 === 國立交通大學 === 資訊科學學系 === 83 === Loop-level parallelism is the most common resource to be exploited by parallelizing compiler. On most existing parallelizing compiler, only DOALL loops parallelization are supported. However, DOACROSS loops which are ignored by most current parallelizing compiler exist plentiful parallelism. In this thesis, a DOACROSS loops parallelization model is proposed. The parallelization for DOACROSS loops is divided into two parts: compile time parallelization and run-time parallelization. DOACROSS loop with constant uniform dependence distance can be parallelized by proper synchronizations. It is also found that parallelizing DOACROSS loops can obtain obvious speedup. However, if the dependence distance is non-uniform or array index is an indexing function, these will make data dependence test conservative. A run-time method is proposed to handle such loops. This method is based on insp/exec loop transformation (inspector phase and executor phase). We propose a general algorithm for the inspector phase to improve the capability to solve loop scheduling problem. Our algorithm can determine the wavefronts of a loop with any complex array reference relations by building DEF-USE table. The experimental results show that the new algorithm can handle any complex data dependence pattern which cannot be handled by any other previous research, and also reveals that if the input loop doesn't have uniform workload, the scheduling should be considered. Furthermore, the efficiency of the insp/exec method is also discussed.