Summary: | 博士 === 國立中央大學 === 資訊及電子工程研究所 === 82 === Parallel machines execute programs concurrently on hundreds
or thousands of processors which provide far more computational
power over an uniprocessor. Without aids of parallelizing
compilers, it is more difficult to write parallel programs with
explicit or implicit data communication or synchronization over
processors. This dissertation addresses the problem of
designing and implementing a parallelizing compiler on
distributed memory multicomputers. For distributed memory
multicomputers, the performance declines rapidly while a
unit of data communication is higher than a unit of the
corresponding computation. Hence minimizing interprocessor
communication is the key to the efficiency of parallel
executing programs. Some compilation techniques are
investigated for partitioning and mapping programs onto
multicomputers. Our main goal is to extract parallelism and
reduce the communication as much as possible during parallel
execution. First, two automatic data allocation strategies with
non-duplicate and duplicate data for communication-free
executing programs are investigated. However, this is the best
case for compilers on multicomputers. To solve the problem
while data communication is needed, we will propose the non-
communication-free compilation strategies. The compilation
strategies have enabled us to apply transformation approaches
to mapping programs on linear arrays or hypercubes. In
addition, we implement a parallelizing compiler system on a
User-interactive Parallel Programming EnviRonment called
UPPER. This parallelizing compiler system introduces the new
and existing techniques for compiler-time analysis for
performance analysis. This integrated system attempts to
provide the convenience for users to easily design their
desirable parallel programs based on a variety of assertions
and information generated by this compiler.
|