This Article 
 Bibliographic References 
 Add to: 
Dynamic Processor Self-Scheduling for General Parallel Nested Loops
July 1990 (vol. 39 no. 7)
pp. 919-929

A processor self-scheduling scheme is proposed for general parallel nested loops in multiprocessor systems. In this scheme, programs are instrumented to allow processors to schedule loop iterations among themselves dynamically at run time without involving the operating system. The scheme has two levels. At the low level, it uses simple fetch-and-op operations to take advantage of the regular structure in the innermost parallel loop nests; at the high level, the irregular structure of the outer loops (parallel or serial) and the IF-THEN-ELSE constructs are handled by using dynamic parallel linked lists. The larger granularity or the processes at the high level easily justifies the added overhead incurred from maintaining such dynamic data structures. The use of guided self-scheduling (GSS) and shortest-delay self-scheduling (SDSS) in this scheme is analyzed.

[1] Cray Research Inc., "Corporate register,"Cray Channels, pp. 26-27, Winter 1988.
[2] M. Kumar, "Measuring parallelism in computation-intensive scientific/engineering applications,"IEEE Trans. Comput., vol. 37, no. 9, pp. 1088-1098, Sept. 1988.
[3] D. J. Kucket al., "The effect of program restructuring, algorithm change, and architecture choice on program performance," inProc. 1984 Int. Conf. Parallel Processing, Aug. 1984, pp. 129-138.
[4] M. J. Wolfe, "Optimizing compiler for supercomputers," Dep. Comput. Sci. Univ. of Illinois at Urbana-Champaign, Rep. UIUCDCS-R- 82-1105, Oct. 1982.
[5] J. R. Allen, D. Callahan, and K. Kennedy, "Automatic decomposition of scientific programs for parallel execution," inConf. Record, 14th POPL, Jan. 1987.
[6] F. Allen, M. Burke, R. Cytron, J. Ferrante, W. Hsieh, and V. Sarkar, "A framework for determining useful parallelism," inProc. 1988 ACM Int. Conf. Supercomput., July 1988, pp. 207-215.
[7] E. L. Lusk and R. A. Overbeek, "Implementation of monitors with macros: A programming aid for the HEP and other parallel processors," Argonne Nat. Lab., ANL-83-97, Argonne, IL, Dec. 1983.
[8] Alliant Computer Systems Corp.,FX/Series--Architecture Manual, 1986.
[9] Cray Research Inc,Lecture Notes on Multitasking, 1984.
[10] F. Darema-Rogers, D. A. George, A. Norton, and G. F. Pfister, "VM/EPEX-A VM/SP based environment for parallel execution," IBM Res. RC11381, Yorktown Heights, NY, 1985.
[11] G. F. Pfister, W. C. Brantly, D. A. George, S. L. Harvey, W. J. Kleifelder, K. P. McAuliffe, E. A. Melton, V. A. Norton, and J. Weiss, "The IBM Research Parallel Processor Prototype (RP3): Introduction and architecture," inProc. 1985 Int. Conf. Parallel Comput., 1985, pp. 764-771.
[12] D. J. Kucket al., "Parallel supercomputing today and the Cedar approach,"Science, pp. 967-974, Feb. 1986.
[13] P. Tang and P. Yew, "Processor self-scheduling for multiple-nested parallel loops," inProc. 1986 Int. Conf. Parallel Processing, Aug. 19-22, 1986, pp. 528-535.
[14] C. Polychronopoulos and D. Kuck, "Guided self-scheduling: A practical scheduling scheme for parallel supercomputers,"IEEE Tran. Comput., 1987.
[15] R. Cytron, "Doacross: Beyond vectorization for multiprocessors," inProc. 1986 Int. Conf. Parallel Processing, Aug. 1986, pp. 836-844.
[16] P. Tang, P. Yew, and C. Zhu, "Impact of self-scheduling order on performance of multiprocessor systems," inProc. 1988 ACM Int. Conf. Supercomput., July 1988, pp. 593-603.
[17] C. Zhu and P. Yew, "A scheme to enforce data dependences on large multiprocessor systems,"IEEE Trans. Software Eng., vol. SE-13, no. 6, pp. 726-739, June 1987.
[18] E. W. Dijkstra, "Hierarchical ordering of sequential processes,"Oper. Syst. Principles, pp. 72-93, 1972.
[19] M. Weiss, Z. Fang, R. C. Morgan, and P. Belmont, "Dynamic scheduling and memory management for parallel programs," inProc. 1988 Int. Conf. Parallel Processing, Aug. 1988, vol. II (Software), pp. 161-165.
[20] P. Tang, P. Yew, and C. Zhu, "A parallel linked list for shared-memory multiprocessors," inProc. Thirteenth Annu. Comput. Software Appl. Conf., Sept. 1989, pp. 130-135.
[21] P. Tang, "Self-scheduling, data synchronization and program transformation for multiprocessor systems," Ph.D. dissertation, Center for Supercomput. Res. Develop., Univ. of Illinois at Urbana-Champaign, CSRD Rep. 809, 1988.
[22] B. Leasureet al., "PCF Fortran: Language definition (Version 1)," The Parallel Computing Forum, Kuck&Associates Inc., 1906 Fox Drive, Champaign, IL 61820, Aug. 16, 1988.
[23] C. Kruskal and A. Weiss, "Allocating independence subtasks on parallel processors,"IEEE Trans. Software Eng., vol. SE-11, no. 10, pp. 1001-1015, Oct. 1985.
[24] J. Wilson, "Operating system data structures for shared-memory machines with fetch-and-add," Ph.D. dissertation, New York Univ., 1988.

Index Terms:
dynamic processor self scheduling; general parallel nested loops; multiprocessor systems; fetch-and-op operations; innermost parallel loop nests; dynamic parallel linked lists; granularity; dynamic data structures; guided self-scheduling; shortest-delay self-scheduling; data structures; multiprocessing systems; scheduling.
Z. Fang, P. Tang, P.-C. Yew, C.Q. Zhu, "Dynamic Processor Self-Scheduling for General Parallel Nested Loops," IEEE Transactions on Computers, vol. 39, no. 7, pp. 919-929, July 1990, doi:10.1109/12.55693
Usage of this product signifies your acceptance of the Terms of Use.