This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Parallelizing Subroutines in Sequential Programs
January/February 1994 (vol. 11 no. 1)
pp. 77-85

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.

Index Terms:
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
Citation:
Chih-Ping Chu, Doris L. Carver, "Parallelizing Subroutines in Sequential Programs," IEEE Software, vol. 11, no. 1, pp. 77-85, Jan.-Feb. 1994, doi:10.1109/52.251214
Usage of this product signifies your acceptance of the Terms of Use.