Scheduling DAG's for asynchronous multiprocessor execution
IEEE Transactions on Parallel and Distributed Systems
A new approach is given for scheduling a sequential instruction stream for execution '4n parallel" on asynchronous multiprocessors. The key idea in our approach is to exploit the fine grained parallelism present in the instruction stream. In this context, schedules are constructed by a careful balancing of execution and communication costs at the level of individual instructions, and their data dependencies. Three methods are used to evaluate our approach. First, several existing methods are
... ended to the fine grained situation considered here. Our approach is then compared to these methods using both static schedule length analyses, and slmulated executions of the scheduled code. In each instance, our method is found to provide significantly shorter schedules. Second, by varying, parameters such as the speed of the instruction set, and the speed/parallelism in the interconnection structure, simulation techniques are used to examine the effects of various architectural considerations on the executions of the schedules. These results show that our approach provides significant speedups in a wide-range of situations. Third, schedules produced by our approach are executed on a twoprocessor Data General shared memory multiprocessor system. These experiments show that there is a strong correlation between our simulation results (those parameterixed to "model" the Data General system), and these actual executions, and thereby serve to validate the slmulation studies. Together, our results establish that fine grained parallelism can be exploited in a substantial manner when scheduling a sequential instruction stream for execution "ln parallel" on asynchronous multiprocessors.