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.
|