Issue No. 12 - December (1995 vol. 28)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/2.476197
A scheduling problem arises when concurrent parts of a parallel program must be arranged in time and space so that the program's overall execution time is minimized. A program can be viewed as a collection of tasks that may run serially or in parallel. The goal of scheduling is to determine an assignment of tasks to processing elements and to prioritize task execution to optimize certain performance measures. The authors look at different forms of the scheduling problem and survey relevant models, optimal algorithms, heuristic algorithms, and useful software tools. They provide models for representing parallel programs, parallel systems, and communication cost. Examples and algorithms illustrate various approaches to scheduling. The scheduling problem, which is NP-complete, has led to the development of numerous heuristics for approximating an optimal solution; each may work under different circumstances. The effectiveness of these heuristics depends on factors such as grain size, interconnection topology, communication bandwidth, and program structure. Scheduling software tools represent another promising approach. Working with such tools can help a programmer find answers to numerous questions that arise in developing a parallel application. The authors describe three of these scheduling tools.
H. H. Ali, H. El-Rewini and T. Lewis, "Task Scheduling in Multiprocessing Systems," in Computer, vol. 28, no. , pp. 27-37, 1995.