Compile-time Loop Splitting for Distributed Memory Multiprocessors
Name
MIT-LCS-TM-490.pdf
Size
23.37 MB
Format
Adobe PDF
Checksum (MD5)
db906c22b6bc311117824d8312ac3a1d
Author(s)
Tanguay, Donald O., Jr.
Date Issued
November 1993
Series/Report no.
MIT-LCS-TM-490
Abstract
In a distributed memory multiprocessor, a program's task is partitioned among the processors to exploit parallelism, and the data are partitioned to increase referential locality. Though the purpose of partitioning is to shorten the execution time of an algorithm, each data reference can become a complex expression based upon the data partitions. As an attempt to minimize the computation needed for array references, loop splitting can further divide a partitioned loop into segments that allow the code hoisting and strength reduction optimizations. This thesis introduces two methods of loop splitting, rational and interval. While rational splitting divides the loop into equal-length GCD segments, interval splitting specifies segments as an explicit list of intervals. These two methods have been implemented and studied. Under our execution model, the loop in the algorithms analyzed executes an average of 2 to 3 times faster after loop splitting.
Persistent DSpace Link