Dynamic Processor Self-Scheduling for General Parallel Nested Loops

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]  Ewing L. Lusk,et al.  Implementation of monitors with macros: a programming aid for the HEP and other parallel processors , 1983 .

[2]  Alexander V. Veidenbaum,et al.  EFFECTS OF PROGRAM RESTRUCTURING, ALGORITHM CHANGE, AND ARCHITECTURE CHOICE ON PROGRAM PERFORMANCE. , 1984 .

[3]  Alan Weiss,et al.  Allocating Independent Subtasks on Parallel Processors , 1985, IEEE Transactions on Software Engineering.

[4]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

[5]  D J Kuck,et al.  Parallel Supercomputing Today and the Cedar Approach , 1986, Science.

[6]  Ron Cytron,et al.  Doacross: Beyond Vectorization for Multiprocessors , 1986, ICPP.

[7]  Processor Self-Scheduling for Multiple-Nested Parallel Loops , 1986, ICPP.

[8]  Ken Kennedy,et al.  Automatic decomposition of scientific programs for parallel execution , 1987, POPL '87.

[9]  Pen-Chung Yew,et al.  A Scheme to Enforce Data Dependence on Large Multiprocessor Systems , 1987, IEEE Trans. Software Eng..

[10]  CONSTANTINE D. POLYCHRONOPOULOS,et al.  Guided Self-Scheduling: A Practical Scheduling Scheme for Parallel Supercomputers , 1987, IEEE Transactions on Computers.

[11]  Wilson C. Hsieh,et al.  A framework for determining useful parallelism , 1988, ICS '88.

[12]  Zhixi Fang,et al.  Dynamic Scheduling and Memory Management for Parallel Programs , 1988, ICPP.

[13]  Peiyi Tang,et al.  Impact of self-scheduling order on performance on multiprocessor systems , 1988, ICS '88.

[14]  Manoj Kumar,et al.  Measuring Parallelism in Computation-Intensive Scientific/Engineering Applications , 1988, IEEE Trans. Computers.

[15]  Allan Gottlieb,et al.  Operating system data structures for shared memory mimd machines with fetch-and-add , 1988 .

[16]  Peiyi Tang,et al.  A parallel linked list for shared-memory multiprocessors , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[17]  P. Tang Self-scheduling, data synchronization and program transformation for multiprocessor systems , 1990 .