This Article 
 Bibliographic References 
 Add to: 
Automatic Generation of Self-Scheduling Programs
January 1991 (vol. 2 no. 1)
pp. 68-78

Techniques are described for the automatic generation of self-scheduling parallelprograms. Both scheduling algorithms and the concurrent components of applications areexpressed in a high-level concurrent language. Partitioning and data dependencyinformation are expressed by simple control statements, which may be generated eitherautomatically or manually. A self-scheduling compiler, implemented as a source-to-source transformation, takes application code, control statements, and scheduling routines and generates a new program that can schedule its own execution on a parallel computer. The approach has several advantages compared to previous proposals. It generatesprograms that are portable over a wide range of parallel computers. There is no need toembed special control structures in application programs. The use of a high-levellanguage to express applications and scheduling algorithms facilitates the development,modification, and reuse of parallel programs.

[1] R. Babb, "Parallel processing with large grain data flow techniques,"IEEE Comput. Mag., vol. 17, no. 7, pp. 55-61, 1984.
[2] J. Boyle, R. Butler, T. Disz, B. Glickfeld, E. Lusk, R. Overbeek, J. Patterson, and R. Stevens,Portable Programs for Parallel Processors.New York: Holt, Rinehart, and Winston, 1987.
[3] R. Butler, T. Butler, I. Foster, N. Karonis, R. Olson, R. Overbeek, N. Pfluger, M. Price, and S. Tuecke, "Aligning genetic sequences," inStrand: New Concepts in Parallel Programming.Englewood Cliffs, NJ: Prentice-Hall, 1989, pp. 253-271.
[4] K. M. Chandy and S. Taylor, "Composing parallel programs," inBeauty is our Business, New York: Springer-Verlag, 1990.
[5] K. L. Clark and S. Gregory, "A relational language for parallel programming," inProc. ACM Conf. Functional Languages and Computer Architecture, Portsmouth, NH, Arvind and J. Dennis, Eds., 1981, pp. 171-178.
[6] J. Dongarra and D. Sorenson, "A portable environment for developing parallel Fortran programs,"Parallel Comput., vol. 5, pp. 175-186, 1987.
[7] I. Foster and R. Overbeek, "Experiences with bilingual parallel programming," inProc. 5th Distributed Memory Comput. Conf., 1990.
[8] I. Foster and R. Stevens, "Parallel programming with algorithmic motifs," inProc. 1990 Int. Conf Parallel Processing, Penn. State Univ. Press, 1990.
[9] I. Foster and S. Taylor,Strand: Concepts in Parallel Programming, Prentice Hall, Englewoold Cliffs, N.J., 1989.
[10] I. Foster and S. Taylor, "Strand: A practical parallel programming tool," inProc North Amer. Canf. Logic Programming.MIT Press, 1989, pp. 497-512.
[11] R. Gerth, M. Codish, Y. Lichtenstein, and E. Shapiro, "Fully abstract denotational semantics for Flat Concurrent Prolog," inProc. Symp. Logic Comput. Sci., 1988.
[12] E. Horowitz and A. Zorat. "Divide-and-conquer for parallel processing,"IEEE Trans. Comput., vol. C-32, no. 6, pp. 582-585, 1983.
[13] R. Keller and F. Lin, "Simulated performance of a reduction based multiprocessor,"IEEE Comput. Mag., vol. 17, no. 7, pp. 70-82, 1984.
[14] E. Lusk,et al., "The Aurora Or-parallel Prolog system," inProc. Fifth Generation Comput.Syst. Conf., Tokyo, 1988, pp. 819-830.
[15] C. Polychronopoulos,Parallel Programming and Compilers, Kluwer Academic Publishers, 1988.
[16] S. Taylor,Parallel Logic Programming Techniques. Englewood Cliffs, NJ: Prentice-Hall, 1989.
[17] S. Thakkar, P. Gifford, and G. Fieland, "The Balance multiprocessor system,"IEEE Micro, Feb. 1988.

Index Terms:
Index Termspartitioning; self-scheduling programs; automatic generation; parallel programs; high-level concurrent language; data dependency information; control statements; self-scheduling compiler; source-to-source transformation; application code; control statements; scheduling routines; control structures; application programs; high-level language; application generators; automatic programming; parallel programming; scheduling
I. Foster, "Automatic Generation of Self-Scheduling Programs," IEEE Transactions on Parallel and Distributed Systems, vol. 2, no. 1, pp. 68-78, Jan. 1991, doi:10.1109/71.80190
Usage of this product signifies your acceptance of the Terms of Use.