Issue No. 01 - January/February (1994 vol. 11)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/52.251214
<p>An algorithm for making sequential programs parallel is described, which first identifies all subroutines, then determines the appropriate execution mode and restructures the code. It works recursively to parallelize the entire program. We use Fortran in our work, but many of the concepts apply to other languages. Our hardware model is a shared-memory multiprocessor system with a fixed number of identical processors, each with its own local memory connected to a common memory that is accessible to all processors equally. The model implements interprocessor synchronization and communication via special memory locations or special storage. Systems like the Cray X-MP, IBM 3090, and Alliant FX/8 fit this model. Our input is a sequential, structured Fortran program with no overlapping branches. With today's emphasis on writing structured code, this restriction is reasonable. A prototype of a system to implement the algorithm is under development on an IBM 3090 multiprocessor.</p>
subroutines; parallel algorithms; structured programming; parallel programming; IBM computers; subroutine parallelization; sequential programs; execution mode; code restructuring; recursive process; IBM 3090 multiprocessor; shared-memory multiprocessor system; local memory; common memory; interprocessor synchronization; interprocessor communication; special memory locations; Cray X-MP; Alliant FX/8; structured Fortran program
C. Chu and D. L. Carver, "Parallelizing Subroutines in Sequential Programs," in IEEE Software, vol. 11, no. , pp. 77-85, 1994.